Liberty 儲存庫[8.5.5.6 或更新版本]

使用 Liberty 設定檔內嵌傳訊提供者來啟用多伺服器支援

您可以設定批次環境,讓某些伺服器充當批次分派器,讓其他伺服器充當批次執行程式。批次分派器會接受外部用戶端的要求,並提供給批次執行程式使用。批次執行程式會接收符合其定義之功能的要求,並執行這些要求。批次分派器和批次執行程式使用「Java 傳訊服務 (JMS)」來通訊。

開始之前

判斷管理內嵌訊息引擎的位置。可能會在批次分派伺服器、批次執行程式伺服器,或個別的伺服器上管理它。完成此作業前,必須先配置此伺服器。JMS Connection Factory 和啟動規格會在其配置中參照訊息引擎伺服器。如果要配置訊息引擎,請執行下列動作:
  1. wasJmsServer-1.0 特性新增至 server.xml
  2. 新增 messageEngine 元素,來定義訊息引擎。定義批次分派器和批次執行程式所用的佇列。下列範例說明 server.xml 中的訊息引擎配置。
<!- 指定訊息引擎的埠。
本例中的埠是預設埠。當使用預設埠時,不需要此元素。-->
<wasJmsExecutor host="*" 
		  wasJmsPort="7280"
		  wasJmsSSLPort="7290"
		  enabled="true"> 
</wasJmsExecutor>

<messagingEngine>
	<!- 批次 JMS 訊息的佇列。-->
	<queue id="batchLibertyQueue"
		forceReliability="ReliablePersistent"
		receiveAllowed="true"/>
</messagingEngine>

關於這項作業

此作業使用 Liberty 設定檔內嵌傳訊提供者,來協助您配置批次分派伺服器和批次執行程式。

程序

