コード化文字セット間のデータ変換

IBM® MQ 定義形式 (組み込み形式とも呼ばれる) のメッセージ・データは、キュー・マネージャーによって 1 つのコード化文字セットから別のコード化文字セットに変換できます。ただし、両方の文字セットが 1 つの言語または類似した言語のグループに関連している場合に限ります。

例えば、ID (CCSID) がそれぞれに 850 と 500 であるコード化文字セット間の変換は、両方とも西欧の言語に該当するため、サポートされます。

ASCII への EBCDIC 改行 (NL) 文字変換については、 すべてのキュー・マネージャーを参照してください。

サポートされる変換は、 データ変換処理で定義されています。

キュー・マネージャーがメッセージを組み込み形式に変換できない場合

CCSID が別の各国語グループを表している場合には、キュー・マネージャーはメッセージを組み込み形式に 自動的に変換することはできません。 例えば、CCSID 850 と CCSID 1025 (キリル文字スクリプトを使用する言語用の EBCDIC コード化文字セット) 間の変換はサポートされていません。これは、一方のコード化文字セットの文字の多くが、もう一方のコード化文字セットで表現できないためです。 さまざまな各国語で稼働しているキュー・マネージャーのネットワークがあり、一部のコード化文字セット間でのデータ変換がサポートされていない場合に、デフォルト変換を使用することができます。

[V9.0.0.0 2016 年 6 月] ccsid_part2.tbl が適用されるプラットフォームの場合、詳しくは、 ccsid_part2.tbl を使用した デフォルト・データ変換の指定 を参照してください。 ccsid_part2.tbl ファイルが適用されるプラットフォーム以外のプラットフォームでのデフォルトのデータ変換については、 デフォルトのデータ変換を参照してください。

[V9.0.0.0 2016 年 6 月]

IBM MQ 9.0 での Unicode データ変換サポートの拡張

IBM MQ 9.0より前のバージョンの製品では、Basic Multilingual Plane ( U+FFFFより上のコード・ポイント) を超える Unicode コード・ポイントを含むデータの変換はサポートされていませんでした。 Unicode データ変換のサポートは、Unicode 3.0 標準に定義されているコード・ポイントに限られ、UTF-16 の 2 バイト固定幅サブセットである UTF-8 または UCS-2 のいずれかでエンコードされていました。

IBM MQ 9.0以降、 IBM MQ は、データ変換において Unicode 8.0 標準で定義されているすべての Unicode 文字をサポートするようになりました。 これには、サロゲート・ペア (U+FFFF より上の Unicode コード・ポイントを表す X'D800' から X'DFFF' の範囲内の 2 バイト UTF-16 文字のペア) を含む UTF-16 の完全サポートが含まれます。

1 つの CCSID 内の事前作成された文字が他の CCSID 内の結合文字シーケンスにマップされた場合、文字シーケンスの結合もサポートされます。

Unicode と CCSID 1388、1390、1399、4933、5488、16884 との間のデータ変換が一部のプラットフォームで拡張され、現在これらの CCSID 用に定義されているすべてコード・ポイントがサポートされるようになりました (Unicode 補助面のコード・ポイントにマップされるものも含む)。

CCSID 1390、1399、および 16884 の場合は、これに JIS X 0213 (JIS2004) 標準で定義された文字も含まれます。

Unicode と 6 つの新規 CCSID (1374 から 1379) との間の変換のサポートも追加されました。

[V9.0.0.0 2016 年 6 月]

ccsid_part2.tbl ファイル

IBM MQ 9.0 から、追加のファイル ccsid_part2.tblが提供されます。

ccsid_part2.tbl ファイルは ccsid.tbl ファイルより優先され、次の意味を持ちます:
  • CCSID 項目の追加や変更が可能になります
  • デフォルトのデータ変換を指定します
  • さまざまなコマンド・レベルのデータを指定します
ccsid_part2.tbl は、以下のプラットフォームにのみ適用されます。
  • [Linux]Linux® -すべてのバージョン
  • [Solaris]Solaris
  • [Windows]Windows

[Windows] IBM MQ 9.0以降、 IBM MQ for Windowsでは、 ccsid_part2.tbl はデフォルトでディレクトリー MQDataRoot\conv\table にあります。 さらに、 IBM MQ for Windows では、サポートされるすべてのコード・セットが記録されます。

[Solaris][Linux] IBM MQ 9.0以降、 IBM MQ for Linux および Solaris プラットフォームでは、 ccsid_part2.tbl はディレクトリー MQDataRoot/conv/tableにあります。 すべての Linux および Solaris プラットフォームで、サポートされるコード・セットは IBM MQによって提供される変換テーブルに保持されます。

