【问题标题】:Weblogic datasource issueWeblogic 数据源问题
【发布时间】:2012-12-13 07:39:33
【问题描述】:

我有一个针对具有两个 weblogic 托管服务器的集群的数据源,即 239.112.112.47:8001 和 239.112.112.48:9001

数据源的默认最大连接池容量设置为 15。

因此,我预计总共有 15*2=30 个连接。

但是,我的客户端代码在单个服务器 (239.112.112.47:8001) 上也仅获得 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);
}

【问题讨论】:

  • 您的意思是您的所有客户端请求都通过同一个托管服务器吗?在这种情况下,15 个连接的最大数量对我来说似乎没问题,您的问题不在于数据源,而在于集群设置。是的,您的假设是正确的,默认最大容量是应用于集群中每个服务器的设置。
  • 是的,所有客户端请求都发送到单个服务器,即 239.112.112.47:8001。我该怎么做才能获得 30 个 JDBC 连接?我已经使用所有默认设置设置了集群,即我没有进行任何明确的更改。
  • 您需要弄清楚为什么您的请求被重定向到单个服务器。一旦您能够将它们平衡到两台托管服务器,您的连接数可能会达到每台服务器 15 个。您的数据源设置似乎没问题。在我看来,您的问题与处理客户端请求(在集群上)的平衡有关,而不是与数据源本身有关。
  • 您确定在客户端代码中即使我们指定了一台服务器,即 env.put(Context.PROVIDER_URL, 239.112.112.47:8001);理想情况下,客户端请求应该将集群发送到两个托管服务器?如果客户端代码不正确,请帮助确定将请求发送到集群中两个服务器的正确代码。
  • 不幸的是,我对 WebLogic 集群没有经验。我建议你对这个主题提出另一个问题。

标签: weblogic datasource


【解决方案1】:

听起来您遇到了以下问题之一:

  1. 您的数据源针对的是单个托管服务器而不是集群
  2. 您的集群只有一个成员,而不是两个托管服务器
  3. 您的负载平衡器将流量引导到集群中的单个节点

【讨论】:

    猜你喜欢
    • 2016-02-22
    • 2018-10-24
    • 2015-02-10
    • 1970-01-01
    • 2016-05-03
    • 2013-07-09
    • 2012-07-17
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多