この章では、Sun Cluster HA for WebSphere MQ のインストールと構成の方法について説明します。
この章の内容は次のとおりです。
表 1 に、 Sun Cluster HA for WebSphere MQ のインストールと構成に必要な作業を示します。指定された順番どおりに、各作業を行なってください。
表 1 作業マップ : Sun Cluster HA for WebSphere MQ のインストールと構成
作業 |
参照先 |
---|---|
インストールを計画する | |
WebSphere MQ をインストールして構成する | |
インストールと構成を確認する | |
Sun Cluster HA for WebSphere MQ パッケージをインストールする |
「scinstall ユーティリティーを使用して Sun Cluster HA for WebSphere MQ パッケージをインストールする」 |
Sun Cluster HA for WebSphere MQ を登録して構成する | |
Sun Cluster HA for WebSphere MQ のインストールと構成を確認する | |
Sun Cluster HA for WebSphere MQ をアップグレードする | |
Sun Cluster HA for WebSphere MQ の障害モニターを理解する | |
Sun Cluster HA for WebSphere MQ をデバッグする |
WebSphere MQ メッセージングソフトウェアを使用すると、プログラマが容易に実装できる方法で、オペレーティングプラットフォーム上のビジネスアプリケーション間で情報交換が可能になります。プログラムは、1 回限りの配信と時間に依存しない通信が約束される WebSphere MQ API を使用して通信を行ないます。
Sun Cluster HA for WebSphere MQ データサービスのメカニズムによって、WebSphere MQ サービスの順序正しい起動、停止、障害モニター、自動フェイルオーバーを実行できます。表 2 に Sun Cluster HA for WebSphere MQ データサービスによって保護されるコンポーネントを示します。
表 2 コンポーネントの保護
構成要素 |
コンポーネントを保護するデータサービス |
---|---|
Queue Manager |
Sun Cluster HA for WebSphere MQ |
Channel Initiator |
Sun Cluster HA for WebSphere MQ |
Command Server |
Sun Cluster HA for WebSphere MQ |
リスナー |
Sun Cluster HA for WebSphere MQ |
Trigger Monitor |
Sun Cluster HA for WebSphere MQ |
ここでは、Sun Cluster HA for WebSphere MQ のインストールと構成の計画について説明します。
広域ファイルシステムは /global、フェイルオーバーファイルシステムは /local という接頭辞を指定してマウントすることをお勧めします。
ここでは、Sun Cluster HA for WebSphere MQ にのみ適用されるソフトウェアとハードウェア構成の制限事項を示します。すべてのデータサービスに適用される制限事項については、『Sun Cluster Release Notes』を参照してください。
これらの制限事項を守らないと、データサービスの構成がサポートされない場合があります。
Sun Cluster HA for WebSphere MQ データサービスは、フェイルオーバーサービスとしてのみ構成できます – WebSphere MQ はスケーラブルなサービスとしては運用できないため、Sun Cluster HA for WebSphere MQ データサービスは、フェイルオーバーサービスとして運用するようにのみ構成できます。
/var/mqm を広域ファイルシステムとしてマウント – WebSphere MQ Manager を複数インストールする場合は、/var/mqm を広域ファイルシステムとしてマウントする必要があります。
/var/mqm を広域ファイルシステムとしてマウントしたあと、WebSphere MQ が動作する Sun Cluster 内の各ノード上のローカルファイルシステムに対して、/var/mqm/qmgrs/@SYSTEM のシンボリックリンクを作成する必要もあります。例を示します。
# mkdir -p /var/mqm_local/qmgrs/@SYSTEM # mkdir -p /var/mqm/qmgrs # ln -s /var/mqm_local/qmgrs/@SYSTEM /var/mqm/qmgrs/@SYSTEM # |
この制約が生じるのは、WebSphere MQ がキーを使用して内部制御構造を作成するからです。これらのキーは ftok() 関数呼び出しから生成され、各ノード上で一意である必要があります。ローカルファイルシステムに対する /var/mqm/qmgrs/@SYSTEM のシンボリックリンクを使用して、/var/mqm を広域ファイルシステムとしてマウントすると、生成される共有メモリーセグメントのキーは各ノード上で一意になります。
/var/mqm/qmgrs/@SYSTEM のシンボリックリンクを設定する前に Queue Manager を作成した場合、シンボリックリンクを作成する前に権限を使用して、/var/mqm/qmgrs/@SYSTEM の内容を /var/mqm_local/qmgrs/@SYSTEM にコピーする必要があります。また、この作業の前にはすべての Queue Manager を停止する必要があります。
/var/mqm をフェイルオーバーファイルシステムとしてマウント – WebSphere MQ Manager を 1 つだけインストールする場合は、/var/mqm をフェイルオーバーファイルシステムとしてマウントできます。ただし、/var/mqm を広域ファイルシステムとしてマウントして、将来複数の WebSphere MQ Manager をインストールできるようにすることをお勧めします。
フェイルオーバーファイルシステムを備えた複数の WebSphere MQ Manager – すでに説明したように、複数の WebSphere MQ Manager をインストールする場合、/var/mqm を広域ファイルシステムとしてマウントする必要があります。ただし、/var/mqm からフェイルオーバーファイルシステムへのシンボリックリンクを介して、各 Queue Manager のデータファイルはフェイルオーバーファイルシステムとしてマウントできます。例 1 を参照してください。
広域ファイルシステムを備えた複数の WebSphere MQ Manager – すでに説明したように、複数の WebSphere MQ Manager をインストールする場合、/var/mqm を広域ファイルシステムとしてマウントする必要があります。ただし、各 Queue Manager のデータファイルは、広域ファイルシステムとしてマウントできます。例 2 を参照してください。
WebSphere MQ をクラスタファイルシステムにインストール – WebSphere MQ 製品は最初、 /opt/mqm および /var/mqm にインストールされます。WebSphere MQ Manager の作成時に、作成されるデフォルトのディレクトリは /var/mqm/qmgrs/<qmgr_name> および /var/mqm/log/<qmgr_name> です。pkgadd mqm を実行する前に、 WebSphere MQ が動作する Sun Cluster 内のすべてのノード上で、これらの位置をフェイルオーバーファイルシステムと広域ファイルシステムのいずれかとしてマウントする必要があります。
例 1 に、フェイルオーバーファイルシステムを備えた 2 つの WebSphere MQ Manager を示します。/var/mqm は、シンボリックリンクを介して、広域ファイルシステムとしてマウントされます。WebSphere MQ の /etc/vfstab エントリのサブセットが表示されます。
例 2 に、広域フェイルオーバーファイルシステムを備えた 2 つの WebSphere MQ Manager を示します。/var/mqm は、シンボリックリンクを介して、広域ファイルシステムとしてマウントされます。WebSphere MQ の /etc/vfstab エントリのサブセットが表示されます。
# ls -l /var/mqm lrwxrwxrwx 1 root other 11 Sep 17 16:53 /var/mqm -> /global/mqm # # ls -l /global/mqm/qmgrs total 6 lrwxrwxrwx 1 root other 512 Sep 17 09:57 @SYSTEM -> /var/mqm_local/qmgrs/@SYSTEM lrwxrwxrwx 1 root other 22 Sep 17 17:19 qmgr1 -> /local/mqm/qmgrs/qmgr1 lrwxrwxrwx 1 root other 22 Sep 17 17:19 qmgr2 -> /local/mqm/qmgrs/qmgr2 # # ls -l /global/mqm/log total 4 lrwxrwxrwx 1 root other 20 Sep 17 17:18 qmgr1 -> /local/mqm/log/qmgr1 lrwxrwxrwx 1 root other 20 Sep 17 17:19 qmgr2 -> /local/mqm/log/qmgr2 # # more /etc/vfstab (Subset of the output) /dev/md/dg_d3/dsk/d30 /dev/md/dg_d3/rdsk/d30 /global/mqm ufs 3 yes logging,global /dev/md/dg_d3/dsk/d33 /dev/md/dg_d3/rdsk/d33 /local/mqm/qmgrs/qmgr1 ufs 4 no logging /dev/md/dg_d3/dsk/d36 /dev/md/dg_d3/rdsk/d36 /local/mqm/log/qmgr1 ufs 4 no logging /dev/md/dg_d4/dsk/d43 /dev/md/dg_d4/rdsk/d43 /local/mqm/qmgrs/qmgr2 ufs 4 no logging /dev/md/dg_d4/dsk/d46 /dev/md/dg_d4/rdsk/d46 /local/mqm/log/qmgr2 ufs 4 no logging # |
# ls -l /var/mqm lrwxrwxrwx 1 root other 11 Jan 8 14:17 /var/mqm -> /global/mqm # # ls -l /global/mqm/qmgrs total 6 lrwxrwxrwx 1 root other 512 Dec 16 09:57 @SYSTEM -> /var/mqm_local/qmgrs/@SYSTEM drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr1 drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr2 # # ls -l /global/mqm/log total 4 drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr1 drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr2 # # more /etc/vfstab (Subset of the output) /dev/md/dg_d4/dsk/d40 /dev/md/dg_d4/rdsk/d40 /global/mqm ufs 3 yes logging,global /dev/md/dg_d4/dsk/d43 /dev/md/dg_d4/rdsk/d43 /global/mqm/qmgrs/qmgr1 ufs 4 yes logging,global /dev/md/dg_d4/dsk/d46 /dev/md/dg_d4/rdsk/d46 /global/mqm/log/qmgr1 ufs 4 yes logging,global /dev/md/dg_d5/dsk/d53 /dev/md/dg_d5/rdsk/d53 /global/mqm/qmgrs/qmgr2 ufs 4 yes logging,global /dev/md/dg_d5/dsk/d56 /dev/md/dg_d5/rdsk/d56 /global/mqm/log/qmgr2 ufs 4 yes logging,global |
ここで説明する要件が適用されるのは、Sun Cluster HA for WebSphere MQ に限られます。Sun Cluster HA for WebSphere MQ のインストールと構成を始める前に、次の要件を満たしておく必要があります。
次の要件を満たさないと、データサービスの構成がサポートされない場合があります。
WebSphere MQ コンポーネントと依存関係 — Sun Cluster HA for WebSphere MQ データサービスは、WebSphere MQ インスタンスとそれぞれのコンポーネントを保護するように構成できます。ここでは、このようなコンポーネントとその依存関係について説明します。
構成要素 |
説明 |
---|---|
Queue Manager (必須) |
-> SUNW.HAStoragePlus リソース SUNW.HAStoragePlus リソースは、WebSphere MQ ファイルシステムのマウントポイントを管理し、WebSphere MQ がマウント後に起動することを保証します。 |
Channel Initiator (任意) |
-> Queue_Manager および Listener リソース Listener に依存しなければならないのは、inetd の代わりに runmqlsr を使用する場合だけです。 デフォルトでは、WebSphere MQ が Channel Initiator を起動します。ただし、デフォルト (SYSTEM.CHANNEL.INITQ) 以外の別のチャネル開始キューが必要な場合は、このコンポーネントを配備するべきです。 |
Command Server (任意l) |
-> Queue_Manager および Listener リソース Listener に依存しなければならないのは、inetd の代わりに runmqlsr を使用する場合だけです。 このコンポーネントは、コマンドキューに送られたコマンドを処理するために WebSphere MQ が必要な場合です。 |
Listener (任意) |
->Queue_Manager リソース このコンポーネントを配備するのは、専用のリスナー (runmqlsr) が必要で、inetd リスナーを使用しない場合です。 |
Trigger Monitor (任意) |
->Queue_Manager および Listener リソース Listener に依存しなければならないのは、inetd の代わりに runmqlsr を使用する場合だけです。 このコンポーネントを配備するのは、トリガーモニターが必要な場合です。 |
各 WebSphere MQ コンポーネントの詳細は、IBM の WebSphere MQ Application Programming マニュアルを参照してください。
各 WebSphere MQ コンポーネントは、/opt/SUNWscmqs/xxx/util に構成/登録ファイルがあります。xxx は個々の WebSphere MQ コンポーネントを表す 3 文字の略語です。これらのファイルによって、Sun Cluster に WebSphere MQ コンポーネントを登録できます。
これらのファイル内では、適切な依存関係が適用されます。
# cd /opt/SUNWscmqs # # ls -l chi/util total 4 -rwxr-xr-x 1 root sys 720 Dec 20 14:44 chi_config -rwxr-xr-x 1 root sys 586 Dec 20 14:44 chi_register # # ls -l csv/util total 4 -rwxr-xr-x 1 root sys 645 Dec 20 14:44 csv_config -rwxr-xr-x 1 root sys 562 Dec 20 14:44 csv_register # # ls -l lsr/util total 4 -rwxr-xr-x 1 root sys 640 Dec 20 14:44 lsr_config -rwxr-xr-x 1 root sys 624 Dec 20 14:44 lsr_register # # ls -l mgr/util total 4 -rwxr-xr-x 1 root sys 603 Dec 20 14:44 mgr_config -rwxr-xr-x 1 root sys 515 Dec 20 14:44 mgr_register # # ls -l trm/util total 4 -rwxr-xr-x 1 root sys 717 Dec 20 14:44 trm_config -rwxr-xr-x 1 root sys 586 Dec 20 14:44 trm_register # # # more mgr/util/* :::::::::::::: mgr_config :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This file will be sourced in by mgr_register and the parameters # listed below will be used. # # These parameters can be customized in (key=value) form # # RS - name of the resource for the application # RG - name of the resource group containing RS # QMGR - name of the Queue Manager # PORT - name of the Queue Manager port number # LH - name of the LogicalHostname SC resource # HAS_RS - name of the Queue Manager HAStoragePlus SC resource # CLEANUP - Cleanup IPC entries YES or NO (Default CLEANUP=YES) # USERID - name of userid to issue strmqm/endmqm commands # (Default USERID=mqm) # # +++ Optional parameters +++ # # DB2INSTANCE - name of the DB2 Instance name # ORACLE_HOME - name of the Oracle Home Directory # ORACLE_SID - name of the Oracle SID # START_CMD - pathname and name of the renamed strmqm program # STOP_CMD - pathname and name of the renamed endmqm program # # Note 1: Optional parameters # # Null entries for optional parameters are allowed if not used. # # Note 2: XAResourceManager processing # # If DB2 will participate in global units of work then set # DB2INSTANCE= # # If Oracle will participate in global units of work then set # ORACLE_HOME= # ORACLE_SID= # # Note 3: Renamed strmqm/endmqm programs # # This is only recommended if WebSphere MQ is deployed onto # Global File Systems for qmgr/log files. You should specify # the full pathname/program, i.e. /opt/mqm/bin/<renamed_strmqm> # # Note 4: Cleanup IPC # # Under normal shutdown and startup WebSphere MQ manages it's # cleanup of IPC resources with the following fix packs. # # MQSeries v5.2 Fix Pack 07 (CSD07) or later # WebSphere MQ v5.3 Fix Pack 04 (CSD04) or later # # Please refer to APAR number IY38428. # # However, while running in a failover environment, the IPC keys # that get generated will be different between nodes. As a result # after a failover of a Queue Manager, some shared memory segments # can remain allocated on the node although not used. # # Although this does not cause WebSphere MQ a problem when starting # or stopping (with the above fix packs applied), it can deplete # the available swap space and in extreme situations a node may # run out of swap space. # # To resolve this issue, setting CLEANUP=YES will ensure that # IPC shared memory segments for WebSphere MQ are removed whenever # a Queue Manager is stopped. However IPC shared memory segments # are only removed under strict conditions, namely # # - The shared memory segment(s) are owned by # CREATOR=mqm and CGROUP=mqm # - The shared memory segment has no attached processes # - The CPID and LPID process ids are not running # - The shared memory removal is performed by userid mqm # # Setting CLEANUP=NO will not remove any shared memory segments. # # Setting CLEANUP=YES will cleanup shared memory segments under the # conditions described above. # RS= RG= QMGR= PORT= LH= HAS_RS= CLEANUP=YES USERID=mqm DB2INSTANCE= ORACLE_HOME= ORACLE_SID= START_CMD= STOP_CMD= :::::::::::::: mgr_register :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # . `dirname $0`/mgr_config scrgadm -a -j $RS -g $RG -t SUNW.gds \ -x Start_command="/opt/SUNWscmqs/mgr/bin/start-qmgr \ -R $RS -G $RG -Q $QMGR -C $CLEANUP \ -U $USERID -D '$DB2INSTANCE' -O '$ORACLE_HOME' -I '$ORACLE_SID' \ -S '$START_CMD' -E '$STOP_CMD' " \ -x Stop_command="/opt/SUNWscmqs/mgr/bin/stop-qmgr \ -R $RS -G $RG -Q $QMGR -C $CLEANUP \ -U $USERID -D '$DB2INSTANCE' -O '$ORACLE_HOME' -I '$ORACLE_SID' \ -S '$START_CMD' -E '$STOP_CMD' " \ -x Probe_command="/opt/SUNWscmqs/mgr/bin/test-qmgr \ -R $RS -G $RG -Q $QMGR -C $CLEANUP \ -U $USERID -D '$DB2INSTANCE' -O '$ORACLE_HOME' -I '$ORACLE_SID' \ -S '$START_CMD' -E '$STOP_CMD' " \ -y Port_list=$PORT/tcp -y Network_resources_used=$LH \ -x Stop_signal=9 \ -y Resource_dependencies=$HAS_RS # |
WebSphere MQ Manager の保護—
WebSphere MQ インスタンス、すなわち /global/mqm/qmgrs/<qmgr> および /global/mqm/log/<qmgr> に広域ファイルシステムを使用している場合、WebSphere MQ は Sun Cluster 内の別のノード上ですでに Queue Manager が稼働しているかどうかを判別できません。
通常は使用しているクラスタファイルシステム (すなわち FFS なのか GFS なのか) に関係なく、Sun Cluster HA for WebSphere MQ データサービスが Queue Manager の起動と停止を管理します。
しかし、WebSphere MQ インスタンスが広域ファイルシステム上で稼働しているときに、 だれかが Sun Cluster 内の別のノードで Queue Manager を手動で起動する可能性もあります。
この問題は IBM に報告済みであり、現在、修正作業中です。
この問題を回避する方法は 2つあります。
WebSphere MQ インスタンスにフェイルオーバーファイルシステムを使用します。
WebSphere MQ インスタンスファイルをマウントできるのが、1 時点で 1 ノードだけになるので、この方法を推奨します。この構成の場合、WebSphere MQ は Queue Manager が稼働しているかどうかを判別できます。
strmqm/endmqm にシンボリックリンクを作成して check-start (提供スクリプト) を実行します。
/opt/SUNWscmqs/mgr/bin/check-start によって、WebSphere MQ Manager が起動または停止されることがないよう防止されます。
check-start スクリプトは、WebSphere MQ Manager が Sun Cluster によって起動または停止されることを確認し、手動で WebSphere MQ Manager の起動または停止が試行されるとエラーを報告します。
例 3 に、WebSphere MQ Manager を手動で起動しようとする場合を示します。応答は check-start スクリプトによって生成されています。
Sun Cluster HA for WebSphere MQ データサービスのホストとなるクラスタノードごとに、この作業を行う必要があります。crtmqm が代わりに strmqm と endmqm を呼び出すので、Queue Manager を作成するまではこの手順を実行しないでください。
この回避方法を採用した場合、WebSphere MQ のメンテナンスが必要になるたびに、元に戻さなければなりません。その後、再びこの回避方法を適用する必要があります。WebSphere MQ が修正されるまでの間は、WebSphere MQ インスタンスにフェイルオーバーファイルシステムを使用するよう推奨します。
# strmqm qmgr1 # Request to run </usr/bin/strmqm qmgr1> within SC3.0 has been refused # |
この方法を使用しなければならないのは、WebSphere MQ インスタンスに広域ファイルシステムが必要な場合だけです。例 4 に、この場合に必要な手順の詳細を示します。
# cd /opt/mqm/bin # # mv strmqm strmqm_sc3 # mv endmqm endmqm_sc3 # # ln -s /opt/SUNWscmqs/mgr/bin/check-start strmqm # ln -s /opt/SUNWscmqs/mgr/bin/check-start endmqm # |
/opt/SUNWscmqs/mgr/etc/configファイルを編集し、START_COMMAND と STOP_COMMAND の以下のエントリを変更します。この例では、_sc3 を使用してコマンド名に接尾辞を追加しています。別の名前も選択できます。
# cat /opt/SUNWscmqs/mgr/etc/config # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Usage: # DEBUG=<RESOURCE_NAME> or ALL # START_COMMAND=/opt/mqm/bin/<renamed_strmqm_program> # STOP_COMMAND=/opt/mqm/bin/<renamed_endmqm_program> # DEBUG= START_COMMAND=/opt/mqm/bin/strmqm_sc3 STOP_COMMAND=/opt/mqm/bin/endmqm_sc3 # |
ここでは WebSphere MQ をインストールして構成する手順について説明します。
Sun Cluster への WebSphere MQ の配備方法を決定します。
配備する WebSphere MQ インスタンス数を決定します。
各 WebSphere MQ インスタンスに使用させるクラスタファイルシステムを決定します。
WebSphere MQ クラスタファイルシステムをマウントします。
WebSphere MQ インスタンスにフェイルオーバーファイルシステムを使用させる場合は、手動でファイルシステムをマウントする必要があります。
Sun Cluster 内の全ノードに WebSphere MQ をインストールします。
WebSphere MQ はローカルディスクにインストールすることをお勧めします。ソフトウェアをローカルファイルシステムにインストールした場合と、クラスタファイルシステムにインストールした場合のメリットとデメリットについては、『Sun Cluster 3.1 データサービスのインストールと構成』の 3 ページ、「アプリケーションバイナリの格納先の決定」を参照してください。
アプリケーションバイナリの保管場所に関係なく、Sun Cluaster 内の WebSphere MQ が稼働するすべてのノードに WebSphere MQ をインストールします。これは、WebSphere MQ の pkgadd がホスト上で複数のシンボリックリンクを追加設定するためです。
WebSphere MQ は、IBM's WebSphere MQ for Sun Solaris — Quick Beginnings マニュアルに従ってインストールしてください。
WebSphere MQ Manager を作成します (複数可)。
WebSphere MQ V5.3 にはバグがあり、crtmqm を実行して WebSphere MQ Manager を作成するときに、デフォルトの設定である LogDefaultPath=/var/mqm/log を使用すると問題が起きます。たとえば、crtmqm コマンドでは AMQ7064: Log path not valid or inaccessible. と表示されます。
この問題を回避するには、WebSphere MQ Manager を作成するときに、-ld パラメータを指定しなければなりません。たとえば、crtmqm -ld /global/mqm/log/<qmgr> <qmgr> と指定します。
こうすると、別の <qmgr> ディレクトリ /global/mqm/log/<qmgr>/<qmgr> になります。しかし、バグは回避できます。
LogDefaultPath=/var/mqm/log を使用するときに -ld パラメータを指定しなければならないというこのバグは IBM に報告済みであり、現在、修正作業中です。
# crtmqm qmgr1 AMQ7064: Log path not valid or inaccessible. # # crtmqm -ld /global/mqm/log/qmgr1 qmgr1 WebSphere MQ queue manager created. Creating or replacing default objects for qmgr1 . Default objects statistics : 31 created. 0 replaced. 0 failed. Completing setup. Setup completed. # # cd /global/mqm/log/qmgr1 # # ls -l total 2 drwxrwx--- 3 mqm mqm 512 Jan 10 11:44 qmgr1 # # cd qmgr1 # # ls -l total 12 drwxrwx--- 2 mqm mqm 512 Jan 10 11:44 active -rw-rw---- 1 mqm mqm 4460 Jan 10 11:44 amqhlctl.lfh # # pwd /global/mqm/log/qmgr1/qmgr1 # # cd /global/mqm/qmgrs/qmgr1 # # more qm.ini #*******************************************************************# #* Module Name: qm.ini *# #* Type : MQSeries queue manager configuration file *# # Function : Define the configuration of a single queue manager *# #* *# #*******************************************************************# #* Notes : *# #* 1) This file defines the configuration of the queue manager *# #* *# #*******************************************************************# ExitPath: ExitsDefaultPath=/var/mqm/exits/ #* *# #* *# Log: LogPrimaryFiles=3 LogSecondaryFiles=2 LogFilePages=1024 LogType=CIRCULAR LogBufferPages=0 LogPath=/global/mqm/log/qmgr1/qmgr1/ LogWriteIntegrity=TripleWrite Service: Name=AuthorizationService EntryPoints=10 ServiceComponent: Service=AuthorizationService Name=MQSeries.UNIX.auth.service Module=/opt/mqm/lib/amqzfu ComponentDataSize=0 QueueManagerStartup: Chinit=No # |
この節では、インストールと構成の確認に必要な手順を説明します。
データサービスをまだインストールしていないため、この手順ではアプリケーションの可用性が高いかどうかを確認することはできません。
WebSphere MQ Manager を起動し、インストールを確認します。
# su - mqm Sun Microsystems Inc. SunOS 5.8 Generic February 2000 $ strmqm qmgr1 WebSphere MQ queue manager 'qmgr1' started. $ $ runmqsc qmgr1 5724-B41 (C) Copyright IBM Corp. 1994, 2002. ALL RIGHTS RESERVED. Starting WebSphere MQ script Commands. def ql(test) defpsist(yes) 1 : def ql(test) defpsist(yes) AMQ8006: WebSphere MQ queue created. end 2 : end One MQSC command read. No commands have a syntax error. All valid MQSC commands were processed. $ $ /opt/mqm/samp/bin/amqsput TEST qmgr1 Sample AMQSPUT0 start target queue is TEST test test test test test test test Sample AMQSPUT0 end $ $ /opt/mqm/samp/bin/amqsget TEST qmgr1 Sample AMQSGET0 start message <test test test test test test test> ^C$ $ $ runmqsc qmgr1 5724-B41 (C) Copyright IBM Corp. 1994, 2002. ALL RIGHTS RESERVED. Starting WebSphere MQ script Commands. delete ql(test) 1 : delete ql(test) AMQ8007: WebSphere MQ queue deleted. end 2 : end One MQSC command read. No commands have a syntax error. All valid MQSC commands were processed. $ |
WebSphere MQ Manager を停止します。
# su - mqm Sun Microsystems Inc. SunOS 5.8 Generic February 2000 $ $ endmqm -i qmgr1 WebSphere MQ queue manager 'qmgr1' ending. WebSphere MQ queue manager 'qmgr1' ended. $ |
Sun Cluster のインストールで Sun Cluster HA for WebSphere MQ パッケージをインストールしなかった場合は、ここで説明する作業を行なってパッケージをインストールしてください。この手順は、Sun Cluster HA for WebSphere MQ パッケージをインストールする各クラスタノード上で個別に実行します。この手順を実行するには、Sun Cluster Agents CD-ROM が必要です。
複数のデータサービスを同時にインストールする場合は、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』の「ソフトウェアのインストール」に記載されている手順を実行してください。
ー次のインストールツールのどちらかを使用して、Sun Cluster HA for WebSphere MQ パッケージをインストールします。
Web Start プログラム
scinstall ユーティリティー
Solaris 10 を使用している場合、大域ゾーンでのみこれらのパッケージをインストールします。パッケージをインストールしたあとで作成されるローカルゾーンに、これらのパッケージが転送されないようにするには、scinstall ユーティリティーを使用してこれらのパッケージをインストールします。Web Start プログラムは使用しないでください。
Web Start プログラムは、コマンド行インタフェース (CLI) またはグラフィカルユーザーインタフェース (GUI) を使用して実行できます。CLI と GUI での作業の内容と手順はほとんど同じです。Web Start プログラムの詳細は、installer(1M) のマニュアルページを参照してください。
Sun Cluster HA for WebSphere MQ パッケージをインストールするクラスタノード上で、スーパーユーザーになります。
(省略可能) GUI で Web Start プログラムを実行する場合は、DISPLAY 環境変数が設定されていることを確認してください。
CD-ROM ドライブに Sun Cluster Agents CD-ROM を挿入します。
ボリューム管理デーモン vold(1M) が実行されており、CD-ROM デバイスを管理するように構成されている場合は、デーモンによって CD-ROM が自動的に /cdrom/cdrom0 ディレクトリにマウントされます。
CD-ROM の Sun Cluster HA for WebSphere MQ コンポーネントディレクトリに移動します。
Sun Cluster HA for WebSphere MQ データサービスの Web Start プログラムは、このディレクトリに入っています。
# cd /cdrom/cdrom0/components/SunCluster_HA_MQS_3.1 |
Web Start プログラムを起動します。
# ./installer |
表示される手順に従って、ノードに Sun Cluster HA for WebSphere MQ パッケージをインストールします。
インストールが終了すると、Web Start プログラムのインストールサマリーが出力されます。このサマリーを使用して、インストール時に Web Start によって作成されたログを確認できます。これらのログは、/var/sadm/install/logs ディレクトリにあります。
Web Start プログラムを終了します。
Sun Cluster Agents CD-ROM を CD-ROM ドライブから取り出します。
scinstall ユーティリティーを使用して、次の手順で Sun Cluster HA for WebSphere MQ パッケージをインストールします。この作業には、Sun Java Enterprise System Accessory CD Volume 3 が必要です。この手順では、Sun Cluster の初期インストール時にデータサービス パッケージをインストールしていない場合を想定しています。
Sun Cluster の初回インストールの一部として Sun Cluster HA for WebSphere MQ パッケージをインストールしている場合は、「Sun Cluster HA for WebSphere MQ の登録と構成」へ進みます。
それ以外の場合は、次の手順で、Sun Cluster HA for WebSphere MQ パッケージをインストールします。この作業は、Sun Cluster HA for WebSphere MQ データサービスを実行できるすべてのノードで行います。
CD-ROM ドライブに Sun Cluster Agents CD-ROM を挿入します。
オプションは指定せずに、scinstall ユーティリティーを実行します。
scinstall ユーティリティーが対話型モードで起動します。
メニューオプション「新しいデータサービスのサポートをこのクラスタノードに追加」を選択します。
scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。
Sun Cluster Agents CD-ROM のパスを指定します。
ユーティリティーはこの CD をデータサービス CD-ROM として示します。
インストールするデータサービスを指定します。
選択したデータサービスが scinstall ユーティリティーによって示され、この選択内容の確認が求められます。
scinstall ユーティリティーを終了します。
ドライブから CD を取り出します。
ここでは Sun Cluster HA for WebSphere MQ の構成手順について説明します。
次の手順で、Sun Cluster HA for WebSphere MQ をフェイルオーバーデータサービスとして構成します。この手順は、Sun Cluster のインストール時にこのデータサービスパッケージをインストールしている場合を想定しています。
Sun Cluster の初回インストールの一部としては Sun Cluster HA for WebSphere MQ パッケージをインストールしていない場合、「scinstall ユーティリティーを使用して Sun Cluster HA for WebSphere MQ パッケージをインストールする」へ進みます。
SUNW.gds リソースタイプを登録します。
# scrgadm -a -t SUNW.gds |
SUNW.HAStoragePlus リソースタイプを登録します。
# scrgadm -a -t SUNW.HAStoragePlus |
フェイルオーバーリソースグループを作成します。
# scrgadm -a -g WebSphere MQ-failover-resource-group |
WebSphere MQ ディスク記憶装置に対応するリソースを作成します。
# scrgadm -a -j WebSphere MQ-has-resource \ -g WebSphere MQ-failover-resource-group \ -t SUNW.HAStoragePlus \ -x FilesystemMountPoints=WebSphere MQ- instance-mount-points |
WebSphere MQ 論理ホスト名に対応するリソースを作成します。
# scrgadm -a -L -j WebSphere MQ-lh-resource \ -g WebSphere MQ-failover-resource-group \ -l WebSphere MQ-logical-hostname |
WebSphere MQ ディスク記憶装置と 論理ホスト名のリソースが組み込まれたフェイルオーバーリソースグループを有効にします。
# scswitch -Z -g WebSphere MQ-failover-resource-group |
必要な個々の WebSphere MQ コンポーネントを作成して登録します。
Queue Manager コンポーネント (mgr) に対してこの手順を実行し、さらに使用するオプションの WebSphere MQ コンポーネントごとに、mgr を以下のどれか 1 つに置き換えて手順を繰り返します。
chi - Channel Initiator
csv - Command Server
lsr - Dedicated Listener
trm - Trigger Monitor
chi コンポーネントを使用すると、Sun Cluster で Channel Initiator を管理することができます。ただしデフォルトでは、WebSphere MQ はデフォルトのチャネル開始キュー SYSTEM.CHANNEL.INITQ を起動します。このチャネル開始キューを chi コンポーネントで管理する必要がある場合は、Queue Manager の qm.ini ファイル内の独立した行で QueueManagerStartup: および Chinit=No のコードを設定する必要があります。これにより、Queue Manager がデフォルトのチャネル開始キューを起動することを防止できます。その代わりに、これは、chi コンポーネントにより起動されるようになります。
lsr コンポーネントでは、複数のポートを使用できます。複数のポートを指定するには、/opt/SUNWscmqs/lsr/util/lsr_config 内の PORT パラメータで必要な各ポートエントリに対して、複数のポート番号を / で区切って指定する必要があります。この指定により、lsr コンポーネントは異なるポートエントリに対して複数の runmqlsr プログラムを開始します。
trm コンポーネントでは、複数のトリガーモニターを使用できます。/opt/SUNWscmqs/trm/util/trm_register の実行前に、/opt/SUNWscmqs/trm/util/trm_config 内の TRMQ パラメータを file に設定する必要があります。この指定により、trm コンポーネントは、トリガーモニターキュー名が含まれる必要がある /opt/SUNWscmqs/trm/etc/<qmgr>_trm_queues (<qmgr> は使用している Queue Manager の名前) から複数のトリガーモニターエントリを開始します。Sun Cluster HA for WebSphere MQ を実行する Sun Cluster 内の各ノードに必要なこのファイルを作成する必要があります。また、広域ファイルシステムへのシンボリックリンクとすることもできます。
# cd /opt/SUNWscmqs/mgr/util |
mgr_config ファイルを編集し、そのファイルに次のようなコメントを追加します。
# # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This file will be sourced in by mgr_register and the parameters # listed below will be used. # # These parameters can be customized in (key=value) form # # RS - name of the resource for the application # RG - name of the resource group containing RS # QMGR - name of the Queue Manager # PORT - name of the Queue Manager port number # LH - name of the LogicalHostname SC resource # HAS_RS - name of the Queue Manager HAStoragePlus SC resource # CLEANUP - Cleanup IPC entries YES or NO (Default CLEANUP=YES) # USERID - name of userid to issue strmqm/endmqm commands # (Default USERID=mqm) # # +++ Optional parameters +++ # # DB2INSTANCE - name of the DB2 Instance name # ORACLE_HOME - name of the Oracle Home Directory # ORACLE_SID - name of the Oracle SID # START_CMD - pathname and name of the renamed strmqm program # STOP_CMD - pathname and name of the renamed endmqm program # # Note 1: Optional parameters # # Null entries for optional parameters are allowed if not used. # # Note 2: XAResourceManager processing # # If DB2 will participate in global units of work then set # DB2INSTANCE= # # If Oracle will participate in global units of work then set # ORACLE_HOME= # ORACLE_SID= # # Note 3: Renamed strmqm/endmqm programs # # This is only recommended if WebSphere MQ is deployed onto # Global File Systems for qmgr/log files. You should specify # the full pathname/program, i.e. /opt/mqm/bin/<renamed_strmqm> # # Note 4: Cleanup IPC # # Under normal shutdown and startup WebSphere MQ manages it's # cleanup of IPC resources with the following fix packs. # # MQSeries v5.2 Fix Pack 07 (CSD07) or later # WebSphere MQ v5.3 Fix Pack 04 (CSD04) or later # # Please refer to APAR number IY38428. # # However, while running in a failover environment, the IPC keys # that get generated will be different between nodes. As a result # after a failover of a Queue Manager, some shared memory segments # can remain allocated on the node although not used. # # Although this does not cause WebSphere MQ a problem when starting # or stopping (with the above fix packs applied), it can deplete # the available swap space and in extreme situations a node may # run out of swap space. # # To resolve this issue, setting CLEANUP=YES will ensure that # IPC shared memory segments for WebSphere MQ are removed whenever # a Queue Manager is stopped. However IPC shared memory segments # are only removed under strict conditions, namely # # - The shared memory segment(s) are owned by # CREATOR=mqm and CGROUP=mqm # - The shared memory segment has no attached processes # - The CPID and LPID process ids are not running # - The shared memory removal is performed by userid mqm # # Setting CLEANUP=NO will not remove any shared memory segments. # # Setting CLEANUP=YES will cleanup shared memory segments under the # conditions described above. # |
WebSphere MQ Manager qmgr1 の例を示します。
RS=wmq-qmgr-res RG=wmq-rg QMGR=qmgr1 PORT=1414 LH=wmq-lh-res HAS_RS=wmq-has-res CLEANUP=YES USERID=mqm DB2INSTANCE= ORACLE_HOME= ORACLE_SID= START_CMD= STOP_CMD= |
mgr_config の編集後、リソースを登録します。
# ./mgr_register |
WebSphere MQ Manager の保護を有効にします (必要な場合)。
WebSphere MQ Manager の保護を実装すべきなのは、広域ファイルシステムに WebSphere MQ を配備した場合だけです。WebSphere MQ Manager の実装の詳細は、「構成に関する要件」、特に例 4 を参照してください。それ以外の場合は、次の手順に直接進んでください。
この手順は Sun Cluster HA for WebSphere MQ のホストとなる SunCluster 内の各ノードで繰り返す必要があります。
各 WebSphere MQ リソースを有効にします。
前の手順と同様、WebSphere MQ コンポーネントごとにこの手順を繰り返します。
# scstat |
# scswitch -e -j WebSphere MQ-resource |
ここでは、データサービスが正しくインストールされ構成されているかどうかを確認する手順について説明します。
WebSphere MQ のホストとなるクラスタノードの 1 つで、スーパーユーザーになります。
すべての WebSphere MQ リソースがオンラインになっていることを scstat で確認します。
# scstat |
オンラインになっていない WebSphere MQ リソースごとに、次のように scswitch コマンドを使用します。
# scswitch -e -j WebSphere MQ- resource |
scswitch コマンドを実行し、WebSphere MQ リソースグループをほかのクラスタノード (node2 など) に切り替えます。
# scswitch -z -g WebSphere MQ-failover-resource-group -h node2 |
以下の節で説明するように、Sun Cluster 3.1 9/04では Sun Cluster HA for WebSphere MQ 用の追加の構成パラメータが導入されています。パラメータのデフォルト値を変更する、またはデフォルトを使用せずにパラメータの値を設定する必要がある場合は、Sun Cluster HA for WebSphere MQ をアップグレードする必要があります。
MQ ユーザーを構成するための次のパラメータは、Sun Cluster 3.1 9/04 で導入されています。これらのパラメータに対してはデフォルト値が定義されています。
mqm により作成され、使用されていない共有メモリーセグメントは削除されることを指定します。
ユーザー ID mqm が mq コマンドの発行に使用されることを指定します。
XAResourceManager 処理を使用すると、次のデータベースの任意の組み合わせを使用して、WebSphere MQ で広域的単位として作業を管理することができます。
DB2
Oracle
Sybase
XAResourceManager の処理を構成するための次のパラメータは、Sun Cluster 3.1 9/04 で導入されています。これらのパラメータに対しては null 値が定義されています。
XAResourceManager の DB2 インスタンス名を指定します。
XAResourceManager の Oracle ホームディレクトリを指定します。
XaResourceManager の Oracle SID を指定します。
広域ファイルシステムに WebSphere MQ Queue Manager の qmgr ファイルとログファイルを配備する場合があります。この場合、strmqm プログラムおよび endmqm プログラムの名前を変更し、別のノードで Queue Manager が手動で起動されないようにします。これらのプログラムの名前を変更すると、WebSphere MQ フレームワークが WebSphere MQ Queue Manager の管理と起動を行います。
WebSphere MQ で WebSphere MQ Queue Manager の起動を管理できるようにするための次のパラメータは、Sun Cluster 3.1 9/04 で導入されています。これらのパラメータに対しては null 値が定義されています。
名前を変更した strmqm プログラムのフルパス名およびファイル名を指定します。
名前を変更した endmqm プログラムのフルパス名およびファイル名を指定します。
パラメータのデフォルト値を変更する、またはデフォルトを使用せずにパラメータの値を設定する必要がある場合は、パラメータの変更対象である Sun Cluster HA for WebSphere MQ リソースを削除し、再登録する必要があります。
USERID=mqm のみが、次のすべてのコンポーネントのリソースに適用されます。
Queue Manager コンポーネント
Channel Initiator コンポーネント
Command Server コンポーネント
Listener コンポーネント
Trigger Monitor コンポーネント
Sun Cluster 3.1 9/04 で導入された残りのパラメータは、Queue Manager コンポーネントのリソースにのみ適用されます。
変更する各 WebSphere MQ リソースに対してこの作業を実行します。
Sun Cluster 3.1 9/04 で導入されたパラメータを設定または変更する場合にのみ、この作業を実行します。
リソース定義を保存します。
# scrgadm -pvv -j resource > file1 |
リソースを無効にします。
# scswitch -n -j resource |
リソースを削除します。
# scrgadm -r -j resource |
リソースを構成し、登録します。
リソースの構成ファイルと登録ファイルが含まれるディレクトリに移動します。
# cd /opt/SUNWscmqs/prefixutil |
リソースの構成ファイルを編集します。
vi prefix_config |
リソースの構成ファイルを実行します。
# ./prefix_register |
prefix は、次のように、ファイルの適用対象であるコンポーネントを意味します。
mgr は Queue Manager コンポーネントを意味します。
chi は Channel Initiator コンポーネントを意味します。
csv は Command Server コンポーネントを意味します。
lsr は Listener コンポーネントを意味します。
trm は Trigger Monitor コンポーネントを意味します。
mgr_config ファイルにのみ、Sun Cluster 3.1 9/04 で導入されているすべてのパラメータが含まれています。残りのファイルには、USERID=mqm パラメータのみ含まれています。
リソース定義を保存します。
# scrgadm -pvv -j resource > file2 |
更新した定義を、リソースを更新する前に保存した定義と比較します。
これらの定義を比較することで、タイムアウトの値など、既存の拡張プロパティーが変更されたかどうかを判別することができます。
# diff file1 file2 |
リセットされたリソースのプロパティーを修正します。
# scrgadm -c -j resource -x|y resource |
リソースをオンラインにします。
# scswitch -e -j resource |
ここでは、Sun Cluster HA for WebSphere MQ 障害モニターの検証アルゴリズムまたは機能について説明し、検証エラーに関連する条件、メッセージ、回復アクションを示します。
障害モニターの概念については、『Sun Cluster 3.1 の概念』を参照してください。
Sun Cluster HA for WebSphere MQ 障害モニターでは、リソースタイプ SUNW.gds と同じリソースプロパティーを使用します。使用するリソースプロパティーの全リストについては、SUNW.gds(5) のマニュアルページを参照してください。
WebSphere MQ Manager
Thorough_probe_interval の間、休止します。
Queue Manager に接続し、一時動的キューを作成し、メッセージをキューに格納し、そのうえで Queue Manager を切断します。これに失敗すると、検証により Queue Manager を再起動します。
すべての Queue Manager プロセスが無効な場合は、pmf が検証に割り込んでただちに Queue Manager を再起動します。
Queue Manager が繰り返し再起動され、最終的に Retry_interval の Retry_count を使い果たすと、別のノードでそのリソースグループのフェイルオーバーが開始されます。
その他の WebSphere MQ コンポーネント (chi、csv、および trm)
プローブアルゴリズムと機能の動作は、Channel Initiator、Command Server、Trigger Monitor のいずれでも同じです。したがって、以下の説明では、単にリソースでこれらのコンポーネントを表します。
Thorough_probe_interval の間、休止します。
Queue Manager に依存します。Queue Manager が失敗するとリソースも失敗します。Queue Manager が再び使用できるようになると、リソースが再起動されます。
リソースが停止すると、pmf が検証に割り込んでただちにプロセスを再起動します。
リソースが繰り返し再起動されて、Retry_interval の Retry_count を使い果たしても、別のノードへのフェイルオーバーは開始されません。リソースが再起動されます。
WebSphere MQ Listener
Thorough_probe_interval の間、休止します。
runmqlsr プロセスが Queue Manager と対応づけられており、なおかつポートが稼働しているかどうかを確認します。
リスナーは、同じ pmftag で複数のポート番号に対応できます。特定のポートに対応するリスナーが欠落していることが判明すると、検証によりそのリスナーの再起動が開始されます。他のリスナーは影響を受けません。
リソースは複数のリスナーに対応できますが、すべてのリスナーが失敗してからでなければ、リソースは再起動されません。したがって、複数のリスナーが動作しているリソースでも、再起動をきめ細かく制御できます。
リソースが繰り返し再起動されて、Retry_interval の Retry_count を使い果たしても、Failover_enabled=FALSE が設定されているため、別のノードへのフェイルオーバーは開始されません。リソースが再起動されます。
Sun Cluster HA for WebSphere MQ は複数の WebSphere MQ インスタンスで使用できます。すべての WebSphere MQ インスタンスまたは特定の WebSphere MQ インスタンスに対してデバッグを有効にするには、次の手順で行います。
各 WebSphere MQ コンポーネントは、 /opt/SUNWscmqs/xxx/etc に DEBUG ファイルがあります。xxx は個々の WebSphere MQ コンポーネントを表す 3 文字の略語です。
これらのファイルを使用すると、Sun Cluster 内の特定のノードで、すべての WebSphere MQ インスタンスまたは特定の WebSphere MQ インスタンスのデバッグを有効にすることができます。Sun Cluster 全体で Sun Cluster HA for WebSphere MQ のデバッグを有効にする必要がある場合は、この手順を Sun Cluster 内のすべてのノードで繰り返します。
必要に応じて Sun Cluster の各ノードで、Queue Manager コンポーネント (mgr) に対してこの手順を実行し、さらにデバッグ出力が必要な WebSphere MQ コンポーネント (オプション) で手順を繰り返します。
/etc/syslog.conf を編集し、daemon.notice を daemon.debug に変更します。
# grep daemon /etc/syslog.conf *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err operator # |
daemon.notice を daemon.debug に変更し、syslogd を再起動します。次に示す grep daemon /etc/syslog.conf コマンドの出力例では、daemon.debug が設定されています。
# grep daemon /etc/syslog.conf *.err;kern.debug;daemon.debug;mail.crit /var/adm/messages *.alert;kern.err;daemon.err operator # # pkill -1 syslogd # |
/opt/SUNWscmqs/mgr/etc/config を編集し、DEBUG= を DEBUG=ALL または DEBUG= resource に変更します。
# cat /opt/SUNWscmqs/mgr/etc/config # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Usage: # DEBUG=<RESOURCE_NAME> or ALL # START_COMMAND=/opt/mqm/bin/<renamed_strmqm_program> # STOP_COMMAND=/opt/mqm/bin/<renamed_endmqm_program> # DEBUG=ALL START_COMMAND= STOP_COMMAND= # |
デバッグを無効にするには、これらの手順を逆にします。