为使用 DB2 数据库的应用程序配置客户机重新路由

可使用客户机重新路由功能部件来配置企业应用程序,以便 DB2® 数据库从通信损失恢复,并且应用程序可在干扰降至最低的情况下继续工作。重新路由是持续运行支持的核心,但仅当具有已对应用程序服务器连接标识的备用位置时,重新路由才可行。

开始之前

此任务假定:

  • 应用程序连接至的 DB2 数据源正在运行:
    • DB2 for z/OS® V10.1 或更高版本,或者
    • DB2 Database for Linux, UNIX, and Windows V9.7 或更高版本
  • 您已对 DB2 数据库配置冗余设置或将 DB2 服务器故障转移至备用节点的功能。

关于此任务

可对 DB2 使用客户机重新路由以提供有关备用服务器的信息,以防与主数据库服务器的连接失败。

如果客户端没有任何配置,那么 DB2 的 Java™ 通用连接 (JCC) Java 数据库连接 (JDBC) 驱动程序支持客户机重新路由功能,只要已在 DB2 服务器上启用此驱动程序,并且此驱动程序建立与 DB2 服务器的初始连接。如果 JCC JDBC 驱动程序连接至具有已配置的一个或多个备用服务器的 DB2 服务器,那么主服务器会将有关备用服务器的信息发送至 JCC JDBC 驱动程序。如果与主服务器的连接失败,那么 JCC JDBC 驱动程序能够将连接重新路由至备用服务器。但是,如果应用程序服务器进程崩溃,那么备用服务器信息丢失,并且客户机需要再次连接至主服务器。如果客户机无法进行与主服务器的初始连接,那么客户机不知道备用服务器并且无法重新路由。

要解决此问题,您可使用 clientRerouteAlternateServerNameclientRerouteAlternatePortNumber 数据源属性对应用程序服务器中的 DB2 数据源配置备用服务器的名称和端口,以支持客户机重新路由,即使进行初始连接尝试时也是如此。如果 JCC JDBC 驱动程序无法连接至主 DB2 服务器,但客户机重新路由所需的信息已存在,那么 JCC JDBC 驱动程序可将连接重新路由至备用服务器。

如果连接已重新路由并且 JCC JDBC 驱动程序已连接至备用 DB2 服务器,那么备用服务器将有关它自己的备用服务器的信息发送至 JCC JDBC 驱动程序。于是 JCC JDBC 驱动程序具有在备用 DB2 服务器不可用时再次重新路由连接所需的信息。现在,最初作为备用服务器的服务器将作为主服务器,并且建立新的备用服务器。但是,JCC JDBC 驱动程序不再保留主服务器和备用服务器的这一新状态。如果应用程序服务器失效并且已重新启动,那么 JCC JDBC 驱动程序必须从原始服务器配置启动,并尝试连接至最初被视为主服务器的服务器。

可以在下列 DB2 可配置环境中使用自动的客户机重新路由功能:

过程

  1. server.xml 文件中使用以下属性定义 DB2 数据源:
    • clientRerouteAlternateServerName
      • 有效值类型:
        • 域名;例如,www.ibm.com
        • IP 地址(IPv4 和 IPv6);例如:23.72.11.219
      • 多值格式:
        • 用逗号分隔;例如:host1, host2, host3
        • 用空格分隔;例如,host1 host2 host3
      • 顺序意义:
        • 所提供主机名的顺序是 JCC JDBC 驱动程序尝试查找下一个要连接至的可用服务器时使用的顺序。
    • clientRerouteAlternatePortNumber
      • 有效值类型:
        • 表示端口号的整数;例如:50000
      • 多值格式:
        • 用逗号分隔;例如:port1, port2, port3
        • 用空格分隔;例如,port1 port2 port3
      • 顺序意义:
        • 所提供端口的顺序必须与其关联服务器的顺序匹配。
  2. (可选)可添加下列属性中的一个或全部:
    • retryIntervalForClientReroute

      此属性定义 JCC JDBC 驱动程序在每次尝试建立连接之间等待的秒数。

      如果未分配值,那么使用缺省行为。要了解更多,请参阅 JDBC 和 SQL 支持

    • maxRetriesForClientReroute

      此属性定义 JCC JDBC 驱动程序重试多少次与服务器的连接才决定移至下一个服务器。仅当设置 RetryIntervalForClientReroute 属性后,才会使用此属性。

      如果未分配值,那么使用缺省行为。要了解更多,请参阅 JDBC 和 SQL 支持

示例

<dataSource id="DefaultDataSource"jndiName="jdbc/db2">
     <properties.db2.jcc 
        databaseName="sampleDatabase"
        driverType="4" 
        serverName="host"
        portNumber="50000" 
        clientRerouteAlternateServerName="host01, host02, host03"
        clientRerouteAlternatePortNumber="50000, 50005, 50000"
        retryIntervalForClientReroute="2"
        maxRetriesForClientReroute="3" />
 ...
</dataSource>
注: 确保对端口和主机指定了相同数目的条目数。否则,系统将显示警告,并且不会启用客户机重新路由功能。

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_reroute_db2
文件名:twlp_config_reroute_db2.html