トランザクションの概要
TimesTenデータベースに対するすべての処理は、アプリケーション・データへの変更やアクセスを行わない場合でも、トランザクション内で実行します。
処理を実行する時点で未処理トランザクションが存在しない場合は、アプリケーションのかわりにトランザクションが自動的に開始します。トランザクションは、明示的または暗黙的なコミットやロールバックによって完了します。完了後は、トランザクションによって取得または開かれたリソース(ロックや結果セットなど)は解放されます。
SQL文またはサポートされているAPI (ODBCやJDBCなど)を使用してトランザクションをコミットまたはロールバックする場合:
-
現在のトランザクションをコミットすると、そのトランザクションで行われた更新は同時トランザクションで有効になります。
-
現在のトランザクションをロールバックすると、そのトランザクションで行われたすべての更新が元に戻されます。
読取り専用トランザクションは最小限のリソースを保持するため、すべての読取り処理をコミットする必要はありません。書込み処理を実行するときは、ロックを解放するためにトランザクションをコミットします。可能な場合は、書込みトランザクションの時間を短くしてください。長時間実行トランザクションは、ロックが保持される時間が長くなり、同時実行トランザクションがブロックされるため、同時実行性およびスループットが低下することがあります。また、長時間実行トランザクションによって、トランザクション・ログ・ファイルがパージされずに、ファイル・システムに蓄積されることがあります。
1つの接続で許可される未処理トランザクションは1つのみです。また、オープン状態のトランザクションが存在する場合、接続は明示的に閉じることはできません。