IBM MQ メッセージング・プロバイダーの使用による複数サーバーのサポートの有効化
一部のサーバーがバッチ・ディスパッチャーとして機能し、それ以外のサーバーがバッチ executor として機能するよう、バッチ環境をセットアップすることができます。バッチ・ディスパッチャーは、外部クライアントからの要求を受け入れ、それらの要求をバッチ executor で使用できるようにします。バッチ executor は、定義された能力に合致する要求を受け取って、それらの要求を実行します。バッチ・ディスパッチャーとバッチ executor は、Java Messaging Service (JMS) を使用して通信します。
このタスクについて
このタスクは、IBM MQ メッセージング・プロバイダーを使用したバッチ・ディスパッチ・サーバーとバッチ executor の構成を支援します。
手順
- バッチ JMS ディスパッチャーを構成します。
- server.xml ファイル内で wmqJmsClient-2.0 フィーチャーをフィーチャー・マネージャーに追加することによって、JMS サポートを有効にします。
- バッチ・ディスパッチャーをホストするサーバー上で server.xml ファイルに batchJmsDispatcher エレメントを追加します。
<batchJmsDispatcher connectionFactoryRef={reference to a configured JMS connection factory} queueRef={reference to a configured JMS queue} />
注: connectionFactoryRef 属性および queueRef 属性を指定しない場合、connectionFactoryRef のデフォルト値は batchConnectionFactory、queueRef のデフォルト値は batchJobSubmissionQueue です。batchJmsDispatcher エレメントを <batchJmsDispatcher/> と指定することができます。それでも、 server.xml ファイル内で、batchConnectionFactory JMS 接続ファクトリーおよび JMS batchJobSubmissionQueue キューを構成する必要はあります。 - 対応する JMS 接続ファクトリーおよび JMS キューをサーバー構成に追加します。これは、バッチ構成に特有のものではありません。
次の例は、IBM MQ バインディング・モードを使用した、バッチ JMS ディスパッチャー構成とその JMS 構成を示します。
<batchJmsDispatcher connectionFactoryRef="batchConnectionFactory" queueRef="batchJobSubmissionQueue" /> <!-- wmq resource adapter --> <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/> <!-- nativeLibraryPath is required for BINDING mode --> <!-- the startup retry and reconnect retry properties are recommended to ensure robustness of the system.--> <wmqJmsClient nativeLibraryPath="/mqm/jms/java/lib" startupRetryCount=999 startupRetryInterval="1000ms" reconnectionRetryCount=10 reconnectionRetryInterval="5m"> </wmqJmsClient> <authData password="pwd" user="user"> </authData> <jmsConnectionFactory id="batchConnectionFactory" jndiName="jms/batch/connectionFactory"> <properties.wmqJms transportType="BINDINGS" queueManager="WMQX"> </properties.wmqJms> </jmsConnectionFactory> <!-- baseQueueName is the queue defined on WMQ system --> <jmsQueue id="batchJobSubmissionQueue" jndiName="jms/batch/jobSubmissionQueue"> <properties.wmqJms baseQueueName="BATCHQ" priority="QDEF" baseQueueManagerName="WMQX"> </properties.wmqJms> </jmsQueue>
次の例は、クライアント・モードで IBM MQ を使用した、バッチ JMS ディスパッチャー構成とその JMS 構成を示します。
<batchJmsDispatcher connectionFactoryRef="batchConnectionFactory" queueRef="batchJobSubmissionQueue" /> <!-- wmq resource adapter --> <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/> <!-- the startup retry and reconnect retry properties are recommended to ensure robustness of the system.--> <wmqJmsClient startupRetryCount=999 startupRetryInterval="1000ms" reconnectionRetryCount=10 reconnectionRetryInterval="5m"> </wmqJmsClient> <authData password="pwd" user="user"> </authData> <jmsConnectionFactory id="batchConnectionFactory" jndiName="jms/batch/connectionFactory"> <properties.wmqJms hostName="webs24.pok.stglabs.ibm.com" transportType="CLIENT" channel="WAS.JMS.SVRCONN" port="1414" queueManager="WMQX"/>> </properties.wmqJms> </jmsConnectionFactory> <!-- baseQueueName is the queue defined on WMQ system --> <jmsQueue id="batchJobSubmissionQueue" jndiName="jms/batch/jobSubmissionQueue"> <properties.wmqJms baseQueueName="BATCHQ" priority="QDEF" baseQueueManagerName="WMQX"> </properties.wmqJms> </jmsQueue>
注: 例に示されているように、jmsQueueConnectionFactory エレメントではなく、jmsConnectionFactory エレメントを参照していることを確認してください。jmsQueueConnectionFactory エレメントを使用した場合、機能しません。構成には jmsConnectionFactory エレメントと jmsQueue エレメントの両方を含め、jmsQueueConnectionFactory エレメントは含めないでください。
- バッチ JMS executor を構成します。
- server.xml ファイル内で wmqJmsClient-2.0 フィーチャーをフィーチャー・マネージャーに追加することによって、JMS サポートを有効にします。
- バッチ executor をホストするサーバー上で server.xml ファイルに batchJmsExecutor エレメントを追加します。
<batchJmsExecutor activationSpecRef={configured activation specification or batch executor} queueRef={reference to the configured JMS queue} />
注: activationSpecRef 属性および queueRef 属性を指定しない場合、activationSpecRef のデフォルト値は batchActivationSpec、queueRef のデフォルト値は batchJobSubmissionQueue です。batchJmsExecutor エレメントを <batchJmsExecutor/> と指定することができます。それでも、 server.xml ファイル内で、batchActivationSpec の JMS アクティベーション・スペックと batchJobSubmissionQueue JMS キューを構成する必要はあります。 - 対応する JMS アクティベーション・スペックおよび JMS キューをサーバー構成に追加します。これは、バッチ構成に特有のものではありません。
- アクティベーション・スペックに 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.isJavaLetter が true を返す任意のキャラクターであり、「_」および「$」も含まれます。文字または数字とは、 メソッド Character.isJavaLetterOrDigit が true を返す任意のキャラクターです。JMS メッセージ・セレクターについて詳しくは、JMS Javadoc を参照してください。
次の例は、com_ibm_ws_batch_applicationName プロパティーおよびジョブ・パラメーター specialCapability を使用するメッセージ・セレクターの例です。messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' AND specialCapability = 'superCapability'">
次の例は、IBM MQ クライアント・モードを使用した、バッチ JMS executor 構成とその JMS 構成を示します。<batchJmsExecutor activationSpecRef="batchActivationSpec" queueRef="batchJobSubmissionQueue"/> <!-- wmq resource adapter --> <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/> <!-- nativeLibraryPath is required for BINDING mode --> <!-- the startup retry and reconnect retry properties are recommended to ensure robustness of the system.--> <wmqJmsClient nativeLibraryPath="/mqm/jms/java/lib" startupRetryCount=999 startupRetryInterval="1000ms" reconnectionRetryCount=10 reconnectionRetryInterval="5m"> </wmqJmsClient> <authData password="pwd" user="user"> </authData> <JmsActivationSpec id="batchActivationSpec" > <properties.wmqJms destinationRef="batchJobSubmissionQueue" destinationType="javax.jms.Queue" messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'" transportType="BINDINGS" queueManager="WMQX"> </properties.wmqJms> </jmsActivationSpec> <!-- baseQueueName is the queue defined on WMQ system --> <jmsQueue id="batchJobSubmissionQueue" jndiName="jms/batch/jobSubmissionQueue"> <properties.wmqJms baseQueueName="BATCHQ" priority="QDEF" baseQueueManagerName="WMQX"> </properties.wmqJms> </jmsQueue>
<batchJmsExecutor activationSpecRef="batchActivationSpec" queueRef="batchJobSubmissionQueue"/> <!-- wmq resource adapter --> <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/> <!-- the startup retry and reconnect retry properties are recommended to ensure robustness of the system.--> <wmqJmsClient startupRetryCount=999 startupRetryInterval="1000ms" reconnectionRetryCount=10 reconnectionRetryInterval="5m"> </wmqJmsClient> <authData password="pwd" user="user"> </authData> <JmsActivationSpec id="batchActivationSpec" > <properties.wmqJms destinationRef="batchJobSubmissionQueue" messageSelector="com_ibm_ws_batch_applicationName = SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'" transportType="CLIENT" channel="WAS.JMS.SVRCONN" destinationType="javax.jms.Queue" queueManager="WMQX" hostName="webs24.pok.stglabs.ibm.com" port="1414"> </properties.wmqJms> </jmsActivationSpec> <!-- baseQueueName is the queue defined on WMQ system --> <jmsQueue id="batchJobSubmissionQueue" jndiName="jms/batch/jobSubmissionQueue"> <properties.wmqJms baseQueueName="BATCHQ" baseQueueManagerName="WMQX"> </properties.wmqJms> </jmsQueue>
- システム定義プロパティーに基づくフィルター操作:
- バッチ・アプリケーションをサーバーにインストールします。詳細については、『Liberty でのアプリケーションのデプロイ』を参照してください。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_batch_multiJVMmq
ファイル名: twlp_batch_multiJVMmq.html