Java 如何通过WebSphereORB调用获得数据库连接?
我有一个WebSphere6.1集群环境,它由两个节点组成,每个节点有两个AppServer。让我们调用包括服务器1(2809)和服务器2(2810),Java 如何通过WebSphereORB调用获得数据库连接?,java,jakarta-ee,websphere,websphere-7,websphere-6.1,Java,Jakarta Ee,Websphere,Websphere 7,Websphere 6.1,我有一个WebSphere6.1集群环境,它由两个节点组成,每个节点有两个AppServer。让我们调用包括服务器1(2809)和服务器2(2810),节点B(包括服务器3(2811)和服务器4(2812))。同时,我用JNDIlocal\u db创建了一个集群范围的数据源 现在我想通过上述环境中的WAS ORB调用在java客户机中获得数据库连接。java代码的特定部分如下所示: Hashtable env = new Hashtable(); env.put(
节点B(包括服务器3(2811)和服务器4(2812)
)。同时,我用JNDIlocal\u 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();
提供者的URL
放置两个服务器成员,例如iiop://localhost:2809,localhost:2810
,这是指负载平衡还是故障切换
如果我理解错误,请帮助解释和纠正我
谢谢让我从简单的开始,接着讲剩下的
HTHA
数据源既不可远程访问,也不可序列化。因此,如果从服务器上查找local_db
,它将返回一个javax.naming.Reference
,客户端使用该引用创建一个与服务器上配置相同的新的
实例。这也意味着一旦执行了查找,任何JDBC方法都不会向WebSphere服务器发送请求。感谢您的回复@Manglu,正如您所说,这里没有数据库连接检索的负载平衡。那么对于EJB资源请求呢?如果我要查找EJB资源,那么负载平衡会发生吗?WebSphereWLM似乎可以处理这个问题,但我不确定是否可以。支持WLM的客户机发挥了神奇的作用。Java客户机(和容器)是良好的WLM感知客户机。EJB调用返回的存根包含有关承载EJB的所有服务器的相关信息。当客户端调用EJB时,它使用这些信息为您执行WLM-