ここではイベントチャネル連携サービスの運用中に発生するトラブルの事例およびその対処について説明します。
イベントチャネル連携サービスを起動後、mqdnsgwprtコマンドで通信状態を確認時、ConnectではなくSuspend (MQD6352)が表示される。
上記現象が発生した場合、以下の可能性があります。
相手サーバ側のイベントチャネル、またはメッセージキューが作成されてない。
→ イベントチャネルを作成していない場合には、イベントチャネルを作成後に起動してください。メッセージキューを作成していない場合には、メッセージキューを作成してください。
相手サーバ側のイベントチャネルが起動していない。
→ イベントチャネルを起動してください。
送信側のサービス定義で設定した相手サーバ側のイベントチャネル名、もしくはメッセージキュー名と、実際に作成した相手サーバ側のイベントチャネル名、もしくはメッセージキュー名が一致していない。
→ 送信側サービス定義を見直して、サービス定義が間違っている場合には、環境の変更をしてください。相手サーバ側のイベントチャネル名、もしくはメッセージキュー名が間違っている場合には、それぞれ再作成してください。
相手サーバ側の受信側サービス定義で設定した集信数を超える数の通信を要求した。
以下のいずれかの可能性があります。
イベントチャネル連携サービスの受信側サービス定義作成時に、recvnumキーワードの見積もりを誤った。
→ 受信側サービス定義のrecvnumキーワード値の再見積もりを実施してください。
イベントチャネル連携サービスのシステム構成上、想定されていない送信側サーバからの通信要求が受信側サーバに届いた。
→ 誤った送信サービス定義で運用している送信側サーバを特定し、環境の変更を行ってください。
運用中のチャネルコネクションの初期化をしないままイベントチャネル連携サービスの環境変更をしたために、相手サーバ側に、変更前のチャネルコネクション情報が残ってしまった。
→ 相手サーバ側のチャネルコネクション情報を削除してください。
イベントチャネル連携サービスを起動後、mqdnsgwprtコマンドで通信状態を確認時、ConnectではなくSuspend (MQD6470)が表示される。
以下の可能性があります。それぞれの項目を見直して再実行してください。
相手サーバが起動していない。
→ 相手サーバを起動してください。
URLリストファイルを使用して、イベントチャネル連携サービスの通信を行っている場合に、hostsファイルの記述が正しくされていない、またはURLリストファイルの記述に誤りがある。
→ hostsファイル、またはURLリストファイルの見直しを行ってください。
キュー間コネクションのみを運用している場合に、Interstageが起動していない可能性があります。
→ Interstageを起動してください。
何らかの事象により、通信のセションが切れてしまった。
→ チャネルコネクションを初期化後、再開してください。
ネーミングサービス方式を使用して、イベントチャネル連携サービスの通信を行っている場合、URLリストファイルで指定したネーミングサービスに受信側のイベントチャネル連携サービスが登録されていない。
→ URLリストファイルに指定したネーミングサービスにイベントチャネル連携サービスの受信側の位置情報が正しく登録されているか、odlistnsコマンドで確認してください。
相手サーバのイベントチャネル連携サービスの受信側の位置情報が登録されていない場合、または、正しく登録されていない場合、イベントチャネル連携サービスのCORBAサービスへの登録を正しく行ってください。
詳細は、“MessageQueueDirector説明書”の“イベントチャネル連携サービス”の“環境作成”の“イベントチャネル連携サービスのCORBAサービスへの登録”を参照してください。
odlistnsコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
IORファイル方式を使用して、イベントチャネル連携サービスの通信を行っている場合、指定したIORファイルが相手サーバのイベントチャネル連携サービスのIORファイルではない。
→ 相手サーバのイベントチャネル連携サービスのCORBAサービスへの登録時に作成したIORか確認してください。
イベントチャネル連携サービスの受信側の位置情報(ポート番号)が正しく登録されていない。
→ イベントチャネル連携サービスの受信側の位置情報(ポート番号)が正しく登録されているか、odlistnsコマンドで確認してください。
相手サーバのイベントチャネル連携サービスの受信側の位置情報(ポート番号)が正しく登録されていない場合、イベントチャネル連携サービスのCORBAサービスへの登録を正しく行ってください。
詳細は、“MessageQueueDirector説明書”の“イベントチャネル連携サービス”の“環境作成”の“イベントチャネル連携サービスのCORBAサービスへの登録”を参照してください。
odlistnsコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
イベントチャネル連携サービスを起動後、mqdnsgwprtコマンドで通信状態を確認時、ConnectではなくSuspend (MQD6459)が表示される。
以下の可能性があります。それぞれの項目を見直して再実行してください。
イベントチャネルを作成する時、-tranオプション、-otsオプションのどちらのオプションも付けないで作成した。
→ イベントチャネルがイベントチャネル連携サービスで使用するための正しい設定で作成されているか、essetcnfchnlコマンドで以下の項目のどちらかが“yes”に設定されているか確認してください。
- local transaction mode
- ots use
イベントチャネルがイベントチャネル連携サービスで使用するための正しい設定で作成されていない場合、正しい設定で再作成してください。
essetcnfchnlコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
イベントチャネルを作成する時、-notifyオプションを付けないで作成した。
→ イベントチャネルがイベントチャネル連携サービスで使用するための正しい設定で作成されているか、essetcnfchnlコマンドで以下の項目が“yes”に設定されているか確認してください。
- Notification channel mode
イベントチャネルがイベントチャネル連携サービスで使用するための正しい設定で作成されていない場合、正しい設定で再作成してください。
essetcnfchnlコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
イベントチャネル連携サービスで使用するイベントチャネルの正しい設定についての詳細は、“MessageQueueDirector説明書”の“イベントチャネル連携サービス”の“環境作成”の“環境作成の説明”の“送信キューと受信キューの作成”を参照してください。
相手サーバ側のイベントチャネル連携サービスを再起動後、コネクションの再開ができない。
以下の可能性があります。その場合には、送信サーバにおいてmqdnsgwcommコマンドを-aオプションで実行し、チャネルコネクションの状態がSuspendとなったチャネルコネクションの通信を再開してください。
通信中に、相手サーバ側のイベントチャネル連携サービスを再起動した。
通信中に、クラスタシステムによるクラスタ遷移をした。
相手サーバを起動せずに送信サーバを先に起動したために、チャネルコネクション状態がRetryとなり、1分おきに通信再開の試みが自動的に行われたが、その回数が送信側サービス定義のMNGRセクションのerrorretryキーワードの値を超えてしまった。
受信サーバ側で、イベントデータが正しく受信されない。
以下の可能性があります。
チャネル間通信を使用し、かつワイド文字列型のデータの通信を行っている場合に、双方の環境変数に“OD_CODE_SET”を設定していなかった。
→ 環境変数“OD_CODE_SET”を設定してください。
送信側サービス定義上のチャネルコネクション定義のイベントデータの形式がstructuredに設定されているのに、any型のイベントデータを通信しようとしていた。または、イベントデータの形式がanyに設定されているのに、structured型のイベントデータを通信しようとした。
→ イベントデータの形式をあわせてください。
イベントチャネル連携サービスを起動後、CORBAサービスの例外情報として“IDL:CORBA/StExcep/DATA_CONVERSION:1.0”が通知される。
以下の可能性があります。
環境変数“OD_CODE_SET”の値とマシンのコード系の値が違う。
→ ワイド文字列型のデータの通信を行う場合には、環境変数“OD_CODE_SET”、マシンのコード系、およびイベントチャネル作成時の日本語コード系の値として、EUCまたはSJISを設定してください。
なお、環境変数“OD_CODE_SET”は、MQDを起動するシェルに設定してください。
また、esmkchnlコマンドを用いてイベントチャネルを作成する場合には、オプション-lにEUCまたはSJISを設定してください。コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。Interstage管理コンソールを用いてイベントチャネルを作成する場合には、“詳細設定”の“日本語コード系”にEUCまたはShift JISを設定してください。Interstage管理コンソールの詳細については、“Interstage管理コンソール ヘルプ”を参照してください。
→ ワイド文字列型のデータの通信を行う場合には、環境変数“OD_CODE_SET”、マシンのコード系、およびイベントチャネル作成時の日本語コード系の値として、EUCを設定してください。
なお、環境変数“OD_CODE_SET”は、MQDを起動するシェルに設定してください。
また、esmkchnlコマンドを用いてイベントチャネルを作成する場合には、オプション-lにEUCを設定してください。コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。Interstage管理コンソールを用いてイベントチャネルを作成する場合には、“詳細設定”の“日本語コード系”にEUCを設定してください。Interstage管理コンソールの詳細については、“Interstage管理コンソール ヘルプ”を参照してください。
イベントチャネル連携サービスを起動後、mqdnsgwprtコマンドで通信状態を確認時、ConnectではなくSuspend (MQD6352)が表示され、かつ、出力されたメッセージMQD6352の可変情報(msgid)がMQD6483となっている。
上記現象が発生した場合、以下の可能性があります。
送信側サーバでチャネルコネクションの初期化が行われていない状態で送信側サーバまたは受信側サーバのイベントチャネル連携サービスのサービス定義が変更されました。以下の方法で復旧してください。
チャネルコネクションを初期化する。
# mqdnsgwcomm -s MQDシステム名 -r *
チャネルコネクションの初期化に失敗した場合、強制モードで再度実行する。
# mqdnsgwcomm -s MQDシステム名 -c *
送信側サーバ、受信側サーバ共にイベントチャネル連携サービスを停止する。
# mqdstpsvc -s MQDシステム名 NSGW)
送信側サーバ、受信側サーバ共にイベントチャネル連携サービスのサービス環境を削除する
# mqdnsgwunsetup -s MQDシステム名
環境削除が失敗した場合、強制モードで再度実行する。
# mqdnsgwunsetup -s MQDシステム名 -c
送信側サーバ、受信側サーバ共にイベントチャネル連携サービスのサービス環境を作成する
# mqdnsgwsetup -s MQDシステム名
送信側サーバ、受信側サーバ共にイベントチャネル連携サービスのサービス定義を登録する
# mqdnsgwdef -s MQDシステム名 -a -f サービス定義ファイル名
送信側サーバ、受信側サーバ共にイベントチャネル連携サービスを起動する
# mqdstrsvc -s MQDシステム名 -n NSGW