IBM WebSphere InterChange Server システムは、コラボレーションにいくつかのトランザクション実行レベルを提供します。より高度なレベルでは、InterChange Server が分離違反を検出します。 分離とは、トランザクションの実行中に、そのトランザクションがデータへの排他的アクセス権を持つことの保証です。トランザクションのデータはトランザクション内の操作間で変更されないので、トランザクションのロジックの影響は予測可能です。
データベース・トランザクションまたは 2 フェーズ・コミットでは、データベース・ロックによってトランザクション実行中の分離が保証されます。IBM WebSphere InterChange Server 環境では、トランザクション・シナリオはステップ間のデータをロックできません。各ステップがアプリケーション・トランザクションを引き起こし、完了するとロックを解除するからです。ロックが解除されると、他のプログラムは更新されたデータを表示したり変更したりできます。
シナリオで、同一のデータを複数回使用する必要がある場合があります。例えば、複数のアクション・ステップで同一のデータを更新することがあります。また、シナリオが失敗してロールバックする場合、差し戻しステップが直前のアクションで設定されたデータに再度アクセスして、元の値に復元することがあります。
シナリオが複数回使用するデータにとって、あるステップが引き起こしたアプリケーション・トランザクションの完了と別のステップが引き起こしたアプリケーション・トランザクションの開始との時間間隔は、ぜい弱な時間帯です。
図 43 に、同一のビジネス・オブジェクトを更新する 2 つのトランザクション・ステップ間のぜい弱な時間帯を示します。
ぜい弱な時間帯の間、データの分離は保証されません。他のトランザクションによって、シナリオがアクセスしていない間にデータの変更が行われると、シナリオの結果にエラーが生じる場合があります。
コラボレーションによっては、分離を必要としないものもあります。例えば、データを変更するプログラムにすぎないコラボレーションです。ただし、シナリオが他のプログラムも変更を行うデータを変更する場合、分離違反が問題になります。
IBM WebSphere InterChange Server システムは、分離違反からの保護を必要とする コラボレーションに分離チェックを 提供します。コラボレーションが「最大限の努力」または「緊急」トランザクション・レベルで実行されている場合、トランザクション・サービスとコネクターは協働して、データが複数のアクセスの間に損なわれていないか判断します。次のセクションでは、トランザクション・レベルおよび各レベルで分離チェックが発生する状態について説明します。