ページの先頭行へ戻る
Interstage Application Server MessageQueueDirector説明書

11.2.5 文字コード変換機能

  送信側のサーバと受信側のサーバでプラットフォームの違いなどにより文字コードが異なる場合に送受信するメッセージに対して文字コードの変換を行う機能です。

  イベントチャネル連携サービスでは、CORBAサービスの文字コードの変換機能を利用してメッセージに対する文字コードの変換を行います。

  文字コードの変換が可能な組み合わせを表11.6 文字コードの変換が可能な組み合わせに示します。

表11.6 文字コードの変換が可能な組み合わせ

送信側のサーバの文字コード

受信側のサーバの文字コード


ASCII、およびEUC

EBCDICおよびJEF(英小文字使用)

EBCDICおよびJEF(半角カナ使用)

ASCIIおよびシフトJIS


ASCII、およびシフトJIS

EBCDICおよびJEF(英小文字使用)

EBCDICおよびJEF(半角カナ使用)

ASCIIおよびEUC


受信側のサーバの場合、本値は“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”でmqdnsgwinit_ns.sh、またはmqdnsgwinit_ior.shに指定するコード系と同じコード系を設定してください。

  文字コードの変換が可能なメッセージの形式を表11.7 文字コードの変換が可能なメッセージの形式に示します。

表11.7 文字コードの変換が可能なメッセージの形式

送信側のサーバの非同期メッセージ基盤

メッセージの形式

ノーティフィケーションサービス

wchar

string

wstring

JMS

TextMessage

MQD (注1)

文字列データだけで作成したメッセージ

  1. Windows Server(R) for Itanium-based Systems および Windows Server(R) x64 Editions では使用できません。

文字コードの変換が失敗したメッセージの取り扱いについて

  文字コードの変換が失敗した場合、当該メッセージを格納している送信キューの後続のメッセージは、運用操作で当該メッセージを削除するまで送信されません。

  ただし、送信側の非同期メッセージ基盤にMQDを使用している場合は、送信異常メッセージを退避する退避用メッセージキューの定義をすることで、イベントチャネル連携サービスが自動的に文字コードの変換に失敗したメッセージを退避し、継続してメッセージの送信を行うことができます。

  送信異常メッセージの退避用キューは、イベントチャネル連携サービスのサービス定義で送信異常メッセージの退避用キューを指定することで利用できます。定義方法については、表11.18 MNGRセクションの記述内容を参照してください。

  送信異常メッセージの退避用キューを使用した場合のメッセージの取り扱いを図11.21 送信異常メッセージの退避用キューを使用した場合のメッセージの取り扱いに示します。

図11.21 送信異常メッセージの退避用キューを使用した場合のメッセージの取り扱い

[図の説明]

1) メッセージ[a]の送信時にメッセージ内に変換元や変換先のコード系に属さない文字が含まれるなどの理由により文字コードの変換が失敗します。
2) 文字コードの変換に失敗したメッセージ[a]が、イベントチャネル連携サービスにより自動的に送信異常メッセージの退避用キューに格納されます。
3) 文字コードの変換に失敗したメッセージ[a]以降のメッセージ[b]は、受信側のサーバに送信されます。

  なお、送信側の非同期メッセージ基盤にMQDを使用している場合、送信異常メッセージの退避用キューに格納されるメッセージには、文字コードの変換が失敗したエラー情報として表11.8 文字コードの変換に失敗したMQDのメッセージヘッダの内容に示す値(COBOL言語の場合)がMQDのメッセージヘッダに設定されます。その他のMQDのメッセージヘッダ情報は、メッセージ送信時の値がそのまま設定されています。C言語の場合にも同様の情報が設定されます。

表11.8 文字コードの変換に失敗したMQDのメッセージヘッダの内容

項目名

和名

データ型

設定値

MSG-NAME

メッセージ名

PIC X(64)

SEND-MSG-ERR

ORIGINAL-QNAME

送信キュー名

PIC X(64)

文字コードの変換が失敗したメッセージ送信元のMQDのメッセージキュー名

パッキング転送機能と併用した場合の文字コードの変換が失敗したメッセージの取り扱いについて

送信側の非同期メッセージ基盤がノーティフィケーションサービスまたはJMSの場合

  パッキング送信中にエラーが発生した場合は、一時的にパッキング送信を1通づつの送信に切り替え、送信をリトライします。そのため、送信異常メッセージがキューの先頭になって送信が停止します。

  ユーザがキューの先頭にある送信異常メッセージに対する対処をした後に送信を再開すると、再びパッキング転送で送信を行います。

  図11.22 ノーティフィケーションサービスまたはJMSの場合に概念図を示します。

図11.22 ノーティフィケーションサービスまたはJMSの場合

送信側の非同期メッセージ基盤がMQDの場合

  パッキングの単位で送信が停止します。エラーの発生したメッセージがキューの先頭にあるとは限りません。

  エラーの発生したメッセージを退避する設定にしている場合は、送信異常メッセージだけではなく、パッキング単位内の全てのメッセージが退避されます。

  図11.23 送信異常メッセージを退避する設定にしていない場合に退避する設定にしていない場合、図11.24 送信異常メッセージを退避する設定にしている場合に退避する設定にしている場合の概念図を示します。

図11.23 送信異常メッセージを退避する設定にしていない場合

図11.24 送信異常メッセージを退避する設定にしている場合