SOAP over JMS メッセージ・タイプの構成
ご使用の SOAP over Java™ Message Service (JMS) 要求メッセージまたは応答メッセージによって BytesMessage オブジェクトまたは TextMessage オブジェクトが使用されるように構成することができます。
始める前に
JMS トランスポートを通じてアクセスするには、 Web サービスをエンタープライズ Bean として実装する必要があります。
このタスクについて
最新の業界標準である SOAP over JMS プロトコルを使用する Web サービスについては、SOAP over JMS の要求および応答を構成することによって、オブジェクト JMS BytesMessage (javax.jms.BytesMessage) または TextMessage (javax.jms.TextMessage) のどちらによってメッセージが送信されるかを指定できます。デフォルトのメッセージ・タイプは BytesMessage です。
JMS メッセージが BytesMessage である場合、 JMS メッセージの本体はバイナリー・データです。
JMS メッセージが TextMessage である場合、JMS メッセージの本体はストリング・データです。 例えば、人間が判読可能な JMS メッセージを必要とする監査またはロギングの機能を実装する場合のテキスト・メッセージについて考えてみます。
- メモリー使用量 -
TextMessage でのペイロードはストリング・ベースであり、個々の文字は UTF-16 文字エンコードに基づいているため、 TextMessage でのペイロードは同等の BytesMessage の 2 倍のバイト数を占有する可能性があります。 ペイロードが小さい要求および応答メッセージの場合、TextMessages と BytesMessages でのこのメモリー使用量の違いは重要ではないと考えられますが、 ペイロードが大きい場合は、メモリー使用量の違いがより重要になり、業務環境についての考慮が必要になる可能性があります。
- バイナリー添付ファイル -
JMS TextMessage が要求および応答メッセージのトランスポートに使用される場合、SOAP メッセージ本体に含まれているすべてのバイナリー添付ファイルは Base64 でエンコードされる必要があります。 これは、基となるメッセージ・ペイロードがストリング・ベースであるためです。 バイナリー添付ファイルが Base64 でエンコードされている場合、そのデータ変換の実行に追加の処理時間およびメモリーが必要です。 結果として、Base64 でエンコードされているバイナリー添付ファイルは、元のエンコードなしの添付ファイルよりも最大で 3 分の 1 大きくなる可能性があります。 この場合、エンコードされた巨大な添付ファイル部分がストリング・ベースのメッセージ・ペイロードでトランスポートされると、 そのバイナリー添付ファイルのトランスポートに必要なメモリー使用量が BytesMessage での元のエンコードなしのバイナリー添付ファイルのメモリー・サイズの約 3 倍になる可能性があります。
手順
タスクの結果
これで、要求および応答メッセージの送信に SOAP over JMS プロトコルを使用する場合にオブジェクト TextMessage または BytesMessage のいずれかが使用されるように Web サービス・クライアントが構成されます。