WebSphere MQ は、WebSphere Business Integration Connect のインストールの一部としてインストールされています。WebSphere MQ には、JMS 通信を設定できるように JMS インプリメンテーションが組み込まれています。
ただしデフォルトでは、WebSphere MQ は JMS 用に構成されていません。ここでは、JMS を構成するステップについて説明します。
まず JMS 用のディレクトリーを作成します。例えば、Windows のインストール環境で、c:¥temp ディレクトリー内に JMS という名前のディレクトリーを作成したいとします。これを行うには、以下のステップを実行します。
ここでは、WebSphere MQ のインストールに含まれる JMSAdmin.config ファイルを更新して、コンテキスト・ファクトリーおよびプロバイダー URL を変更します。
INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory PROVIDER_URL=ldap://polaris/o=ibm,c=us
#INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory #PROVIDER_URL=file:/C:/JNDI-Directory
PROVIDER_URL=file:/c:/temp/JMS
ここでは、WebSphere MQ を使用して、文書の送受信に使われるキューおよびこの通信のチャネルを作成します。キュー・マネージャーが作成されていることが前提となっています。キュー・マネージャーの名前は、以下のステップの <queue manager name> に入ります。また、このキュー・マネージャーのリスナーが TCP ポート 1414 で開始されていることも前提となっています。
strmqcsv <queue manager name>
runmqsc <queue manager name>
def ql(<queue_name>)
例えば、JMSIN という名前のキューを作成するには、以下のように入力します。
def ql(JMSIN)
def ql(<queue_name>)
例えば、JMSOUT という名前のキューを作成するには、以下のように入力します。
def ql(JMSOUT)
def channel(<channel_name>) CHLTYPE(SVRCONN)
例えば、java.channel という名前のチャネルを作成するには、以下のように入力します。
def channel(java.channel) CHLTYPE(SVRCONN)
end
現行のシステム・パスに Java ランタイムを追加するには、以下のコマンドを入力します。
set PATH=%PATH%;<path to installation directory>¥_jvm¥jre¥bin
ここで、installation directory は、WebSphere Business Integration Connect がインストールされているディレクトリーを表します。
JMS 構成を定義するには、以下のステップを実行します。
JMSAdmin
define ctx(jms)
change ctx(jms)
define qcf(WBICHub) tran(CLIENT) host(<your_IP_address>) port(1414) chan(java.channel) qmgr(<queue manager name>)
define q(<name>) queue(<queue name>) qmgr(<queue manager name>)
define q(<name>) queue(<queue name>) qmgr(<queue manager name>)
end
以下の例は、MQ キュー・マネージャーがある sample.ibm.com の IP アドレスを指定して、WBICHub としてキュー接続ファクトリーを定義するために使用する JMSAdmin セッションです (<queue manager name> は sample.queue.manager)。この例では、キューおよびチャネルの作成で作成した JMS キュー名およびチャネル名が使用されています。ユーザー入力は、> プロンプトの後に行います。
InitCtx> define ctx(jms) InitCtx> change ctx(jms) InitCtx/jms> define qcf(WBICHub) tran(CLIENT) host(sample.ibm.com) port(1414) chan(java.channel) qmgr(sample.queue.manager) InitCtx/jms> define q(inQ) queue(JMSIN) qmgr(sample.queue.manager) InitCtx/jms> define q(outQ) queue(JMSOUT) qmgr(sample.queue.manager) InitCtx/jms>end