1

私は少し理論的な質問があります。データベースアクセスのWebアプリケーションとデスクトップアプリケーションの違い

Webアプリケーションを作成する場合、データベースへの作業接続とアクティブ接続を持つデスクトップアプリケーションとの違いがあります。だから、データベースにもっとデスクトップのようなアクセスを提供することができるいくつかの解決策があるなら、好奇心が強い。クライアント(Webブラウザ)からの非同期要求のトランザクション?

編集: 私は、クライアントからの非同期要求のトランザクション処理が可能であることを理解しました。 Webアプリケーションで提供できるソリューションはありますか?

たとえば、複数の操作で構成されるassynchronou ajax呼び出しがあり、トランザクションとして処理するwanaがあります。すべてが正常であれば、操作はすべて完了します。しかし、いずれかが失敗した場合は、ロールバックしてください。 DBのように。出来ますか?

edit2:おそらく間違っていて、問題はajaxについてではなく、ウェブアプリケーション全体についてですが、Webクライアントからの非同期リクエストを作成する方法があるとは思われません。

+0

これらはまったく同じように動作します。つまり、正確に言えば。完全に。非同期のものでさえ。あなたのコントローラメソッドは、タスクを返すことができ、asyncはすべてを待っています。 – Will

+0

@Will申し訳ありませんが、わからないことがあります。デスクトップアプリケーションを作成すると、データベースへの接続が正常に行われる可能性が高くなります。遅延が少なく、ウェブアプリケーションのようなインターネットエラーの問題はありません。また、データベースの品質ですか?私はmysqlと例えばmysqlを比較できるかどうかわかりません。 mssql?信頼性では?あなたが私が思うものを知っているなら、そのようなものか何かがあります。 –

+0

あります。そうです。変わりはない。 – Will

答えて

1

トランザクションは、データベースへの継続的な接続が必要です。 Webアプリケーションで動作させるには、アプリケーションがクライアント要求とは無関係に連続して実行できるようにするプラットフォームが必要です。 Javaサーブレットが最適です、PHPはno-noです。だから私はあなたがjavaサーブレットを使用するasume。

javaサーブレットでは、dbトランザクションを作成し、そのトランザクションのIDを作成し、静的変数または提供されたアプリケーション全体のオブジェクトコンテキストに格納することができます。次に、IDをクライアントに返します。

クライアントが別の要求を送信する場合は、IDを送信します。アプリケーションは、idに基づいてトランザクション変数を見つけることができます。 2つの要求の間でアプリケーションが再起動されない限り、トランザクションはまだ存在し、アクティブです。

Webアプリケーションは、ユーザーがアプリケーションを終了するタイミングを知らないため、トランザクションを定期的にチェックし、ユーザーが指定した時間だけロールバックするとロールバックするメカニズムを作成する必要があります。

1

データベースには、誰が認証外に接続しているかについての知識がありません。

関連する問題