トランザクション

多くの場合、アプリケーション サーバーはトランザクション管理を提供します。これは、構成要素をアプリケーション サーバーの制御下に置くときに決定されます。

アプリケーション サーバーがトランザクション管理を提供していない場合は、OpenESQL の COMMIT 文と ROLLBACK 文を使用してトランザクションを管理する必要があります。

一方、アプリケーション サーバーでトランザクション管理を提供する場合は、次のようになります。

MTS または COM+ を使用している場合は、アプリケーション サーバーがトランザクションを管理しているときに、デフォルトのトランザクション分離レベルをシリアル化できます。これによって、過剰なロックが行われたり、並行性が低下したりすることがあります。アプリケーション サーバーでデッドロックを解決しようとすると異常終了するトランザクションを処理できるようにアプリケーションを準備する必要があります。これらの問題を解決するには、次の文を使用します。

exec sql set transaction isolation read committed end-exec

これにより厳格性の低い分離レベルを設定します。この場合は、この文を、CONNEDT 文の直後に実行する文にする必要があります。SQL(AUTOCOMMIT) が使用されていない場合は、SET TRANSACTION ISOLATION 文を実行する直前にコミットまたはロールバックを実行する必要があります。