enableTransactionalOneWay プロパティーを使用して、JMS トランスポートを使用した片方向 JAX-RPC Web サービス要求がトランザクションによって宛先キューまたはトピックに送信されるようにします。
このタスクについて
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 プロパティーを使用可能にしてから、クライアント・アプリケーションを実行します。