![[z/OS]](../images/ngzos.gif)
SOAP の調整
Web サービスと一緒に使用する SOAP メッセージを調整する方法について学習します。
このタスクについて
手順
- servant.jvm.options (-Dcom.ibm.CORBA.iiop.noLocalCopies=1) で noLocalCopies を指定します。 これにより、値ではなく参照によるパラメーターの引き渡しが可能になります。 これは、エンタープライズ Bean を Web サービスとして公開している場合にのみ適用されます。 詳しくは、オブジェクト・リクエスト・ブローカー・サービスの設定情報を参照してください。
- 問題をアクティブにデバッグするのでなければ、すべてのトレースを使用不可にしてください。
- アプリケーションのトランザクション・ポリシーを定義する際に、TX_NOT_SUPPORTED を指定して、ローカル・トランザクションを選択します。 ローカル・トランザクションの方がグローバル・トランザクションよりも良好なパフォーマンスを得られます。これは、WebSphere® が複数のリソース・マネージャーに対してコミット有効範囲を調整せずに済むためです。
- SOAP メッセージで空の属性または空のエレメントを渡すことのないようにしてください。SOAP メッセージに余分な不要データを組み込むことのないようにしてください。Document/Literal スタイルの Web サービス呼び出しを使用して、単一の SOAP メッセージに要求をバッチ処理できれば、個々の SOAP メッセージを複数送信するよりも好ましい方法です。 SOAP アプリケーションは、SOAP メッセージが少なく、含まれる XML エレメントが少ない (特に XML 属性が少ない) ほど、パフォーマンスが向上します。SOAP メッセージの内容は、シリアライズし、構文解析する必要があります。これはコストを要する操作であるため、最小限に抑えなければなりません。つまり、10KB のメッセージを 1 つ送る方が、1KB のメッセージを 10 個送るよりも好ましいということです。ただし、 非常に大きな (例えば 200KB を超える) メッセージは、メモリーなどのシステム・リソースに影響を与える場合があります。
- デフォルトの Java™ ヒープ・サイズを増やす必要のある場合があります。 SOAP および XML (DOM) は、ストレージ集約型であり、ヒープ・サイズが小さいと Java ガーベッジ・コレクションが過剰に行われる場合があります。 ほとんどのテスト・ケースでは、256M (デフォルト) のヒープ・サイズが最適であることが確認されています。ガーベッジ・コレクションは、verbose:gc Java ディレクティブを使用してモニターできます。
- TCP/IP 送信/受信バッファーが、送信される大量の XML メッセージを十分保持できるサイズであることを確認します。
- RPC モデルよりも文書モデルを使用するようにしてください。 これにより、XML フォーマットを完全に制御することができますが、追加のプログラミング作業が必要になります。
- RPC スタイルのメッセージを使用する場合、可能であればストリングを送信してください。
- Java API for XML-based RPC (JAX-RPC) の Web サービスの場合は、独自のシリアライザーとデシリアライザーを作成してリフレクションを回避することを検討してください。