パススルーを使用する場合の注意事項

AWTまたはSWTキャッシュ・グループのキャッシュ表に対して発行する場合は、更新処理をOracle Databaseにパススルーして処理することはお薦めしません。

  • AWTキャッシュ・グループのキャッシュ表にコミットされた変更は、キャッシュされたOracle Database表に自動的に非同期で伝播されます。一方、AWTキャッシュ・グループのキャッシュ表に対する更新と同じトランザクション内で更新処理をOracle Databaseにパススルーして処理すると、キャッシュ表の更新が同期して伝播され、不適切な結果が発生する場合があります。

  • 同じトランザクション内で、同じ表に対する更新がOracle Databaseにパススルーされて処理された場合、SWTキャッシュ・グループのキャッシュ表にコミットされた変更によって自己デッドロックが発生することがあります。

PL/SQLブロックをOracle Databaseにパススルーして処理することはできません。また、Oracle Databaseには定義されているものの、TimesTenデータベースには定義されていないストアド・プロシージャまたは関数への参照をOracle Databaseにパススルーして処理することもできません。

PassThrough接続属性の設定によって、どの状況で、どの文がTimesTenデータベースで実行され、どの文がOracleデータベースにパススルーされて処理されるのかを決定する方法の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』「PassThrough」を参照してください。

ノート:

パススルー機能では、Oracle Databaseとの通信にOCIを使用します。OCI診断フレームワークではシグナル・ハンドラをインストールしますが、このハンドラはアプリケーションで使用するシグナル処理に影響を与える可能性があります。OCIシグナル処理を無効化するには、sqlnet.oraファイルでDIAG_SIGHANDLER_ENABLED=FALSEを設定します。『Oracle Call Interfaceプログラマーズ・ガイド』の"「OCIでの障害診断」を参照してください。