ホーム > 移行プロセスの概要 > Oracle Application Expressとの重要な違い > ステートレスなWebアプリケーション
前へ |
次へ |
Oracle Application Expressでは、クライアント(Webブラウザ)とデータベースとの間に一定のステートが保持されるのではなく、ステートレスなトランザクションが実行されます。データベース・セッションは、ページのリクエスト時または送信時にのみ利用されます。Oracle Application Expressは、論理的なトランザクション(レコードの更新時など)が開始されてから終了されるまでステートレスであるため、ペシミスティック・ロックではなくオプティミスティック・ロックが使用されることになります。
Oracle FormsおよびMicrosoft Accessでは、ペシミスティック・ロックが使用されるため、ユーザーからレコードの更新がリクエストされると、そのレコードはロックされます。このロックは、そのレコードの処理が完了(コミット)するか、または取り消される(ロール・バック)されるまで保持されます。ステートレスなWebアプリケーションでペシミスティック・ロックが使用されない主な理由の1つは、トランザクションの途中でユーザーがWebブラウザを閉じるか、接続が失われた場合、そのレコードがロックされたままになるためです。
「アプリケーションの作成」ウィザードまたは「ページの作成」ウィザードでフォーム・ページを生成すると、行の自動フェッチと行の自動処理のプロセスが生成されます。これには、オプティミスティック・ロックを施行するMD5チェックサムの検証が組み込まれています。レコードが更新または削除されてデータベースに送られる前に、最初に作成されたMD5と現在のデータベース・レコードのMD5の値が比較されて、両者が同一であることが確認されます。これらが異なる場合は、そのデータベース・レコードは問い合されてから更新されており、ユーザーにエラーが表示されます。
HTMLアプリケーションの1つの特徴は、ユーザーがページと対話するときに、表示されるページが、検証やフィールドの表示、非表示などのアクションを実行しないことです。検証は、ユーザーがページを処理するために送信したときに実行されます。ただし、このデフォルトの動作は、JavaScriptおよびAJAXを利用して変更することができます。ページのロードに必要な時間は、転送速度と、そのWebブラウザのページ表示速度の影響を受けます。そのため、クライアント側の対話性をすべてHTMLアプリケーションに複製することはお薦めしません。ページの重さ(サイズ)とそのページのパフォーマンスは相反するからです。クライアント側のアクションはクリティカルなもののみを実装することをお薦めします。