QA@IT

WebSphere MQのクラスター追加で正しいキューマネージャーが表示されない

3431 PV

こんにちは。複数サーバのWebSphere MQ Ver7.0で構成されているシステムがあり
そのうちの1つのサーバを置き換える作業を行っております。
構成は以下の通りで、そのうちサーバA1をA2に置き換えるイメージです。

--------------------------------------------
・サーバA1:フルリポジトリ ← 廃止
・サーバB :フルリポジトリ
・サーバC :部分リポジトリ
※上記はクラスターで接続済
--------------------------------------------
・サーバA2:フルリポジトリ ← 新規 
※キューマネージャ、リスナー、キュー、受信側チャネルは作成済み
--------------------------------------------

まずは、A1とBを切り離し、その後BをA2にクラスターでつなごうとしました。
しかし、DISPLAY CLUSQMGR(*)を実行した時にキューマネージャ(B)が
「SYSTEM.TEMPQMGR(アドレス(ポート)」と表示され、正しいキューマネージャ名が
表示されませんでした。
また、クラスタ送信側のチャネルもずっと「再施行中」のままとなり接続出来ない状況です。
これを解決するヒントがあれば教えて頂けないでしょうか。

以下、実際に行った操作です。操作は全てサーバBのMQエクスプローラから行っています。

1.ローカルキュー(サーバB)のチャネルを全て停止
2.リモートキュー(サーバA1)のチャネルを全て停止
3.ローカルキュー(サーバB)を停止
4.リモートキュー(サーバA1)切断⇒除去
5.ローカルキュー(サーバB)を削除

6.ローカルキュー(サーバB)作成 ※削除前と同じ名称で作成
7.リモートキュー(サーバA2)接続
8.キューマネージャクラスタ作成 
  ※前回参加していたクラスターと同じ名称で作成
   追加したキューマネージャーは「A2」と「B」のキューマネージャ
  
8.クラスターキューマネージャで見ると、Bのキューマネージャ名称が
「SYSTEM.TEMPQMGR(アドレス(ポート)」となっており、切断状態  

ネット上の情報も色々と探してみましたが、根本的な解決には至っておりません。
お心当たりのある方がいらっしゃればぜひ解決方法をご教示ください。

回答

自己解決したので、内容を記載しておきます。

まず、クラスターキューマネージャが「SYSTEM.TEMPQMGR(アドレス(ポート)となるのは
クラスター接続チャネルが再起動を繰り返し、正常に通信が行えないためでした。

それを解決するために以下の処置を行いました。

<処置1:サーバA2のCCSIDを変更>
サーバA1とサーバA2の両方でrunmqscで「DISPLAY QMGR ALL」を行うと
追加したキューマネージャーのCCSIDが異なるものになっていました。

原因は定かではないですが、サーバA1とA2の文字コードが異なっていたためだと
思われます。この値を同じ値にすることで、クラスター接続用のチャネルが
正常に通信できるようになり、クラスターキューマネージャの名称も
正しいものになりました。

ただし、上記の処置だけでは別のエラー(後述)が発生するようになりました

<処置2:サーバA2の環境変数に言語の設定を追加>
上記を行った後、リモートキューマネージャから文字コード変換エラーが
頻繁に発生するようになってしました。
色々と調べた結果、以下の環境変数をMQ起動ユーザの.cshrcに追加し
ユーザの環境を日本語化することでエラーが発生しなくなりました。

 setenv LANG ja
 setenv LC_CTYPE ja
 setenv LC_NUMERIC ja
 setenv LC_TIME ja
 setenv LC_COLLATE ja
 setenv LC_MONETARY ja
 setenv LC_MESSAGES ja
 setenv LC_ALL ja

※全てが必要なわけではないかもしれません。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。