WebSphere MQ は、InterChange Server とコネクターの間の通信を可能にするメッセージング・ソフトウェアです。
このセクションでは、ネイティブに使用、または InterChange Server 環境で JMS (Java Messaging Service) プロバイダーとして使用する WebSphere MQ のインストールおよび構成方法について説明します。WebSphere MQ を JMS プロバイダーとして構成するには、"JMS 用 WebSphere MQ の構成"を参照してください。
以下に示す条件が使用環境にあてはまる場合に、JMS を使用してください。
説明された条件の場合は、WebSphere MQ をネイティブとしてではなく JMS プロバイダーとして使用してください。これは、ネイティブ MQ が、CORBA や他のコンポーネントに依存して管理を実行するからです。JMS プロバイダーとして使用すれば、CORBA に依存する必要がなくなります。また、ネイティブ MQ は、サーバーに送られてくるイベントのみを持続させます。
WebSphere MQ を InterChange Server と同じネットワークにインストールします。インストールには、一般的に以下のステップが必要です。
それぞれの手順の詳細については、この後のセクションで説明します。
WebSphere MQ ソフトウェアは、/MQ_inst_home ディレクトリー (WebSphere MQ のコンポーネントの場合) と /var ディレクトリー (作業データの場合) の mqm サブディレクトリーにインストールされます。したがって、これらのディレクトリー (またはファイル・システム) には、WebSphere MQ を格納するのに十分なスペースが必要です。
ファイル・システムとして次のディレクトリーを作成しマウントすることを推奨しています。/var/mqm、/var/mqm/log、/var/mqm/errors。さらにまた、キュー (/var/mqm) を格納する物理ドライブとは別の物理ドライブにログを格納することを推奨します。表 9 に、WebSphere MQ コンポーネントのスペース所要量を示します。
WebSphere MQ が動作するためには、mqm と呼ばれる特殊なユーザー・アカウントが必要です。
AIX |
---|
|
Solaris |
---|
HP-UX |
---|
|
Linux (Red Hat および SuSE) |
---|
|
多くの UNIX システムでは、/etc/passwd ファイルの mqm のエントリー内の 2 番目のフィールドをアスタリスク (*) にしておくと、そのアカウントが使用不可になります。この他のログイン検証メカニズムを使用する場合は、ご使用のシステム資料を参照してください。
mqm グループが WebSphere Business Integration 管理者 (デフォルトでは admin) のデフォルト・グループであることを確認してください。
ユーザー・アカウントのデフォルト・グループは、WebSphere Business Integration 管理者アカウントのエントリー内の 4 番目のフィールドに含まれます。このフィールドには、mqm グループのグループ番号が含まれる必要があります。グループ番号を取得するには、シェル・プロンプトから次のコマンドを実行してください。
grep mqm /etc/group
グループ番号は、出力される行の 3 番目のフィールドに含まれます。このグループ番号を、/etc/passwd の WebSphere Business Integration 管理者のエントリーのデフォルト・グループ・フィールドに挿入してください。
root である間に groups コマンドを使用すると、root がメンバーシップを持つグループの 出力に mqm がリストされることを確認できます。WebSphere Business Integration 管理者の詳細については、IBM WebSphere Business Integration 管理者アカウントの作成を参照してください。
Red Hat Linux では、WebSphere MQ (mqm) をインストールするユーザーの .bash_profile に次の行を追加して、LD_ASSUME_KERNEL 環境変数を変更することをお勧めします。
export LD_ASSUME_KERNEL=2.4.19
その後、.bash_profile を実行するため、コマンド・プロンプトから、
. .bash_profile
を実行します。
WebSphere MQ ソフトウェアのインストール先として以下の場所をお勧めします。
/WebSphere_MQ_inst_home ファイル・システムと /var ファイル・システムに十分なスペースが ない 場合は、WebSphere MQ ソフトウェア用の抽出ディレクトリー (/home_dir/mqm など) を作成し、このディレクトリーにインストールすることができます。/WebSphere_MQ_inst_home/mqm ディ レクトリーおよび /var/mqmディレクトリーからこの抽出ディレクトリーへのシンボリック・リンクを作成する必要があります。
詳しくは、スペース所要量の決定を参照してください。
IBM は、サポートされるバージョンの WebSphere MQ ソフトウェアを個別の CD-ROM で 提供しています。これらの CD には、使用システムにインストールするべき ソフトウェアのいくつかのディレクトリーが含まれています。
現在の環境の WebSphere MQ のバージョンを確認するには、 /WebSphere_MQ_inst_home/mqm/bin プロンプトで mqver コマンドを入力します。
以下のステップでは、WebSphere MQ インストール・プロセスの簡単な概要を説明します。
Solaris で /WebSphere_MQ_inst_home ディレクトリー と /var ディレクトリーに WebSphere MQ をインストールするには、次のコマンドを入力します。
pkgadd -d /mq_cd/mq_solaris
ここで、mq_cd は WebSphere MQ CD のマウント・ポイントです。
# Default conversions are enabled by creating two lines similar to the # two following, but removing the # character which indicates a comment. default 0 500 1 1 0 default 0 850 1 2 0
ビジネス・インテグレーション・システムでは、下記のプロパティーでキューを構成する必要があります。コネクターの構成ファイルで標準のプロパティーとしてこれらの各キューの名前を指定します。
InterChange Server の最初の始動に進みます。
ある特定のポートで接続が確立すると、プログラムが起動されます。WebSphere MQ Listener はポート 1414 を使用します。 したがって、WebSphere MQ Listener を始動するには、ポートのセットアップに示すシステム・ファイルを編集し、ポート 1414 を構成する必要があります。
InterChange Server の単一インスタンス用の WebSphere MQ Listener の構成: UNIX マシン上の InterChange Server の単一のインスタンスは、WebSphere MQ キュー・マネージャーを使用 します。WebSphere MQ Listener は、デフォルト・ポート 1414 を使用します。したがって、WebSphere MQ Listener を始動するには、ポートのセットアップに示すシステム・ファイルを編集し、ポート 1414 を構成する必要があります。
ポート 1414 を WebSphere MQ Listener 用として構成するには、以下の手順を実行します。
WebSphereMQ 1414/tcp # WebSphere MQ channel listener
情報の列と列の間ではタブを使用して、入力した情報と既存の /etc/services エントリーとの位置を合わせてください。
WebSphereMQ stream tcp nowait mqm /WebSphere_MQ_inst_home/mqm/bin/amqcrsta amqcrsta -m your-queue-name.queue.manager
ここで、your-queue-name は WebSphere MQ キュー・マネージャーの名前です。
このコマンド全体は、/etc/inetd.conf ファイルでは単一行に含まれます。フィールド間ではタブを使用して、入力情報とファイルの既存のエントリーの位置を合わせてください。この行は、上に示したとおり正確に入力してください。このファイルの内容は大文字と小文字を区別します。
ps -ef | grep inetd
最後の列に「grep inetd」がある出力行のプロセス ID は使用しないでください。
kill -HUP proc_id
例えば、ステップ 3 の ps コマンドにより、inetd プロセスに関して次の出力が生成されたとします。
root 144 1 0 17:01:40 ? 0:00 /usr/sbin/inetd -s
2 番目の列がプロセス ID なので、kill コマンドは次のようになります。
kill -HUP 144
別の方法として、システムをリブートし、inetd デーモンに /etc/inetd.conf ファイルを 再読み取りさせることもできます。
InterChange Server の複数のインスタンス用の WebSphere MQ Listener の構成 -- InterChange Server の複数のインスタンスは、同じ WebSphere MQ キュー・マネージャーを共用できます。 ただし、これらのインスタンスの 1 つが Queue Manager を停止させる必要がある場合、他のすべてのインスタンスは Queue Manager にアクセスできなくなります。例えば、InterChange Server の開発インスタンスと品質管理インスタンスが同じマシンにある場合、もう一方のインスタンスに影響を与えずに一方のために Queue Manager を停止および始動できるように、2 つのインスタンスを構成する必要があります。
WebSphere MQ Listener は、TCP/IP ポートの WebSphere MQ キュー・マネージャーを listen します。ただし、TCP/IP ポートには複数の Queue Manager を配置できません。したがって、1 台のコンピューターに複数の Queue Manager を配置するには、ポートごとにそれぞれ Queue Manager を構成する必要があります。ポートごとに、ポートのセットアップ に示されたシステム・ファイルを編集して、WebSphere MQ Listeners を始動するポートを構成する必要があります。
複数の WebSphere MQ Listeners を構成するには、以下の手順を実行します。
例えば、2 つの WebSphere MQ Listeners のためにポート 1414 と 1415 を構成するには、/etc/services に以下の行を追加します。
WebSphereMQ1 1414/tcp # WebSphere MQ listener for q1.queue.manager WebSphereMQ2 1415/tcp # WebSphere MQ listener for q2.queue.manager
情報の列と列の間ではタブを使用して、入力した情報と既存の /etc/services エントリーとの位置を合わせてください。
例えば、2 つの Queue Manager (q1.queue.manager と q2.queue.manager) を始動するには、/etc/inetd.conf に次の行を追加します。
WebSphereMQ1 stream tcp nowait mqm /MQ_inst_home/mqm/bin/amqcrsta amqcrsta -m q1.queue.manager
WebSphereMQ2 stream tcp nowait mqm /WebSphere_MQ_inst_home/mqm/bin/amqcrsta amqcrsta -m q2.queue.manager
フィールド間ではタブを使用して、入力情報とファイルの既存のエントリーの位置を合わせてください。この行は、上に示したとおり正確に入力してください。このファイルの内容は大文字と小文字を区別します。
インストーラーは、Queue Manager にローカルの InterChange Server の名前が含まれているものとみなします。別のキュー名を含む Queue Manager を設定する場合は、WebSphere Business Integration 管理者がその名前をインストール・プロセスの一部として入力する必要があります。
InterChange Server は、ポート 1414 上で WebSphere MQ キュー・マネージャーと通信することを想定しています。 ポート 1414 以外で InterChange Server が Queue Manager と通信する場合は、WebSphere Business Integration 管理者は InterChange Server インストールの一環として、InterchangeSystem.cfg ファイルの MESSAGING セクションに PORT 構成パラメーターを追加する必要があります。 この PORT パラメーターを設定するには、WebSphere Business Integration 管理者はこのパラメーターに割り当てるポート番号を知っておく必要があります。
以下の任意の方法を使用して、アダプターに必要な WebSphere MQ キューを構成できます。
WebSphere Business Integration Adapters が提供する一連のスクリプト・ファイルにより、展開するアダプターに必要な WebSphere MQ キューを構成できます。
以下のスクリプト・ファイルは ProductDir/mqseries にあります。
crossworlds_mq.tst ファイルの内容を以下に示します。このファイルは手動で編集する必要があります。ファイルの先頭部分にはネイティブ MQ 情報があり、末尾には JMS 固有の情報があります。この 1 つのファイルを使用して、構成対象の各アダプターが必要とするキューを指定できます。以下のようにファイルを編集します。
DEFINE QLOCAL(IC/SERVER_NAME/DestinationAdapter) DEFINE QLOCAL(AP/DestinationAdapter/SERVER_NAME)
これらは、WebSphere InterChange Server を使用する ビジネス・インテグレーション・システムにのみ適用されます。
*******************************************************************/ * */ * Define the local queues for all Server/Adapter pairs. */ * For MQ queues, they must have the following definition: */ * Application = DEFINE QLOCAL (AP/AdapterName/ServerName) */ * */ * Example: */ * DEFINE QLOCAL(AP/ClarifyConnector/CrossWorlds) */ * */ * DEFINE QLOCAL(AP/SAPConnector/CrossWorlds) */ * */ * If your server is named something different than 'CrossWorlds' */ * make sure to change the entries to reflect that. */ ********************************************************************/ DEFINE QLOCAL(IC/SERVER_NAME/DestinationAdapter) DEFINE QLOCAL(AP/DestinationAdapter/SERVER_NAME) ********************************************************************/ * For each JMS queue (delivery Transport is JMS), * default values follow the convention: * AdapterName/QueueName ********************************************************************/ DEFINE QLOCAL(AdapterName/AdminInQueue) DEFINE QLOCAL(AdapterName/AdminOutQueue) DEFINE QLOCAL(AdapterName/DeliveryQueue) DEFINE QLOCAL(AdapterName/RequestQueue) DEFINE QLOCAL(AdapterName/ResponseQueue) DEFINE QLOCAL(AdapterName/FaultQueue) DEFINE QLOCAL(AdapterName/SynchronousRequestQueue) DEFINE QLOCAL(AdapterName/SynchronousResponseQueue) ********************************************************************/ * Define the default CrossWorlds channel type */ ********************************************************************/ DEFINE CHANNEL(CHANNEL1) CHLTYPE(SVRCONN) TRPTYPE(TCP) ********************************************************************/ * End of CrossWorlds MQSeries Object Definitions */ ********************************************************************/
WebSphere MQ コマンドを使用してキューを構成する方法については、「WebSphere MQ システム管理ガイド」および 「WebSphere MQ MQSC コマンド・リファレンス」を参照してください。
InterChange Server の最初の始動に進みます。
WebSphere MQ は、セマフォーおよび共有メモリーを活用します。ほとんどの場合、デフォルトの Solaris または HP-UX カーネル構成はこれらの機能をサポートするには不十分です。したがって、WebSphere MQ が正常に稼働するように、カーネル構成ファイル /etc/system を編集する必要があります。
表 17 に Solaris のカーネル構成パラメーター を、表 18 に HP-UX のカーネル構成パラメーター
をリストします。これらのパラメーターは、 /etc/system
ファイルの下部のセクションに追加されます。
表 17. Solaris の WebSphere MQ 用カーネル構成設定値
set msgsys:msginfo_msgmap=1026 set msgsys:msginfo_msgmax=4096 set msgsys:msginfo_msgmnb=4096 set msgsys:msginfo_msgmni=50 set semsys:seminfo_semaem = 16384 set semsys:seminfo_semmap = 1026 set semsys:seminfo_semmni = 1024 set semsys:seminfo_semmns = 16384 set semsys:seminfo_semmnu=2048 set semsys:seminfo_semmsl = 100 set semsys:seminfo_semopm = 100 set semsys:seminfo_semume = 256 set shmsys:shminfo_shmmax = 209715200 set shmsys:shminfo_shmmin = 1 set shmsys:shminfo_shmmni=1024 set shmsys:shminfo_shmseg = 1024 |
表 18. HP-UX の WebSphere MQ 用カーネル構成設定値
set Shmmax=0x3908b100 set Shmseg=1024 set Shmmni=1024 set Shmem=1 set Sema=1 set Semaem=16384 set Semvmx=32767 set Semmns=16384 set Semmni=2048 set Semmap=2050 set Semmnu=2048 set Semume=256 set Msgmni=1025 set Msgtql=2048 set Msgmap=2050 set Msgmax=65535 set Msgmnb=65535 set Msgssz=16 set Msgseg=32767 set Maxusers=400 set Max_thread_proc=4096 set maxfiles=2048 set nfile=10000 |
/etc/system ファイルにカーネル構成パラメーターを誤って入力した場合は、システムのリブート時にエラー・メッセージが表示されます。この場合は、 /etc/system の誤りを修正してからシステムを再度リブートします。
JMS トランスポート用 WebSphere MQ で使用するように構成された各コネクターについて、Connector Configurator ツールを使用してローカル・コネクターの構成ファイルを編集します。
キュー・マネージャーを指定し、表 19 に示す プロパティー値を構成します。例の中の
JmsConnector は、構成されるコネクターです。
プロパティー | 値 |
---|---|
AdminInQueue | JMSCONNECTOR¥ADMININQUEUE |
AdminOutQueue | JMSCONNECTOR¥ADMINOUTQUEUE |
DeliveryQueue | JMSCONNECTOR¥DELIVERYQUEUE |
FaultQueue | JMSCONNECTOR¥FAULTQUEUE |
RequestQueue | JMSCONNECTOR¥REQUESTQUEUE |
ResponseQueue | JMSCONNECTOR¥RESPONSEQUEUE |
SynchronousRequestQueue | JMSCONNECTOR¥SYNCHRONOUSREQUESTQUEUE |
SynchronousResponseQueue | JMSCONNECTOR¥SYNCHRONOUSRESPONSEQUEUE |
UserName および Password は、クライアント・モードを使用してキュー・マネージャーにアクセスしている場合を除き、ブランクのままで構いません。
以上の変更が完了したら、リポジトリーを再ロードして InterChange Server および当該コネクターを再始動してください。
WebSphere MQ メッセージ・キューは、多数のメッセージや大きいサイズのオブジェクトを処理できるようにデフォルト構成を変更しなければならないことがあります。
メッセージ・キューの許容最大長およびメッセージの許容最大長を変更するには、適切な .tst ファイルの MAXDEPTH および MAXMSGL プロパティーの値を以下の手順のとおりに設定します。
WebSphere MQ メッセージ・キューは、デフォルトでは 5000 メッセージまで保留するように設定されています。 トラフィック量が大きいときや InterChange Server の初期変換中は、このデフォルト値を超過することがあります。その場合はエラーが発生し、コネクターから ICS へのメッセージ通知は中止されます。このような事態を避けるため、キューに許可されるメッセージの最大数、およびキュー全体で許可されるアンコミット・メッセージの最大数を増やします。推奨値は、個々の環境によって異なります。例えば、InterChange Server の初期変換を実行する場合、キューの最大長は最低でも 20,000 メッセージに 設定することをお勧めします。
MAXDEPTH 設定を変更するには、各キュー定義の後に以下のオプションを追加します。
ALTER QLOCAL (QUEUENAME) MAXDEPTH (DEPTH DESIRED)
例えば、次のようになります。
DEFINE QLOCAL(AP/EMailConnector/Server_Name) ALTER QLOCAL(AP/EMailConnector/Server_Name) MAXDEPTH(20000)
さらに、キュー全体で標準以上のアンコミット・メッセージ数を処理できるようにキュー・マネージャーを変更することもできます。許可されるアンコミット・メッセージの数は、各キューの最大メッセージ数 (MAXDEPTH) の合計になります。アンコミット・メッセージ数を増やさないと、InterChange Server が使用するメモリーは増加しません。
MAXUMSGS 設定を変更するには、以下の行を追加します。
ALTER QMGR MAXUMSGS (NUMBER)
例えば、次のようになります。
ALTER QMGR MAXUMSGS (400000)
この値の変更は、ビジネス・オブジェクトが MAXMSGL のデフォルト値 4MB よりも大きいことがわかっている場合のみ行ってください。MAXMSGL 値を変更するには、各キュー定義の後に以下のコマンドを追加します。
ALTER QLOCAL (QUEUENAME) MAXMSGL (Maximum number of bytes to allow in a message)