コンテンツフレーム起動

データベース作業論理単位 (LUW) 文書を SAP ライブラリストラクチャに組み込む

データベースプログラミングの面から言うと、データベース LUW はデータベースコミットで終わる一連の不可分なデータベース操作です。データベース LUW は、データベースシステムによって完全に実行されるか、またはまったく実行されません。データベース LUW が正常に実行されると、データベースは整合性のある状態となります。データベース LUW 内でエラーが発生すると、そのデータベース LUW 開始後に行われたすべてのデータベース変更が取り消されます。これによって、データベースの状態はトランザクションが開始する前のままとなります。

このグラフィックは添付のテキストに説明されています

データベース LUW 内で行われるデータベースの変更は、データベースコミットが実行されるまでデータベースに書き込まれません。それまでの間は、データベースロールバックによって変更を取り消すことができます。R/3 システムでは、データベースのコミットとロールバックを暗黙的に、またはコマンドを使用して明示的にトリガすることができます。

R/3 システムでの暗黙的なデータベースコミット

1 つのワークプロセスで実行できるデータベース LUW 1 つだけです。このためワークプロセスでは、ユーザや外部呼出に対する作業を終える際に、必ずデータベース LUW を終了する必要があります。ワークプロセスでは、以下の状況で暗黙的なデータベースコミットがトリガされます。

        ダイアログステップが完了するとき

制御がワークプロセスから SAP GUI に戻ります。

        汎用モジュールが別のワークプロセス (RFC) で呼び出されるとき

制御がもう一方のワークプロセスに移ります。

        他のワークプロセスで呼び出された汎用モジュール (RFC) が終了するとき

制御が呼出元ワークプロセスに戻ります。

        WAIT 命令によってワークプロセスが中断されたとき

制御が別のワークプロセスに移ります。

        ダイアログステップでのエラーダイアログ ( 情報、警告、またはエラーメッセージ)

制御がワークプロセスから SAP GUI に移ります。

R/3 システムでの明示的なデータベースコミット

アプリケーションプログラムで明示的なデータベースコミットをトリガするには、2 つの方法があります。

        汎用モジュール DB_COMMIT を呼び出す方法

この汎用モジュールでは、データベースコミットの開始のみが行われます。

        ABAP 命令 COMMIT WORK を使用する方法

この命令は、データベースコミットを開始するだけでなく、他のタスクも実行します (COMMIT WORK に関するキーワード文書を参照)

R/3 システムでの暗黙的なデータベースロールバック

以下の状況が発生すると、暗黙的なデータベースロールバックが行われます。

        アプリケーションプログラムでの実行時エラー

予期せぬ状況 ( ゼロで除算しようとした場合など) が原因でアプリケーションプログラムの強制終了が必要となった場合に、このエラーが発生します。

        強制終了メッセージ

強制終了メッセージは、メッセージタイプ A または X が設定された ABAP 命令 MESSAGE によって生成されます。場合によっては ( 更新) 、メッセージタイプ IWE でも強制終了メッセージが生成されます。このメッセージによって、現在のアプリケーションプログラムが終了します。

R/3 システムでの明示的なデータベースロールバック

ABAP 命令 ROLLBACK WORK を使って、データベースロールバックを明示的にトリガすることができます。この命令は、データベースロールバックを開始するだけでなく、他のタスクも実行します(ROLLBACK WORK に関するキーワード文書を参照)

以上のことから、データベース LUW が開始および終了するポイントをまとめると次のようになります。

データベース LUW が開始されるポイント

        ダイアログステップが開始されるとき ( ダイアログステップがワークプロセスに送信されるとき)

        前のデータベース LUW がデータベースコミットで終了するとき

        前のデータベース LUW がデータベースロールバックで終了するとき

データベース LUW が終了するポイント

        データベースコミットが発生するとき。これによって、すべての変更がデータベースに書き込まれます。

        データベースロールバックが発生するとき。これによって、LUW 内で行われたすべての変更が取り消されます。

データベース LUW とデータベースロック

データベース LUW の構成要素には、その LUW 内で実行されるデータベース変更のほかに、データベースロックもあります。データベースシステムは、ロックを使用して複数のユーザが同じデータを同時に変更できないようにします。そうしないと、矛盾するデータがデータベースに書き込まれるおそれがあります。データベースロックはデータベース LUW が存続する間のみ有効です。データベース LUW が終了すると、データベースロックは自動的に解除されます。SAP LUW をプログラミングするには、R/3 システムに、存続期間の長いロックを登録できるロックメカニズムが必要です (R/3 のロックの概念 を参照)

 

 

 

コンテンツフレーム終了