インメモリー・フロー・インスタンスに対する永続性の設定
ビジネス・フローを構成するコンポーネントの永続性の設定により、フロー、状態および監査データがキャッシュまたはデータベースにいつ保持されるかが決まります。このことは、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
となり、フロー、状態および監査データが保持されます。
ノート:
-
コンポーネントの状態およびコンポーネントの監査トレースは、コンポーネントに適用されている永続ポリシーに基づいて保持されます。フロー・インスタンス状態およびフロー監査トレースは、オーバーライド・ルールによって決定されます。このため、
immediate
はdeferred
をオーバーライドし、deferredはfaulted
をオーバーライドします。 -
センサー・データはフロー・データごとに保持されます。フローがデータベースに保持される場合は、センサー・データもデータベースに保持されます。
インメモリー・フローに対する書込み遅延
write-delayスレッドで使用されるデフォルトの間隔は5分です。これは、5分ごとにキャッシュからデータベースにデータがコピーされることを意味します。
たとえば、ほとんどのBPELプロセスが5分ではなく6分で完了し、かつ、データベースの書込みを減らすためにwrite-delayを調整することが求められるなどの理由で、これを変更する場合は、次のサーバー起動引数をSOAサーバーに設定できます。
-Dsoa.cache.writebehindDelay=6m
Oracle WebLogic Remote Consoleを使用して、サーバー起動引数を設定できます。