Python 包 IBM_DB 连接与 enableAlternateServerListFirstConnect 和 alternateserverlist 参数
Python package IBM_DB connection with enableAlternateServerListFirstConnect and alternateserverlist parameters
我需要使用 IBM_DB 包为 python 应用程序在 Linux 服务器上托管的 DB2 数据库启用 failover/secondary 数据库。
使用JDBC驱动程序,您可以轻松地将以下参数添加到连接字符串中:
clientRerouteAlternatePortNumber=port#
clientRerouteAlternateServerName=servername
enableSeamlessFailover=1
由于 IBM_DB 包使用 CLI 驱动程序,这些参数不会相同。我通过IBM的文档找到了如下参数,分别是:
https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.apdv.embed.doc/doc/c0060428.html
enableAlternateServerListFirstConnect
alternateserverlist
maxAcrRetries
然而,通过下面link中如何包含它的说明,似乎只能将它们包含在这个数据库文件中:db2dsdriver.cfg
我知道很多这些参数都可以在连接字符串中配置,我想知道是否可以在连接字符串中包含这些特定参数。有没有 documentation/verification 这样的东西可以工作:
import ibm_db_dbi
connect = ibm_db_dbi.connect("DATABASE=whatever; \
HOSTNAME=whatever; \
PORT=whatever; \
PROTOCOL=TCPIP; \
UID=whatever; \
PWD=whatever; \
CURRENTSCHEMA=whatever;\
AUTHENTICATION=SERVER_ENCRYPT;\
ClientEncAlg=2;\
enableAlternateServerListFirstConnect=True;\
alternateserverlist=server1,port1,server2,port2;\
maxAcrRetries=2", "", "")
感谢您的帮助。
这是一个有用的页面 one。
请注意 keywords/parameters 在 jdbc/sqlj 和 CLI 之间的不同名称。
想法是,如果使用 CLI 驱动程序正确配置了 Db2-LUW 实例,则 CLI 驱动程序将自动从 Db2-LUW 实例获取 ACR 的详细信息,并将应用有用的默认值。因此,您可能不需要在连接字符串中添加更多关键字,除非进行调整。
CLI 的 HA 相关关键字参数如下:
acrRetryInterval
alternateserverlist
detectReadonlyTxn
enableAcr
enableAlternateGroupSeamlessACR
enableAlternateServerListFirstConnect
enableSeamlessAcr
maxAcrRetries
更多详细信息here。请注意,如果 enableACR=true
(默认值),则 enableSeamlessAcr=true
(也是默认值)。
虽然文档提到 db2dsdriver.cfg
大多数 CLI parameter/keywords 也可以在连接字符串中设置,除非特别排除。所以做你的测试来验证。
我需要使用 IBM_DB 包为 python 应用程序在 Linux 服务器上托管的 DB2 数据库启用 failover/secondary 数据库。
使用JDBC驱动程序,您可以轻松地将以下参数添加到连接字符串中:
clientRerouteAlternatePortNumber=port#
clientRerouteAlternateServerName=servername
enableSeamlessFailover=1
由于 IBM_DB 包使用 CLI 驱动程序,这些参数不会相同。我通过IBM的文档找到了如下参数,分别是: https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.apdv.embed.doc/doc/c0060428.html
enableAlternateServerListFirstConnect
alternateserverlist
maxAcrRetries
然而,通过下面link中如何包含它的说明,似乎只能将它们包含在这个数据库文件中:db2dsdriver.cfg
我知道很多这些参数都可以在连接字符串中配置,我想知道是否可以在连接字符串中包含这些特定参数。有没有 documentation/verification 这样的东西可以工作:
import ibm_db_dbi
connect = ibm_db_dbi.connect("DATABASE=whatever; \
HOSTNAME=whatever; \
PORT=whatever; \
PROTOCOL=TCPIP; \
UID=whatever; \
PWD=whatever; \
CURRENTSCHEMA=whatever;\
AUTHENTICATION=SERVER_ENCRYPT;\
ClientEncAlg=2;\
enableAlternateServerListFirstConnect=True;\
alternateserverlist=server1,port1,server2,port2;\
maxAcrRetries=2", "", "")
感谢您的帮助。
这是一个有用的页面 one。
请注意 keywords/parameters 在 jdbc/sqlj 和 CLI 之间的不同名称。
想法是,如果使用 CLI 驱动程序正确配置了 Db2-LUW 实例,则 CLI 驱动程序将自动从 Db2-LUW 实例获取 ACR 的详细信息,并将应用有用的默认值。因此,您可能不需要在连接字符串中添加更多关键字,除非进行调整。
CLI 的 HA 相关关键字参数如下:
acrRetryInterval
alternateserverlist
detectReadonlyTxn
enableAcr
enableAlternateGroupSeamlessACR
enableAlternateServerListFirstConnect
enableSeamlessAcr
maxAcrRetries
更多详细信息here。请注意,如果 enableACR=true
(默认值),则 enableSeamlessAcr=true
(也是默认值)。
虽然文档提到 db2dsdriver.cfg
大多数 CLI parameter/keywords 也可以在连接字符串中设置,除非特别排除。所以做你的测试来验证。