Liberty 組み込みメッセージング・プロバイダーの使用による複数サーバーのサポートの有効化

一部のサーバーがバッチ・ディスパッチャーとして機能し、それ以外のサーバーがバッチ executor として機能するよう、バッチ環境をセットアップすることができます。バッチ・ディスパッチャーは、外部クライアントからの要求を受け入れ、それらの要求をバッチ executor で使用できるようにします。バッチ executor は、定義された能力に合致する要求を受け取って、それらの要求を実行します。バッチ・ディスパッチャーとバッチ executor は、Java Messaging Service (JMS) を使用して通信します。

始める前に

組み込みメッセージ・エンジンがどこでホストされるのかを決定してください。ホストできるのは、バッチ・ディスパッチ・サーバー、バッチ executor サーバー、または分離サーバーです。このサーバーが構成されてからでないと、 このタスクを実行することはできません。JMS 接続ファクトリーおよびアクティベーション・スペックは、 その構成内でメッセージング・エンジン・サーバーを参照します。メッセージング・エンジンを構成するには、次のようにします。
  1. wasJmsServer-1.0 フィーチャーを server.xml に追加します。
  2. messageEngine エレメントを追加することによってメッセージング・エンジンを定義します。バッチ・ディスパッチャーおよびバッチ executor のために使用されるキューを定義します。次の例は、 server.xml ファイル内のメッセージング・エンジン構成を示します。
<!-specify the ports for the message engine.
The ports in this example are the default ports.
This element is not needed when the default ports are used. -->
<wasJmsEndpoint host="*" 
		  wasJmsPort="7280" 
		  wasJmsSSLPort="7290" 
		  enabled="true"> 
</wasJmsEndpoint>

<messagingEngine>
	<!- queue for batch jms message. -->
	<queue id="batchLibertyQueue" 
		forceReliability="ReliablePersistent" 
		receiveAllowed="true"/>
</messagingEngine>

このタスクについて

このタスクは、Liberty 組み込みメッセージング・プロバイダーを使用したバッチ・ディスパッチ・サーバーとバッチ executor の構成を支援します。

手順

Liberty 組み込みメッセージング・プロバイダーを使用するバッチ・ディスパッチャーおよびバッチ executor を構成するには、次のようにします。

  1. バッチ JMS ディスパッチャーを構成します。
    1. server.xml 内で wasJmsClient-2.0 フィーチャーをフィーチャー・マネージャーに追加することによって、JMS サポートを有効にします。
    2. バッチ・ディスパッチャーをホストするサーバー上で server.xmlbatchJmsDispatcher エレメントを追加します。
      <batchJmsDispatcher connectionFactoryRef={reference to a configured JMS connection factory}
      	queueRef={reference to a configured JMS queue} />
      注: connectionFactoryRef 属性および queueRef 属性を指定しない場合、connectionFactoryRef のデフォルト値は batchConnectionFactoryqueueRef のデフォルト値は batchJobSubmissionQueue です。batchJmsDispatcher エレメントを <batchJmsDispatcher/> と指定することができます。それでも、 server.xml ファイル内で、batchConnectionFactory JMS 接続ファクトリーおよび JMS batchJobSubmissionQueue キューを構成する必要はあります。
    3. 対応する JMS 接続ファクトリーおよび 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>
      注: 例に示されているように、jmsQueueConnectionFactory エレメントではなく、jmsConnectionFactory エレメントを参照していることを確認してください。jmsQueueConnectionFactory エレメントを使用した場合、機能しません。構成には jmsConnectionFactory エレメントと jmsQueue エレメントの両方を含め、jmsQueueConnectionFactory エレメントは含めないでください。
  2. バッチ JMS executor を構成します。
    1. server.xml 内で wasJmsClient-2.0 フィーチャーをフィーチャー・マネージャーに追加することによって、JMS サポートを有効にします。
    2. バッチ executor をホストするサーバー上で server.xml ファイルに batchJmsExecutor エレメントを追加します。
      <batchJmsExecutor activationSpecRef={configured activation specification or batch executor}
      	queueRef={reference to the configured JMS queue} />
      注: activationSpecRef 属性および queueRef 属性を指定しない場合、activationSpecRef のデフォルト値は batchActivationSpecqueueRef のデフォルト値は batchJobSubmissionQueue です。batchJmsExecutor エレメントを <batchJmsExecutor/> と指定することができます。それでも、 server.xml ファイル内で、batchActivationSpec の JMS アクティベーション・スペックと batchJobSubmissionQueue JMS キューを構成する必要はあります。
    3. 対応する JMS アクティベーション・スペックおよび JMS キューをサーバー構成に追加します。これは、バッチ構成に特有のものではありません。
    4. アクティベーション・スペックに JMS メッセージ・セレクターを含めることによって、バッチ executor サーバーの能力を定義します。
      • システム定義プロパティーに基づくフィルター操作:

        バッチ executor がインバウンド・メッセージのフィルター操作に使用できる、バッチ JMS メッセージに関して使用可能なバッチ・ディスパッチャー・プロパティーのセットがあります。

        • com_ibm_ws_batch_applicationName: ジョブ要求のバッチ・アプリケーションの名前
        • com_ibm_ws_batch_moduleName: ジョブ要求のバッチ・アプリケーションのモジュール名
        • com_ibm_ws_batch_componentName: ジョブ要求のバッチ・アプリケーションのコンポーネント名
        注: executor がその executor で処理できるジョブのみを受け取ることを確実にするため、メッセージ・セレクターを指定する際に、最低限 com_ibm_ws_batch_applicationName プロパティーを指定することが推奨されています。
        次の例は、executor がアプリケーション SimpleBatchJob および BonusPayout のジョブを受け入れるようにするための messageSelector 属性を示します。
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'">
        次の例は、executor がアプリケーション SimpleBatchJob のジョブを受け入れるようにするための messageSelector 属性を示しています。
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob'">
      • ユーザー定義プロパティーに基づくフィルター操作:

        バッチ・ディスパッチャーは、バッチ・ディスパッチャー要求メッセージに対する適切な JMS メッセージ・プロパティーに適合するすべてのジョブ・パラメーターを設定します。 これらのプロパティーは、メッセージ・セレクターにさらにフィルター操作を追加するためにメッセージ・セレクターが使用することもできます。 プロパティーの名前または ID は、JMS メッセージ・プロパティー制約に準拠している必要があります。例えば、 プロパティーは、文字と数字からなる長さ無制限の文字列であり、先頭は文字でなければなりません。文字とは、 メソッド Character.isJavaLettertrue を返す任意のキャラクターであり、「_」および「$」も含まれます。文字または数字とは、 メソッド Character.isJavaLetterOrDigittrue を返す任意のキャラクターです。JMS メッセージ・セレクターについて詳しくは、JMS Javadoc を参照してください。

        次の例は、com_ibm_ws_batch_applicationName プロパティーおよびジョブ・パラメーター specialCapability を使用するメッセージ・セレクターの例です。
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' AND specialCapability = 'superCapability'">
      次の例は、バッチ JMS executor 構成とその 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'"
      			   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 でのアプリケーションのデプロイ』を参照してください。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_batch_multiJVMembed
ファイル名: twlp_batch_multiJVMembed.html