如果要配置批次分派器和執行程式,使其使用 Liberty 設定檔內嵌傳訊提供者,請執行下列動作:

  1. 配置批次 JMS 分派器。
    1. wasJmsClient-2.0 特性新增至 server.xml 中的特性管理程式,來啟用 JMS 支援。
    2. 在管理批次分派器的伺服器上,將 batchJmsDispatcher 元素新增至 server.xml
      <batchJmsDispatcher connectionFactoryRef={參照至所配置的 JMS Connection Factory}
      	queueRef={參照至所配置的 JMS 佇列} />
      註: 如果您沒有指定 connectionFactoryRefqueueRef 屬性,connectionFactoryRef 的預設值為 batchConnectionFactoryqueueRef 的預設值為 batchJobSubmissionQueue。因此,您可將 batchJmsDispatcher 元素指定為 <batchJmsDispatcher/>。在 server.xml 檔中,您仍必須配置 batchConnectionFactory JMS Connection Factory 和 JMS batchJobSubmissionQueue 佇列。
    3. 將對應 JMS Connection Factory 和 JMS 佇列新增至伺服器配置。不是只有批次配置,才這樣做。 下列範例說明批次 JMS 分派器配置及其 JMS 配置。
      註: remoteServerAddress 屬性指向管理 Liberty 設定檔訊息引擎之伺服器的 host:port
      <batchJmsDispatcher connectionFactoryRef="batchConnectionFactory"
      		    queueRef="batchJobSubmissionQueue" />
      
      <jmsConnectionFactory id="batchConnectionFactory"
      		      jndiName="jms/batch/connectionFactory">
      	 <properties.wasJms remoteServerAddress="host:7280:BootstrapBasicMessaging">
      	 </properties.wasJms>
      </jmsConnectionFactory>
      
      <jmsQueue id='batchJobSubmissionQueue"
      	  jndiName="jms/batch/jobSubmissionQueue">
      	 <properties.wasJms deliveryMode="Persistent"
      			    queuename="batchLibertyQueue">
      	 </properties.wasJms>
      </jmsQueue>
  2. 配置批次 JMS 執行程式。
    1. wasJmsClient-2.0 特性新增至 server.xml 中的特性管理程式,來啟用 JMS 支援。
    2. 在管理批次執行程式的伺服器上,將 batchJmsExecutor 元素新增至 server.xml 檔。
      <batchJmsExecutor activationSpecRef={所配置的啟動規格或批次執行程式}
      	queueRef={參照至所配置的 JMS 佇列} />
      註: 如果您沒有指定 activationSpecRefqueueRef 屬性,activationSpecRef 的預設值為 batchActivationSpecqueueRef 的預設值為 batchJobSubmissionQueue。因此,您可以將 batchJmsExecutor 元素指定為 <batchJmsExecutor />。在 server.xml 檔中,您仍必須為 batchActivationSpec 配置 JMS 啟動規格,以及為 batchJobSubmissionQueue 配置 JMS 佇列。
    3. 將對應 JMS 啟動規格和 JMS 佇列新增至伺服器配置。不是只有批次配置,才這樣做。
    4. 在啟動規格中包含 JMS 訊息選取器,來定義批次執行程式伺服器的功能。
      • 根據系統定義的內容來過濾:

        這是批次 JMS 訊息上的一組可用批次分派器內容,可供批次執行程式用來過濾,以取得入埠訊息。

        • com_ibm_ws_batch_applicationName:用來取得工作要求的批次應用程式名稱
        • com_ibm_ws_batch_moduleName:用來取得工作要求的批次應用程式模組名稱
        • com_ibm_ws_batch_componentName:用來取得工作要求的批次應用程式元件名稱
        註: 建議使用至少一個 com_ibm_ws_batch_applicationName 內容,來指定訊息選取器,以確保該執行程式僅會接收它可處理的工作。
        下列範例指出執行程式的 messageSelector 屬性,以便接受應用程式 SimpleBatchJobBonusPayout 的工作。
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'">
        下列範例指出執行程式的 messageSelector 屬性,以便接受應用程式 SimpleBatchJob 的工作。
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob'">
      • 根據使用者定義的內容來過濾:

        批次分派器會設定所有的工作參數,且這些參數符合批次分派器要求訊息中的適當 JMS 訊息內容。訊息選取器也可以使用這些內容,在訊息選取器中新增額外的過濾條件。因此,內容名稱或 ID 必須符合 JMS 訊息內容限制項。舉例來說,內容是長度不限的一連串字母和數字,且開頭必須是字母。只要 Character.isJavaLetter 方法傳回 true,字母可以是任何字元,包括 '_' 和 '$' 都是。只要 Character.isJavaLetterOrDigit 方法傳回 true,字母或數字可以是任何字元。如需 JMS 訊息選取器的相關資訊,請查看 JMS Javadoc。

        下列範例說明可能的訊息選取器,它使用 com_ibm_ws_batch_applicationName 內容和 specialCapability 工作參數。
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' AND specialCapability = 'superCapability'">
      下列範例說明批次 JMS 執行程式配置及其 JMS 配置。
      <batchJmsExecutor activationSpecRef="batchActivationSpec"
      	  	  queueRef="batchJobSubmissionQueue"/>
      
      <jmsActivationSpec id="batchActivationSpec" >
      	<properties.wasJms destinationRef="batchJobSubmissionQueue"
      			   messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayoutCDI'"
      			   destinationRef="batchJobSubmissionQueue"
      			   destinationType="javax.jms.Queue"
      			   remoteServerAddress="host:7280:BootstrapBasicMessaging">
      	</properties.wasJms>
      </jmsActivationSpec>
      
      <jmsQueue id="batchJobSubmissionQueue"
      	  jndiName="jms/batch/jobSubmissionQueue">
      	<properties.wasJms deliveryMode="Persistent"
      			      queueName="batchLibertyQueue">
      	</properties.wasJms>
      </jmsQueue>
  3. 將批次應用程式安裝在伺服器上。如需相關資訊,請參閱將應用程式部署到 Liberty 設定檔

指示主題類型的圖示 作業主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_batch_multiJVMembed
檔名:twlp_batch_multiJVMembed.html