Skip to main content

 

OutSystemsの用語

 

OutSystems

トランザクションの処理

Webリクエストを処理している間、OutSystemsはデータベースへの最初のアクセスでデータベーストランザクションを開始します。OutSystemsがユーザーにレスポンスを送信する前に、トランザクションはコミットされます。

例外が捕捉されずに残った場合、トランザクションはロールバックされます。これはトランザクション内でデータベースに対して行われた変更がすべて元に戻され、このようにしてデータの一貫性が保たれるということを意味します。

明示的なトランザクションの終了

CommitTransactionとAbortTransactionアクションを使用して、トランザクションを明示的に管理できます。

  • CommitTransaction: データベースにCOMMIT文を発行し、現在のトランザクションの開始時点からデータベース上で実行されたすべての変更を有効にします。さらに、現在のトランザクションを終了し、新しいトランザクションを開始します。CommitTransactionの後、アクションフローは続行します。

  • AbortTransaction: ROLLBACK文を発行し、現在のトランザクションの開始時点からデータベース上で実行されたすべての変更を元に戻します。さらに、現在のトランザクションを終了し、新しいトランザクションを開始します。AbortTransactionの後、アクションフローは続行します。

分離レベル

以下のテーブルは、OutSystemsが異なるデータベースで使用する分離レベルを示しています。

DB2 MySQL Oracle SQL Server
Read Committed Read Uncommitted Read Committed Read Uncommitted

MySQLまたはSQL Serverデータベースを使用する際は、Read Uncommitted分離レベルで作業を行います。Webリクエストごとに複数のトランザクション(書き込み用に1つ、各読み取り用に1つずつ)があります。

DB2またはOracleデータベースを使用する際は、Read Committed分離レベルで作業を行います。クエリ、挿入、更新などはすべて同じデータベーストランザクション内で発生します。トランザクションがコミットされた場合のみ、データはデータベースに保存されます。
つまり、トランザクション内でまだコミットされていないデータは読み取ることができません。このため、プロセスインスタンスまたは利用しているWebサービスのメソッドを呼び出す前に、プロセスまたはメソッドで最新データを参照するためにデータベーストランザクションをコミットする必要があります。

重要な注意事項

トランザクションに関して、注意が必要な側面がいくつかあります。

  • トランザクションは常に連続的であり、入れ子にすることはできません。
  • トランザクションをコミットまたはロールバックした後、すべてのデータベースにかけられたロックは最終的に解除されます。
  • 外部システムと連携する際は、トランザクション処理に格別の注意が必要な場合があります。
  • Was this article helpful?