4.4.6 MBSTRINGバッファ・タイプを使用する
Tuxedo 9.0以降、JoltではMBSTRINGバッファ・タイプがサポートされています(Tuxedo ATMIではTuxedo 8.1以降ですでにサポートされています)。
Javaではマルチ・バイト文字のエンコーディングの標準としてUnicodeが使用され、Unicodeの文字列データ用にStringクラスが提供されているので、Jolt MBSTRINGのサポートではJavaクライアント側のMBSTRINGコンテナとしてStringクラスが使用されます。Joltでは、JoltクライアントとTuxedoサーバーの間でデータが転送されるときに、Stringオブジェクト内のUnicode MBSTRINGデータがバイト配列MBSTRINGデータ(ATMIのMBSTRING表現)に、またはその逆に自動的に変換されます。
次の各メソッドが、bea.jolt.Message
インタフェース、bea.jolt.JoltMessage
クラスおよびbea.jolt.JoltRemoteService
クラスに追加されています。
addMBString
setMBString
setMBStringItem
getMBStringDef
getMBStringItemDef
MBSTRINGバッファ・タイプの使用方法はSTRINGバッファ・タイプとほとんど同じですが、メタデータ・リポジトリ・エディタで指定されるバッファ・タイプはMBSTRINGで、MBSTRINGデータを取得および設定するためのJavaメソッドは前述のメソッドです。
さらに、次のJavaシステム・プロパティは、Tuxedoサーバーに送信されるMBSTRINGデータの文字エンコーディング名を指定するために使用されます。
- bea.jolt.mbencoding
- MBSTRINGデータをTuxedoサーバーに送信するときに、Unicode MBSTRINGデータを対応するバイト配列MBSTRINGデータに変換するために使用されるTuxedoエンコーディング名。このプロパティが指定されていない場合、Javaのデフォルトの文字エンコーディング名が使用され、対応するTuxedoエンコーディング名にマップされます。たとえば、デフォルトの日本語版Windowsのエンコーディング名MS932は、対応するTuxedoエンコーディング名CP932にマップされ、このプロパティ内に指定されます。
- bea.jolt.mbencodingmap
- JoltクライアントとTuxedoサーバー間の文字エンコーディング名のマッピングを指定するファイルのフル・パス名。このマッピングが必要なのは、同じ文字エンコーディングの文字エンコーディング名がJavaとTuxedoで異なる場合があるためです。たとえば、デフォルトの日本語版Windowsのエンコーディング名は、JavaではMS932ですが、TuxedoではCP932です。このプロパティを指定しない場合、マッピングは行われません。