クライアント・アプリケーションでは、WS-ReliableMessaging シーケンスをプログラマチックに制御することができます。 シーケンスを作成するための高信頼性メッセージング・クライアント・アプリケーションをコード化する際のガイダンスとして、これらのコード・フラグメントを使用してください。
クライアント・アプリケーションによって、信頼性の高いメッセージングのシーケンスをプログラマチックに制御するためには、WSRMSequenceManager インスタンスにアクセスする必要があります。 以下のコード例の最初には、WSRMSequenceManager オブジェクトを作成するためのコードが含まれています。 このオブジェクトでの処理について詳しい情報が必要な場合は、WS-ReliableMessaging シーケンスのプログラマチックな制御 を参照してください。
新規の高信頼性メッセージング・シーケンスを作成するには、まず WSRMSequenceProperties オブジェクトを作成します。
import com.ibm.wsspi.wsrm.WSRMSequenceProperties ......... WSRMSequenceManager sequenceManager = WSRMSequenceManagerFactory .getInstance().createWSRMSequenceManager(); WSRMSequenceProperties sequenceProperties = sequenceManager .createNewWSRMSequenceProperties();
使用可能なプロパティーを設定するには、以下のメソッドを実行します。
/** * ターゲット・プロバイダーのエンドポイントを設定します。 * WSRMSequenceProperties オブジェクトが使用されると、null 値によって NullPointerException が実行されます。 * * @param providerEndPoint The target service endpoint URI */ public void setTargetEndpointUri(String providerEndPoint); /** * これは、プロバイダーと要求側の間に応答フローが必要であることを示すために使用されます。 * 応答フローは、作成シーケンス時に確立されます。 * * このメソッドを呼び出すことで、応答フローが必要であることを示します。 */ public void setUseOfferedSequenceId(); /** * RM プロトコル・メッセージの Soap バージョンを設定します。 * このプロパティーのデフォルト値は WSRMSequenceProperties.SOAP_11 です。 * * @param soapVersion */ public void setSoapVersion(int soapVersion); /** * シーケンス肯定応答メッセージが非同期的に送り返された場合、このメソッドを呼び出します。 * */ public void useAsyncTransport();
高信頼性メッセージング・シーケンスを作成するには、WSRMSequenceManager で createNewWSRMSequence メソッドを使用します。
/** * このクライアントと WSRMSequenceProperties インスタンスで指定されたターゲット EPR * 間の新規シーケンス・ハンドシェークを開始します。 * * このシーケンスは、createNewWSRMSequence 呼び出しを発行しているクライアントにのみ有効になります。 * * この呼び出しから値が戻る場合、シーケンスが設定されているという保障はありません。 * * @throws NullPointerException sequenceProperties オブジェクトが NULL か、またはターゲット EPR が NULL の場合 * * @param clientObject JAX-WS ディスパッチ・インスタンス、または動的プロキシー・クライアント・インスタンス。 * @param sequencePropeties 高信頼性メッセージング・シーケンスを作成するためのプロパティー * @throws WSRMNotEnabledException * @throws WSRMSequenceAlreadyExistsException */ public void createNewWSRMSequence(Object clientObject, QName portQName, WSRMSequenceProperties sequencePropeties) throws WSRMNotEnabledException, WSRMSequenceAlreadyExistsException;