Java Web应用程序获取无法创建PoolableConnectionFactory DB2 SQL错误:SQLCODE = -1776用于在DB2上配置的HADR

时间:2013-08-23 20:32:52

标签: servlets db2 jndi

我开发了一个Web应用程序,其中我在Apache tomcat服务器的server.xml中使用适当的参数配置了两个<Resource>,使用JNDI连接池。在server.xml中的两个资源标记中,第一个标记包含主服务器的详细信息,另一个标记包含备用服务器的详细信息。我的想法是,如果我在一段时间内没有从主服务器获得连接,我会将数据源切换到备用数据库并从servlet运行查询。但是当我运行代码时,它给了我错误Cannot create PoolableConnectionFactory (DB2 SQL Error: SQLCODE=-1776, SQLSTATE= , SQLERRMC=1, DRIVER=3.57.82)

我google了很多但是无法找到任何具体的答案,但有一点在DB2服务器的HADR(Hisgh Availability Disaster Recovery)配置中很常见。 请帮帮我。

2 个答案:

答案 0 :(得分:1)

一般来说,除非在接管后承担主要角色,否则无法连接到备用数据库。

设置DB2 HADR集群的正确方法是在集群管理软件中配置一个虚拟IP地址,该地址在接管后分配给新的主数据库;而对于客户端应用程序,更改仍然完全透明。

您需要与DBA联系,以了解如何配置应用程序。

答案 1 :(得分:0)

在HADR配置中,每次数据库从主数据库翻转到备用数据库,备用数据库转换为主数据库时,服务器将向连接到DB2服务器的每个客户端发送ClientReroute异常,因此我已经以程序方式捕获它并再次尝试事务它成功了。