MessageQueueDirector説明書
目次 索引 前ページ次ページ

第2部 拡張機能編> 第11章 イベントチャネル連携サービス> 11.2 機能

11.2.7 文字コード変換機能

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

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

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

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

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

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


ASCII、およびEUC

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

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

ASCIIおよびシフトJIS


ASCII、およびシフトJIS

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

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

ASCIIおよびEUC

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

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

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

メッセージの形式

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

wchar

string

wstring

JMS

TextMessage


MQD

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

 文字コードの変換を行うときの設定方法の一覧を表11.9に示します。

[表11.9 文字コードの変換を行うときの設定方法の一覧]

送信側または受信側のサーバの種類

設定方法

サーバの文字コードがEUCの場合

MQDを起動するシェルの環境変数に以下の値を指定します。

変数: OD_CODE_SET
値 : EUC (注)

サーバの文字コードがSJISの場合

MQDを起動するシェルの環境変数に以下の値を指定します。

変数: OD_CODE_SET
値 : SJIS (注)

Windowsのシステム環境変数に以下の値を指定します。

変数: OD_CODE_SET
値 : SJIS

MQDを起動するシェルの環境変数に以下の値を指定します。

変数: OD_CODE_SET
値 : EUC

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

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

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

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

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

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

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

[図の説明]

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

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

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

項目名

和名

データ型

設定値

MSG-NAME

メッセージ名

PIC X(64)

SEND-MSG-ERR

ORIGINAL-QNAME

送信キュー名

PIC X(64)

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

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

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

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

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

 図11.27に概念図を示します。

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

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

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

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

 図11.28に退避する設定にしていない場合、図11.29に退避する設定にしている場合の概念図を示します。

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

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


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006