setPolicyType および setBinding コマンドで attributes パラメーターを使用して、ReliableMessaging ポリシーおよびポリシー・セット・バインディングに追加の構成情報を指定します。
WSReliableMessaging サービスの品質 (QoS) は、アプリケーション・ポリシー・セットでのみ使用できます。
WSReliableMessaging は、2 つのエンドポイント間で信頼性の高いメッセージ送信を行う場合の、インターオペラビリティー標準です。
ビジネス間で Web サービスを使用する際は、WSReliableMessaging を使用してトランザクションを保護および検証します。
AdminTask オブジェクトの PolicySetManagement グループにある以下のコマンドとパラメーターを使用して、ポリシー・セットの構成をカスタマイズします。
- ポリシーおよびバインディング構成のプロパティーを表示するには、getPolicyType コマンドおよび getBinding コマンドの attributes パラメーターを使用します。
属性を取得するには、プロパティー名を getPolicyType コマンドまたは getBinding コマンドに渡します。
- ポリシーおよびバインディング構成にプロパティーを追加したり、更新したり、プロパティーを除去するには、setPolicyType コマンドおよび setBinding コマンドの attributes パラメーターを使用します。
属性を追加したり、更新したりするには、プロパティーの名前と値を指定します。
setPolicyType コマンドおよび setBinding コマンドは、その属性が存在する場合は値を更新します。また、その属性が存在しない場合は属性と値を追加します。
属性を除去するには、空ストリング ("") で値を指定します。attributes パラメーターがプロパティー・オブジェクトを受け入れます。
注: attributes パラメーターに提供されたプロパティーの名前または値が無効な場合は、例外が発行されて setPolicyType コマンドと setBinding コマンドは失敗します。
無効なプロパティーは、エラーまたは警告として SystemOut.log ファイルに記録されます。ただし、コマンドの例外に、その例外の原因となったプロパティーの詳細情報が含まれない場合があります。
setPolicyType コマンドと setBinding コマンドが失敗した場合は、SystemOut.log ファイルを調べて、attributes パラメーターの入力に 1 つまたは複数の無効なプロパティーがあることを示す、エラー・メッセージまたは警告メッセージを探します。
WSReliableMessaging ポリシー・プロパティー
setPolicyType コマンドで以下のプロパティーを指定して、WSReliableMessaging ポリシーを構成します。
- specLevel
- 信頼性の高いメッセージ送信に使用する WS-ReliableMessaging 標準を選択してください。
デフォルト値は、WS-ReliableMessaging 仕様のバージョン 1.1 です。
以下の情報を使用して、仕様レベルを選択してください。
- specLevel 属性の値として 1.0 を指定すると、WS-ReliableMessaging 仕様のバージョン 1.0、2005 年 2 月の仕様レベルを使用します。
- specLevel 属性の値として 1.1 を指定すると、OASIS WS-ReliableMessaging 仕様のバージョン 1.1、2006 年 8 月の仕様レベルを使用します。
以下のコード・セットの例では、specLevel プロパティーを OASIS WS-ReliableMessaging 仕様のバージョン 1.1、2006 年 8 月のレベルに設定しています。
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging"
-policyType WSReliableMessaging -attributes "[[specLevel 1.1]]"]')
- inOrderDelivery
- メッセージを受信した順序で処理するかどうかを指定します。
inOrderDelivery プロパティーを使用すると、前のメッセージの処理を待つ間、インバウンド・メッセージはキューに入れられる可能性があります。
以下のサンプル・コードでは、inOrderDelivery プロパティーを有効にしています。
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging"
-policyType WSReliableMessaging -attributes "[[inOrderDelivery true]]"]')
- qualityOfService
使用する WSReliableMessaging サービスの品質を指定します。
以下の 3 つの値の 1 つを qualityOfService 属性に定義します。
- unmanagedNonPersistent
この設定は、ネットワークとリモート・システムの障害を許容します。
unmanagedNonPersistent サービスの品質は、非トランザクションです。
この設定を構成すると、サーバーに障害が発生した場合にメッセージが失われます。
このサービスの品質は、Web サービス・リクエスターとして構成されているすべての環境でサポートされます。
- managedNonPersistent
この設定は、システム、ネットワーク、およびリモート・システムの障害を許容します。
ただし、メッセージング・エンジンが再始動すると、メッセージ状態は破棄されます。
managedNonPersistent サービスの品質は、非トランザクションです。
この設定により、サーバーの障害発生時におけるメッセージ損失を防ぐことができます。
ただし、メッセージング・エンジンに障害が発生した場合、メッセージは失われます。
管理対象およびシン・クライアントのアプリケーションでは、このサービスの品質を使用できません。
- managedPersistent
この設定は、システム、ネットワーク、およびリモート・システムの障害を許容します。
この場合、メッセージはトランザクション内で処理され、Web サービス・リクエスターおよびプロバイダーで維持されます。
サーバーに障害が発生した場合に、メッセージを回復可能です。
障害時に正常に送信されなかったメッセージは、メッセージング・エンジンまたはアプリケーションを再始動すると、送信が続行されます。
管理対象およびシン・クライアントのアプリケーションでは、このサービスの品質を使用できません。
以下の例では、qualityOfService プロパティーを管理対象外の非パーシスタントとして設定しています。
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging" -policyType
WSReliableMessaging -attributes "[[qualityOfService unmanagedNonPersistent]]"]')
以下の例では、setPolicyType コマンドを使用して各ポリシー・プロパティーに値を設定しています。
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging"
-policyType WSReliableMessaging -attributes "[[specLevel 1.1][inOrderDelivery true]
[qualityOfService unmanagedNonPersistent]]"]')
WSReliableMessaging バインディング構成属性
qualityOfService ポリシー・プロパティーを managedNonPersistent または managedPersistent に設定した場合、setBinding コマンドで以下のプロパティーに値を指定して WSReliableMessaging バインディングを構成してください。
- busName
- managedNonPersistent または managedPersistent のサービスの品質オプションで使用するメッセージング・エンジンを含むサービス統合バスの名前です。
以下の例では、busName プロパティーを
myBus として設定しています。
AdminTask.setBinding('[-bindingLocation "" -policyType WSReliableMessaging
-attributes "[[busName myBus]]"]')
- messagingEngineName
- managedNonPersistent または managedPersistent のサービスの品質オプションで使用するメッセージング・エンジンの名前です。
以下の例では、messagingEngineName プロパティーを
messagingEngine001 として設定しています。
AdminTask.setBinding('[-bindingLocation "" -policyType WSReliableMessaging
-attributes "[[messageEngineName messageEngine001]]"]')
以下のコード例では、
setBinding コマンドを使用して各バインディング属性に値を設定する方法を示します。
AdminTask.setBinding('[-bindingLocation "" -policyType WSReliableMessaging
-attributes "[[busName myBus][messageEngineName messageEngine001]]"]')