インメモリー・フロー・インスタンスに対する永続性の設定

ビジネス・フローを構成するコンポーネントの永続性の設定により、フロー、状態および監査データがキャッシュまたはデータベースにいつ保持されるかが決まります。このことは、Enterprise Manager Fusion Middleware Controlに表示されるフロー・インスタンス・データにも影響します。

表13-6に、様々な永続性の設定と、フロー、状態、監査およびセンサー・データにそれが及ぼす影響を示します。

表13-6 インメモリー・フロー・インスタンスに対する永続性の設定

完了永続ポリシー 説明 Enterprise Managerでのビジネス・フロー・インスタンス
即時 フロー・トレース、BPEL監査トレースおよびフロー・インスタンス状態データは、常にデータベースに保持されます。 この動作は、メモリー内SOAが有効でない場合と同じです。
遅延 フロー、監査および状態のすべてのデータは、最初にCoherenceキャッシュに保持されます。個別のwrite-behindスレッドが、データベースへのキャッシュの遅延書込みを実行します。write-behindスレッドは定期的にウェイクアップします(デフォルトは5分)。

データベース・ラウンドトリップ数が削減され、write-behindスレッドがウェイクアップするたびに、融合されたデータのみがデータベースに書き込まれます。

Enterprise Manager Fusion Middleware Controlですべてのフロー・インスタンスが表示されます。

ただし、write-behindスレッドによるデータベースへの書込みは遅延間隔ごとであるため、フロー・データの更新はwrite-behindスレッドで決定された間隔で発生します。Enterprise Managerは、データベースからそのデータを読み取ります。

フォルト 正常な実行の場合、フロー・トレース、BPEL監査トレースおよびフロー・インスタンス状態データは保持されません。フローにフォルトが発生した場合は、すべてのデータがデータベースに保持されます。フローがリカバリされると、フロー・データはすべてパージされます。

コンポーネントがデハイドレーション・ポイントに到達した場合は、状態データがCoherenceキャッシュに保持されます。

書込み遅延間隔をまたぐ長時間実行フローの場合、write-behindスレッドでは実行中インスタンスの状態をデータベースに一時的に保持します。インスタンスの実行が完了すると、これらはパージされます。

faulted完了永続ポリシーを使用するフローの場合、フォルト・フロー・インスタンスを除いて、Enterprise Manager Fusion Middleware Controlにフロー・インスタンスは表示されません。

長時間実行フロー・インスタンスがwrite-behindスレッドによってデータベースに保持されている場合は、Enterprise Managerに一時的に表示される可能性があることに注意してください。ただし、フロー・インスタンスが完了すると、このデータはパージされます。

文字列値 immediate、deferredおよびfaultedは、大/小文字の区別はありません。

ビジネス・フローはコンポジットおよびコンポーネントをまたぐことができるため、異なる永続性の設定を持つコンポーネントを含むフローの永続性は、保持するコンポーネントによって決まります。そのため、1つのコンポーネントがデータベースに保持されるように構成されている場合でも、フローのすべてのコンポーネントがデータベースに保持されます。

たとえば、あるBPELコンポーネントは永続性がdeferredに設定されていて、同じフロー内の別のBPELコンポーネントは永続性がimmediateに設定されている場合、immediate設定はdeferred設定をオーバーライドし、すべてのフロー・インスタンス状態およびフロー監査トレース・データはただちにデータベースに保持されます。同様に、1つのコンポーネントがdeferredに設定されていると、それ以外のすべてのコンポーネントがfaultedに設定されていても、永続性の設定のデフォルトはdeferredとなり、フロー、状態および監査データが保持されます。

ノート:

  • コンポーネントの状態およびコンポーネントの監査トレースは、コンポーネントに適用されている永続ポリシーに基づいて保持されます。フロー・インスタンス状態およびフロー監査トレースは、オーバーライド・ルールによって決定されます。このため、immediatedeferredをオーバーライドし、deferredはfaultedをオーバーライドします。

  • センサー・データはフロー・データごとに保持されます。フローがデータベースに保持される場合は、センサー・データもデータベースに保持されます。

インメモリー・フローに対する書込み遅延

write-delayスレッドで使用されるデフォルトの間隔は5分です。これは、5分ごとにキャッシュからデータベースにデータがコピーされることを意味します。

たとえば、ほとんどのBPELプロセスが5分ではなく6分で完了し、かつ、データベースの書込みを減らすためにwrite-delayを調整することが求められるなどの理由で、これを変更する場合は、次のサーバー起動引数をSOAサーバーに設定できます。

-Dsoa.cache.writebehindDelay=6m

Oracle WebLogic Remote Consoleを使用して、サーバー起動引数を設定できます。