enableTransactionalOneWay プロパティーを使用して、JMS トランスポートを使用した片方向 JAX-RPC Web サービス要求がトランザクションによって宛先キューまたはトピックに送信されるようにします。
このタスクについて
重要: WebSphere Application Server Version
6.1 Feature Pack for Web Services は、本製品の機能を拡張して、Java API for XML-Based Web Services (JAX-WS) 2.0 の
プログラミング・モデルを導入できるようにします。
JAX-WS は、次世代の Web サービス・プログラミング・モデルであり、
Java API for XML-based RPC (JAX-RPC) プログラミング・モデルが提供する
基盤を提供します。戦略的 JAX-WS プログラミング・モデルを使用すると、
標準ベースの注釈モデルのサポートによって、Web サービスおよび Web クライアントの開発が
容易になります。
JAX-RPC プログラミング・モデルとアプリケーションは
引き続きサポートされますが、Web サービス・アプリケーションおよびクライアントを
新規に開発する場合は、
実装が容易な JAX-WS プログラミング・モデルをご利用ください。
サポートされる構成: Feature Pack for Web Services では、
Java Message Service (JMS) トランスポートとエンタープライズ Bean はサポートしていません。この製品がサポート
しているのは、HTTP トランスポートと、JAX-WS Web サービス・アプリケーションの Web コンテナー内での、
JavaBeans エンドポイントのホスティングのみです。Web サービスとしてホストされるエンタープライズ Bean を
開発するには、JAX-RPC プログラミング・モデルを使用する必要があります。この製品により、
JAX-WS クライアントは、Java Platform、Enterprise Edition (Java EE) コンテナー、
およびクライアント Java 2 Standard Edition (J2SE) 環境から
要求を発行することができます。sptcfg
enableTransactionalOneWay プロパティーは、WebSphere Application Server V6.0.2 サービス・リリース 9 以降に適用されます。
JMS を使用して Web サービス要求をトランスポートする場合、デフォルトの振る舞いでは SOAP メッセージが宛先キューまたはトピックに、トランザクションを介さないで、またはクライアント・アプリケーションのトランザクション以外で追加されます。
宛先キューまたはトピックへの SOAP メッセージの追加は、双方向 Web サービス要求で発生する可能性がある同期問題を避けるためにトランザクション外で行われます。
ただし、片方向要求をトランザクションの一部として処理することを選択できます。
enableTransactionalOneWay プロパティーを使用して、JMS トランスポートを使った片方向 Web サービス要求が宛先キューまたはトピックにトランザクションを介して送信されるようにすることができます。
クライアント・アプリケーションが片方向 Web サービス要求を呼び出すと、その結果 SOAP 要求メッセージがクライアント・アプリケーションのトランザクションの一部として宛先キューまたはトピックに追加されます。
以下のいずれかの方法を使用して enableTransactionalOneWay プロパティーを使用可能にします。
プロシージャー
- enableTransactionalOneWay プロパティーを、クライアント JAX-RPC Stub または Call オブジェクトにプログラマチックに設定します。
Web サービス操作の呼び出しに静的 Stub を使用する場合は、Web
サービス・メソッドを呼び出す前に enableTransactionalOneWay プロパティーを Stub オブジェクトに設定します。Web サービス操作の呼び出しに Call オブジェクトを使用する場合は、invokeOneWay() メソッドを呼び出す前に enableTransactionalOneWay プロパティーを Call オブジェクトに設定します。
Service service = /* Obtain the desired service */
MyStub stub = service.getPort();
/* Set enableTransactionalOneWay property on Stub */
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY, new Boolean(true));
/* Invoke the one-way operation */
stub.myOneWayOperation("Parm1");
このプロパティーの値はブール値です。
- wsadmin コマンドを使用して、ibm-webservicesclient-bnd.xmi デプロイメント記述子ファイルにカスタム・プロパティーとして enableTransactionalOneWay プロパティーを設定します。
wsadmin ツール・オプションについて詳しくは、AdminApp オブジェクトの install、installInteractive、edit、editInteractive、update、および updateInteractive コマンドのオプションを参照してください。
$AdminApp オブジェクトと -WebServicesClientCustomProperty オプションを使用して、クライアント・バインディング・ファイル ibm-webservicesclient-bnd.xmi 内にプロパティーの値を設定します。カスタム・プロパティー enableTransactionalOneWay の値は、true または false でなければなりません。
- Jacl を使用:
$AdminApp edit MyApplication {-WebServicesClientCustomProperty
{{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay
true}}}
- Jython を使用:
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty',
[['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay',
'true']]])
結果
Web サービス・クライアント・アプリケーションが、JMS トランスポートを使用してトランザクションによる片方向要求を呼び出すように構成されました。
次の作業
enableTransactionalOneWay プロパティーを使用可能にしてから、クライアント・アプリケーションを実行します。