ccsid_part2.tbl ファイルは、追加の CCSID 情報を提供するために以前のバージョンの IBM MQ で使用されていた既存の ccsid.tbl ファイルを置き換えますが、 ccsid.tbl ファイルは引き続き IBM MQ によって解析されるため、削除してはなりません。

詳しくは、 ccsid_part2.tbl ファイルを参照してください。

ccsid.tbl file

[V9.0.0.0 2016 年 6 月] ccsid_part2.tbl が適用されるプラットフォーム以外のプラットフォームでは、ファイル ccsid.tbl は以下の目的で使用されます。
  • [AIX][HP-UX] AIX® および HP-UX プラットフォームでは、サポートされるコード・セットはオペレーティング・システムによって内部的に保持されます。
  • このファイルは、追加のコード・セットを指定します。 追加のコード・セットを指定するには、 ccsid.tbl を編集する必要があります ( これを行う方法については、ファイル内で説明します ) 。
  • このファイルは、すべてのデフォルトのデータ変換を指定します。

ccsid.tblに記録された情報を更新することができます。例えば、ご使用のオペレーティング・システムの将来のリリースで追加のコード化文字セットがサポートされている場合に、これを行うことができます。

デフォルトのデータ変換

以下のプラットフォームでは、デフォルトのデータ変換方法が [V9.0.0.0 2016 年 6 月]変更されました IBM MQ 9.0
  • Linux -すべてのバージョン
  • Solaris
  • Windows
詳しくは、 ccsid_part2.tbl を使用した デフォルト・データ変換の指定 を参照してください。

データ変換が通常はサポートされていない 2 つのマシン間でチャネルをセットアップする場合、チャネルが作動するようにデフォルトのデータ変換を使用可能にしなければなりません。

[V9.0.0.0 2016 年 6 月] ccsid_part2.tbl が適用されないプラットフォームでは、デフォルトのデータ変換を有効にするには、 ccsid.tbl ファイルを編集して、デフォルトの EBCDIC CCSID とデフォルトの ASCII CCSID を指定します。 この方法に関する指示は、このファイルに入っています。 チャネルを使用して接続されるすべてのマシン上でこれを実行しなければなりません。 変更内容を有効にするには、キュー・マネージャーを再始動します。

デフォルトのデータ変換プロセスは、次のようになります。
  • ソース CCSID とターゲット CCSID 間の変換がサポートされていなくても、CCSID のソース環境およびターゲット環境の両方が EBCDIC または ASCII のいずれかである場合は、文字データは変換されずにターゲット・アプリケーションに渡されます。
  • 一方の CCSID が ASCII コード化文字セットを表し、他方の CCSID が EBCDIC コード化文字セットを表す場合、 IBM MQ は ccsid.tblで定義されているデフォルトのデータ変換 CCSID を使用してデータを変換します。
注: 変換される文字を、メッセージに指定されたコード化文字セットとデフォルトのコード化文字セットで同じコード値を持つ文字に制限してください。 IBM MQ オブジェクト名に有効な文字セットのみを使用する場合 ( IBM MQ オブジェクトの命名 で定義されているとおり) 一般的に、この要件を満たすことになります。 日本で使用されている EBCDIC CCSID 290、930、1279、および 5026 では例外が発生します。この場合、小文字は他の EBCDIC CCSID で 使用されるものとは異なるコードを持ちます。

ユーザー定義形式でのメッセージの変換

ユーザー定義形式のメッセージを、キュー・マネージャーによって 1 つのコード化文字セットから別のコード化文字セットに変換することはできません。 ユーザー定義形式のデータが変換を必要とする場合は、形式ごとにデータ変換出口が必要となります。 ユーザー定義の形式で文字データを変換するためにデフォルトの CCSID を使用しないでください。 ユーザー定義形式でデータを変換する方法、およびデータ変換出口を作成する方法について詳しくは、 データ変換出口の作成を参照してください。

キュー・マネージャー CCSID の変更

キュー・マネージャーの CCSID を変更するために ALTER QMGR コマンドの CCSID 属性を使用したとき、コマンド・サーバーおよびチャネル・プログラムを含む、実行しているすべてのアプリケーションが確実に停止され、再始動されるようにするためにキュー・マネージャーを停止し、再始動します。

これは、キュー・マネージャー CCSID が変更されるときに実行しているアプリケーションが既存の CCSID を使用し続けるために必要です。