MessageQueueDirector説明書 |
目次
索引
![]() ![]() |
第2部 拡張機能編 | > 第11章 イベントチャネル連携サービス | > 11.2 機能 |
送信側のサーバと受信側のサーバでプラットフォームの違いなどにより文字コードが異なる場合に送受信するメッセージに対して文字コードの変換を行う機能です。
イベントチャネル連携サービスでは、CORBAサービスの文字コードの変換機能を利用してメッセージに対する文字コードの変換を行います。
文字コードの変換が可能な組み合わせを表11.7に示します。
送信側のサーバの文字コード |
受信側のサーバの文字コード |
---|---|
|
EBCDICおよびJEF(英小文字使用) |
EBCDICおよびJEF(半角カナ使用) |
|
ASCIIおよびシフトJIS |
|
|
EBCDICおよびJEF(英小文字使用) |
EBCDICおよびJEF(半角カナ使用) |
|
ASCIIおよびEUC |
文字コードの変換が可能なメッセージの形式を表11.8に示します。
送信側のサーバの非同期メッセージ基盤 |
メッセージの形式 |
---|---|
ノーティフィケーションサービス |
wchar |
string |
|
wstring |
|
JMS |
TextMessage |
|
文字列データだけで作成したメッセージ |
文字コードの変換を行うときの設定方法の一覧を表11.9に示します。
送信側または受信側のサーバの種類 |
設定方法 |
|
---|---|---|
|
サーバの文字コードがEUCの場合 |
MQDを起動するシェルの環境変数に以下の値を指定します。 変数: OD_CODE_SET |
サーバの文字コードがSJISの場合 |
MQDを起動するシェルの環境変数に以下の値を指定します。 変数: OD_CODE_SET |
|
|
Windowsのシステム環境変数に以下の値を指定します。 変数: OD_CODE_SET |
|
|
MQDを起動するシェルの環境変数に以下の値を指定します。 変数: OD_CODE_SET |
注) 受信側のサーバの場合、本値は“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”でmqdnsgwinit_ns.sh、またはmqdnsgwinit_ior.shに指定するコード系と同じコード系を設定してください。
文字コードの変換が失敗した場合、当該メッセージを格納している送信キューの後続のメッセージは、運用操作で当該メッセージを削除するまで送信されません。
ただし、送信側の非同期メッセージ基盤にMQDを使用している場合は、送信異常メッセージを退避する退避用メッセージキューの定義をすることで、イベントチャネル連携サービスが自動的に文字コードの変換に失敗したメッセージを退避し、継続してメッセージの送信を行うことができます。
送信異常メッセージの退避用キューは、イベントチャネル連携サービスのサービス定義で送信異常メッセージの退避用キューを指定することで利用できます。定義方法については、表11.23を参照してください。
送信異常メッセージの退避用キューを使用した場合のメッセージの取り扱いを図11.26に示します。
[図の説明]
1) メッセージ[a]の送信時にメッセージ内に変換元や変換先のコード系に属さない文字が含まれるなどの理由により文字コードの変換が失敗します。
2) 文字コードの変換に失敗したメッセージ[a]が、イベントチャネル連携サービスにより自動的に送信異常メッセージの退避用キューに格納されます。
3) 文字コードの変換に失敗したメッセージ[a]以降のメッセージ[b]は、受信側のサーバに送信されます。
なお、送信側の非同期メッセージ基盤にMQDを使用している場合、送信異常メッセージの退避用キューに格納されるメッセージには、文字コードの変換が失敗したエラー情報として表11.10に示す値(COBOL言語の場合)がMQDのメッセージヘッダに設定されます。その他のMQDのメッセージヘッダ情報は、メッセージ送信時の値がそのまま設定されています。C言語の場合にも同様の情報が設定されます。
項目名 |
和名 |
データ型 |
設定値 |
---|---|---|---|
MSG-NAME |
メッセージ名 |
PIC X(64) |
SEND-MSG-ERR |
ORIGINAL-QNAME |
送信キュー名 |
PIC X(64) |
文字コードの変換が失敗したメッセージ送信元のMQDのメッセージキュー名 |
パッキング送信中にエラーが発生した場合は、一時的にパッキング送信を1通づつの送信に切り替え、送信をリトライします。そのため、送信異常メッセージがキューの先頭になって送信が停止します。
ユーザがキューの先頭にある送信異常メッセージに対する対処をした後に送信を再開すると、再びパッキング転送で送信を行います。
図11.27に概念図を示します。
パッキングの単位で送信が停止します。エラーの発生したメッセージがキューの先頭にあるとは限りません。
エラーの発生したメッセージを退避する設定にしている場合は、送信異常メッセージだけではなく、パッキング単位内の全てのメッセージが退避されます。
図11.28に退避する設定にしていない場合、図11.29に退避する設定にしている場合の概念図を示します。
目次
索引
![]() ![]() |