2014-01-13 54 views
0

我們使用下面的代碼來獲得轉換,但是上一次在生產環境中需要太多的時間(一段時間超過10分鐘),我們將有多個服務請求來到相同的服務。有人可以提供這種行爲的可能原因。開放trasesactionn的高響應時間

final DefaultTransactionDefinition def = new DefaultTransactionDefinition(); 
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); 
transStatus = txManager.getTransaction(def); 

txManager是DataSourceTransactionManager類型,我們正在使用DB2數據庫和WebSphere服務器6.1。

+0

你檢查了連接池的大小,結果是什麼? –

+0

最大連接數爲50,應該足以處理負載,因爲我們有另一個JVM,並且在那裏工作的計數相同。 – Raj

回答

0

您使用的是連接池嗎?根據javadoc,此事務管理器需要一個。

您可能會遇到連接池生產中的最大限制,請嘗試增加它。

+0

是的,我們正在使用連接池。然而,最大連接數是50,應該足以處理負載,因爲我們有另一個JVM,並且在那裏工作得很好。 – Raj

+0

您是否與數據庫管理員一起檢查是否有多個連接正在打開?如果他們看到50個來自運行JVM的地方,那麼您將知道達到了限制,這意味着要麼同時發出的請求或連接泄漏太多。請在此處介紹DB2 DBA和Websphere管理員必須對此進行的說明,以及任何堆棧跟蹤有(如果太長時間將它們發佈到pastebin上),現在有太多litle信息能夠看到發生了什麼。是否有可用的連接到該機器的分析工具,如visualvm? –