0

Java JDBC ベースのトランザクション (200 ユーザー ベースの Java Web アプリケーション) で次のシナリオがあります。

次のアプローチが正しいかどうかアドバイスしてください。

  1. メイントランザクションを開く ---
  2. 値の結果
  3. 上記の値に基づいて、挿入または更新が発生する必要があります (この挿入は、メイン トランザクションの失敗に関係なく持続する必要があります)
  4. だから私はアトミックトランザクションを開きます(値を実行してコミットするための新しい接続とトランザクション)
  5. 接続を閉じる
  6. 失敗した場合は、手順 5-1 をロールバックします。
  7. 成功した場合は、メイン トランザクションを続行します
  8. 障害が発生した場合、子は既にコミットされているため、メインのみをロールバックし、子はロールバックしません。

私のアプローチに関連するパフォーマンスやその他の問題について心配しています。

4

1 に答える 1

0

トランザクションのパフォーマンスは多くの要因に依存し、すべてのステップをどのように開発するかに完全に関連していると思います。

たとえば、接続プールを使用するかどうか、PreparedStatement を使用するかどうか、ストアド プロシージャを使用するかどうかなどによって違いが生じます。

それがあなたにとってうまくいく方法であれば、あなたのアプローチの順序は正しいようです:)

プールや準備済みステートメントなどを使用する場合、DB 関連の問題が役立つかどうかを評価できます。

アプリケーションを最適化する必要がある場合は、プロファイラーを使用できます。プロファイラーに関連する記事がいくつかあります。

https://stackoverflow.com/questions/9101680/free-profiler-for-java

よろしく。

于 2013-12-04T22:30:15.833 に答える