2012-12-13 52 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. 您的负载均衡器正在将流量引导到群集内的单个节点