0

我们有一个似乎非常独特的 DB2/HADR 场景。

我们使用 connect_proc 来监控数据库的登录,并根据有效主机名表反弹连接的主机名。如果主机名在该列表中,则授予并记录访问权限,如果主机名不在该列表中,则返回 20001 错误并显示“ACCESS RESTRICTED”。

我们的问题是连接到数据库:

假设我们的连接字符串是这样的:jdbc:db2://host3:1000/vpcdb:clientRerouteAlternateServername=host3,host2,host1;clientRerouteAlternatePortNumber=1000,1000,100;queryCloseImplicit=2;enableSeamlessFailover=yes;enableClientAffinitiesList=yes;blockingReadConnectionTimeout= 1200;

如果 host1 是主 HADR DB,我们会收到 1776,如果 host3 是主 HADR DB,我们将获得访问权限。

如果使用以下方法禁用触发器: update db cfg using connect_proc NULL@ 访问被授予

已专门使用了多个 DB2 驱动程序:4.14.111 和 4.13.80。这里另一个有趣的事情是,上面的任何一种配置都可以在 Squirrel 中使用触发器激活,但在用作 activemq 或我们任何其他应用程序中的连接器时不起作用。

4

1 回答 1

0

您是否已验证CONNECT_PROC在辅助服务器 (host3) 上也已按预期设置了配置参数?

并非所有对数据库配置的更改都通过 HADR 复制,因此您还需要手动更新备用主机上的配置。

于 2013-01-28T21:38:03.253 回答