- Oracle SOAスイートでのSOAアプリケーションの開発
- BPELプロセス・サービス・コンポーネントの使用
- 相関セットおよびメッセージ集約の使用
- 同じインスタンスへのメッセージのルーティング
- BPELプロセス・インスタンス作成の構成方法
BPELプロセス・インスタンス作成の構成方法
reenableAggregationOnComplete
プロパティを使用して、メッセージをルーティングするために作成して使用するインスタンス数を制御できます。
BPELプロセス・インスタンス作成を構成するには:
- SOAコンポジット・エディタで、図9-16に示すように、BPELプロセス・サービス・コンポーネントを選択します。
- Oracle JDeveloperの右下の隅にある「プロパティ・インスペクタ」に移動します。「プロパティ・インスペクタ」が表示されない場合は、「表示」メイン・メニューから「プロパティ・インスペクタ」を選択します。
- 図9-17に示すように、「プロパティ」セクションで「追加」アイコンをクリックします。
「プロパティの作成」ダイアログが表示されます。
- 「名前」フィールドで、
bpel.config.reenableAggregationOnComplete
デプロイメント・ディスクリプタのプロパティを入力します。このタイプのデプロイメント・ディスクリプタには、接頭辞bpel.config
が必要です。 - 「値」フィールドで、表9-12の説明に従って
true
と入力します。表9-12 reenableAggregationOnCompleteプロパティ設定
値 説明 例 true
メッセージを処理する新規インスタンスが作成されます。ただし、メッセージの受信からインスタンスの完了までの間に、1つのウィンドウが表示されます。これにより、メッセージが
DLV_MESSAGE
表に残される場合があります。この設定により、競合状態が発生する場合があります。詳細は、表9-13を参照してください。initiate
操作を使用して、クライアントに対してメッセージ1から4を起動します。これにより、次のアクションが発生します。-
BPELプロセスの2つのインスタンスが作成されて完了されます。
-
メッセージ1と2は最初のインスタンスに、メッセージ3と4は2番目のインスタンスにルーティングされます。
false
これはデフォルトの動作です。この設定により、集約機能が無効化されます。作成されるインスタンスは1つのみです。インスタンスによって処理されないメッセージは、
DLV_MESSAGE
表に残されます。ほとんどの環境で、この設定を使用することをお薦めします。initiate
操作を使用して、クライアントに対してメッセージ1から4を起動します。BPELプロセスの1つのインスタンスが作成されて完了されます。同じ相関セットを使用する複数のメッセージを1つのBPELインスタンスにルーティングしないようにしてください。
図9-18は、完成した「プロパティの作成」ダイアログを示しています。
-
- 「OK」をクリックします。
composite.xml
ファイル内のbpel.config
接頭辞が付いたreenableAggregationOnComplete
プロパティは、次のようになります。<composite name="Aggregation" revision="1.0" label="2011-07-10_13-52-24_174" mode="active" state="on"> . . . . . . <component name="Aggregation" version="1.1"> <implementation.bpel src="Aggregation.bpel"/> <property name="bpel.config.reenableAggregationOnComplete" type="xs:string" many="false" override="may">true</property> </component> . . . . . . </composite>