このトピックでは、C プログラミング言語で WebSphere Message Broker のユーザー定義拡張機能を開発する際に 考慮する必要のあるストリング処理に関連する問題を扱います。
Java プログラミング言語を使用してユーザー定義拡張機能を開発している場合、 標準 Java ストリング処理メソッドを使用できます。
WebSphere Message Broker ブローカーが同時にすべての言語でメッセージを処理できるようにするため、 ブローカー内のテキスト処理は UCS-2 Unicode で実行されます。 UCS-2 Unicode 文字ストリングは、Java および C 言語のユーザー定義拡張 API 全体で、 文字データを受け渡しするためにも使用されます。 属性は、データ・タイプに関係なく、文字ストリングとして XML 構成メッセージで受け取られます。 属性の真のデータ・タイプがストリングでない場合、cniSetAttribute 関数は、 属性値の保管前に必要な検査と変換を実行する必要があります。 同様に、属性値が cniGetAttribute2 を使って検索される場合、結果を戻す前に UCS-2 Unicode 文字ストリングに対して変換を実行することが必要です。
CciChar は、UCS-2 Unicode 表記で 16 ビット文字を定義します。 CciChar* は 0 の CciChar で終了するそのような文字のストリングです。 デフォルトでは、CciChar はタイプ wchar_t で表記されます。 しかし、プラットフォームによっては、通常 4 バイト wchar_t または EBCDIC 表記のため、ソース・コードで UCS-2 定数を表記する便利な方法がありません。 例えば、L"ABC" のようなソース・コード定数は、Solaris では 12 バイトに拡張します。
このため、WebSphere Message Broker はユーティリティー関数 cciMbsToUcs および cciUcsToMbs を提供しています。 適切なところではこれらの関数を使って、ユーザー定義ノードの移植性を確保してください。