【问题标题】:How to get database connection through websphere ORB call?如何通过 websphere ORB 调用获取数据库连接?
【发布时间】:2012-08-28 15:19:15
【问题描述】:

我有一个 websphere 6.1 集群环境,它由两个节点组成,每个节点有 2 个应用服务器。让我们致电 NodeA including Server1(2809) & Server2(2810)NodeB including Server3(2811) & Server4(2812)。同时,我使用 JNDI local_db 创建了一个集群范围的数据源。

现在我想通过上述环境中的 WAS ORB 调用在 java 客户端中获取数据库连接。 Java 代码的具体部分如下所示:

        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
        env.put(Context.PROVIDER_URL,"iiop://localhost:2809");  

        javax.sql.DataSource ds = (DataSource)initialContext.lookup("local_db");

        Connection cn = ds.getConnection();
  1. 如果上面的java客户端代码运行起来,数据库连接检索请求是否会在所有应用服务器的四个连接池中遵循负载均衡规则?

  2. 另外,如果我的java客户端成功获得一个数据库连接,然后运行一个很大的SQL查询,结果返回很大,至于内存空间占用,哪个WAS应用服务器会处理?只有server1是因为上面使用了2809端口还是返回数据库连接的目标服务器?

  3. 顺便说一句,如果我为那个PROVIDER_URL 设置两个服务器成员,例如iiop://localhost:2809, localhost:2810,这意味着负载平衡还是故障转移?

    如果我理解有误,请帮助解释并纠正我!

谢谢

【问题讨论】:

    标签: java jakarta-ee websphere websphere-7 websphere-6.1


    【解决方案1】:

    让我从简单的开始,然后继续其余的

    1. 拥有两个提供者 URL 意味着故障转移。如果您无法连接到第一个命名服务器,它将连接到第二个命名服务器并一直持续到该列表的末尾。请注意,故障转移是用于连接到命名服务器(而不是连接到资源本身)

    查找是在您连接的服务器上完成的。 local_db 代表该服务器上的数据源(及其连接池)。您将与 server1 一起工作(当您连接到该 NS 时)并将从该服务器上托管的数据源获得连接。

    您将永远无法从其他服务器获得任何连接。换句话说,没有负载平衡(一个请求使用来自服务器 1 的连接,另一个使用来自服务器 2 的连接等)。我相信这就是您在上面的问题中所说的负载平衡的意思。

    HTH

    【讨论】:

    • 感谢您的回复@Manglu 正如您所说,这里没有用于数据库连接检索的负载平衡。那么对于 EJB 资源请求呢?如果我要查找那个 EJB 资源,那么负载平衡会发生吗?似乎 websphere WLM 会处理这个问题,但我不确定。
    • WLM 感知客户端发挥了神奇的作用。 Java 客户端(和容器)是良好的 WLM 感知客户端。 EJB 调用返回的存根包含有关托管 EJB 的所有服务器的相关信息。当客户端调用 EJB 时,它使用该信息为您执行 WLM。
    • 看看这篇文章可以更好地理解 EJB 调用在 WebSphere 环境中是如何工作的 - ibm.com/developerworks/websphere/techjournal/0807_pape/…
    【解决方案2】:

    DataSource 既不是远程的也不是可序列化的。因此,如果您从服务器查找local_db,它将返回一个javax.naming.Reference,客户端使用该DataSource 实例创建一个与服务器上的配置相同的 DataSource 实例。这也意味着一旦执行了查找,任何 JDBC 方法都不会向 WebSphere 服务器发送请求。

    【讨论】:

      猜你喜欢
      • 2010-10-23
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2021-05-13
      • 2016-09-20
      • 1970-01-01
      相关资源
      最近更新 更多