2013-04-04 58 views
0

我在基於Java JDBC事務(在基於200個用戶的Java Web應用程序中)中有以下情形。我可以在主要交易中打開新的連接嗎?

請諮詢下面的方法是否正確:

  1. 打開一個交易主體---
  2. 結果基於上述值插入或更新應該發生的值
  3. (此插入應該堅持不管主事務失敗
  4. 所以我打開原子事務(一個新的連接和一個事務來執行並提交值)
  5. 關閉連接
  6. 在故障回退的情況下,步驟5-1
  7. 如果成功,與主交易
  8. 如果發生故障回滾僅主,而不是因爲孩子已經犯下的孩子繼續。

我很擔心與我的方法有關的性能和其他問題。

+0

該方法是正確的。你有任何其他問題嗎? – Taylor 2013-12-04 22:03:22

回答

0

我認爲您的交易績效將取決於很多因素,並且與您如何開發每一步完全相關。

實例,它使區別,如果你使用一個連接池或者沒有,或者如果你使用PreparedStatement的或沒有,或者如果你使用存儲過程或沒有,等

你的方法的順序似乎是權利,如果這是你的作品:)

如果DB相關問題幫助,如果您使用的池,預處理語句您可以評估方式等

如果你需要優化你的應用程序,你可以使用一個Profiler,這裏有一些關於Profiler的帖子。

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

問候。

相關問題