2012-12-13 53 views
0

我有針對性地集羣與兩個WebLogic託管服務器數據源,即239.112.112.47:8001和239.112.112.48:9001Weblogic的數據源問題

數據源有設置爲15

連接池deafult最大容量

因此,我預計總共有15 * 2 = 30個連接。

但是,我的客戶端代碼在單個服務器(239.112.112.47:8001)上只能獲得15個連接,而在我的羣集的兩臺服務器上只能獲得15個連接。

下面是我的代碼:

public static void main(String ar[])throws Exception 
{ 
InitialContext ic=null; 
try{ 
Hashtable env = new Hashtable(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY); 
env.put(Context.PROVIDER_URL, 239.112.112.47:8001); 
ic = new InitialContext(env); 
} 
catch(Exception e){ 
System.out.println("\n\n\t Unable To Get The InitialContext => "+e); 
} 
Connection con[]=new Connection[100]; 
try{ 

for(int i=0;i<100;i++) 
{ 
    DataSource ds=(DataSource)ic.lookup("MyDS"); //Enter your DataSource or MultidataSource JNDI name Here 
    con[i]=ds.getConnection(); 
    System.out.println("\n\n\t GOT CONNECTION con["+i+"]: "+con[i]); 
    Thread.sleep(1000); 
} 
+0

您的意思是說,您的所有客戶端請求都通過相同的受管服務器?在這種情況下,15個連接的最大數量對我來說似乎可以,您的問題不在於數據源,而是在集羣設置中。是的,您的假設是正確的,默認的最大容量是應用於羣集中每臺服務器的設置。 – Viccari

+0

是的,所有的客戶端請求都會轉到單個服務器,即239.112.112.47:8001。我如何獲得30個JDBC連接?我已經設置了所有默認設置的集羣,即我沒有做任何明確的更改。 – shifahim

+0

你需要弄清楚爲什麼你的請求被重定向到一臺服務器。一旦你能夠平衡他們到兩個託管服務器,你的連接數量可能會達到每個服務器15。您的數據源設置似乎沒問題。在我看來,你的問題與平衡處理客戶端請求(在集羣上)而不是數據源本身有關。 – Viccari

回答

1

這聽起來像你有這些問題之一:

  1. 你的數據源被定位而不是集羣
  2. 你的集羣有一個管理服務器一個成員而不是兩個受管服務器
  3. 您的負載均衡器正在將流量引導到羣集內的單個節點