gpt4 book ai didi

java - 如何通过websphere ORB调用获取数据库连接?

转载 作者:行者123 更新时间:2023-12-01 15:12:20 26 4
gpt4 key购买 nike

我有一个 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应用服务器会照顾呢?由于上面使用的端口 2809 或返回数据库连接的目标服务器,只有 server1

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

    如果我理解错误,请帮忙解释并纠正我!

谢谢

最佳答案

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

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

查找是在您连接的服务器上完成的。 local_db 代表该服务器上的数据源(及其连接池)。您将使用 server1(当您连接到该 NS 时),并将从该服务器上托管的数据源获取连接。

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

HTH

关于java - 如何通过websphere ORB调用获取数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12162468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com