2012-08-16 128 views
1

如果我在Tomcat和我的代碼中配置了JNDI資源,我創建了兩個引用相同JNDI資源的DataSource對象,這將創建兩個不同的連接池還是將DataSources共享相同的連接池?如果可能的話,你能否提供支持你答案的資源,我已經搜遍了,找不到任何東西。Tomcat連接池多個數據源

回答

2

他們將使用相同的連接池。

你聲明的是對tomcat聲明的真實連接池的引用,所以在你有2個引用的情況下。

如果您想確保通過在一個數據源上泄漏連接並顯示2個數據源的大小來進行測試。

至於參考一下oracle jndi教程和tomcat文檔配置的連接池。

問候

菲利普M.

+0

我做了一些進一步的研究,我相信這個Oracle文檔最好解釋它:http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/pool.html – 2012-08-16 23:59:02

2

當你說「創建兩個數據源對象」時,你是在實際創建對象還是從JNDI獲取它們?你能發表一段代碼嗎?

如果你通過JNDI得到一個DataSource,它將成爲一個你可以安全使用的Pooled DataSource,它將會是同一個池。如果你真的創造新的對象,那麼它是一個不同的故事。

+0

我沒有代碼,方便,但我使用的是類似於該行的初始上下文讓他們:數據源數據源=(數據源)的InitialContext。查找(DATASOURCE_CONTEXT); – 2012-08-16 23:53:33

+1

您將要檢索,而不是創建DataSource,因此它總是指向DataSource池,您將不會創建新池。 – Robert 2012-08-17 18:57:57