使用 Sybase 配置全局协调

配置您的 IBM® App Connect Enterprise 环境,以便在队列管理器的控制下,全局协调消息流事务与 Sybase 数据库中的更新操作。

准备工作

在分布式系统中,与集成节点关联的 IBM MQ 队列管理器承担事务管理器的角色,这意味着 IBM App Connect Enterprise 在处理消息时需要访问 IBM MQ。 有关在 IBM App Connect Enterprise 上使用 IBM MQ 的更多信息,请参阅 《安装 IBM MQ 》。

关于此任务

若要配置您的 IBM App Connect Enterprise 环境以实现全局协调,请使用 IBM MQ 队列管理器作为事务管理器,并配合 DataDirect 驱动程序:

过程

  1. 运行 mqsimanagexalinks 命令。
  2. 针对队列管理器将进行全局协调的每笔事务中所涉及的数据库,请使用 XA 资源管理器信息配置集成节点的队列管理器。

    Linux 平台Linux®UNIX上:

    1. 在文本编辑器中打开队列管理器的 qm.ini 文件。
      qm.ini 文件位于 /var/mqm/qmgrs/queue_manager_name/qm.ini,其中 queue_manager_name 是与队列管理器相关联的集成节点的名称。
    2. qm.ini 文件末尾,粘贴以下节:
      XAResourceManager:
          Name=SYBASEXA
          SwitchFile=UKasedtc95.so
          XAOpenString=-NSYBASEDB -AMyServerName,MyPortNumber -Uuid -Ppwd -K2
          XACloseString=
          ThreadOfControl=THREAD
      
    3. XAOpenString 行上,将以下值替换为适合于您的配置的值:
      • MyServerName 是托管 Sybase ASE 服务器的 TCP/IP 主机名。
      • MyPortNumber 是 Sybase ASE 服务器正在侦听的 TCP/IP 端口。
      • uid 必须是集成节点用于连接到数据库的用户名。
        您可以采用多种方式定义集成节点使用的用户名;请确保在此文件中指定正确的名称。 集成节点将按列出的顺序检查下列条件来确定用户名:
        1. 您通过运行 mqsisetdbparms 命令定义的此数据源名称 (DSN) 的特定用户名和密码。
        2. 通过运行 mqsisetdbparms 命令定义的所有 DSN 的缺省用户名和密码。
        3. 使用 mqsicreatebroker 命令上的 -i 参数定义的集成节点服务用户名
      • pwd 是与用户名相关联的密码。
    4. 在该节中的所有其他行保留缺省值。
      例如:
      • AIX®上:
        XAResourceManager:
            Name=SYBASEXA
            SwitchFile=UKasedtc95.so
            XAOpenString=-NSYBASEDB -Adiaz,4100 -Uwbrkuid -Pwbrkpw -K2
            XACloseString=
            ThreadOfControl=THREAD
        
    Windows 平台Windows上:
    1. “开始 ”菜单中,打开 IBM MQ 资源管理器。
    2. 打开“属性”对话框,然后打开 XA 资源管理器
    3. SwitchFile 字段中,输入交换机文件的名称 ukase95.dll
    4. XAOpenString 字段中,粘贴以下字符串:
      -NSYBASEDB -AMyServerName,MyPortNumber -WWinsock -Uuid -Ppwd -K2
    5. XAOpenString 字段中,将值替换为适合于您的配置的值:
      • install_dirIBM App Connect Enterprise 的安装路径。
      • MyServerName 是托管 Sybase ASE 服务器的 TCP/IP 主机名。
      • MyPortNumber 是 Sybase ASE 服务器正在侦听的 TCP/IP 端口。
      • uid 必须是集成节点用于连接到数据库的用户名。
        您可以采用多种方式定义集成节点使用的用户名;请确保在此文件中指定正确的名称。 集成节点将按列出的顺序检查下列条件来确定用户名:
        1. 您通过运行 mqsisetdbparms 命令定义的此数据源名称 (DSN) 的特定用户名和密码。
        2. 通过运行 mqsisetdbparms 命令定义的所有 DSN 的缺省用户名和密码。
        3. 使用 mqsicreatebroker 命令上的 -i 参数定义的集成节点服务用户名
      • pwd 是与用户名相关联的密码。
      例如:
      -NSYBASEDB -Adiaz,4100 -WWinsock -Uwbrkuid -Pwbrkpw -K2
    6. 该页上的所有其他字段保留缺省值。
  3. Sybase 交换文件由 IBM App Connect Enterprise 提供,并使用静态 XA 注册(参见 《配置数据库以实现事务的全局协调 》)。
  4. Linux 平台UNIX 平台停止然后重新启动队列管理器以应用更改,因为在队列管理器运行时, qm.ini 是只读的。 在重新启动队列管理器之前,请确保已导出 ODBCINIODBCSYSINI 环境变量,并且队列管理器进程将使用的用户标识具有对 odbc.iniodbcinst.ini 文件的读访问权。
    要停止并重新启动队列管理器,请输入下列命令,其中 queue_manager_name 是队列管理器的名称:
    endmqm queue_manager_name
    strmqm queue_manager_name

    在队列管理器重新启动之后,请检查队列管理器日志,以查找所有与重新启动相关的警告。 日志文件位于 /var/mqm/qmgrs/queue_manager_name/errors 中,其中 queue_manager_name 是已重新启动的队列管理器的名称。

    当队列管理器成功重新启动时,将应用对 qm.ini 所作的更改。
  5. Windows 平台停止然后重新启动队列管理器以应用更改。
    要停止并重新启动队列管理器,请输入下列命令,其中 queue_manager_name 是队列管理器的名称:
    endmqm queue_manager_name
    strmqm -si queue_manager_name

    在队列管理器重新启动之后,请检查队列管理器日志,以查找所有与重新启动相关的警告。 日志文件位于 install_dir \WebSphere MQ\Qmgrs\QMGR\errors目录下,其中 install_dir 是集成节点的安装路径 ,QMGR 是您的 IBM MQ 队列管理器的名称。

    在队列管理器成功重新启动之后,您所作的更改将生效。

结果

现在已为使用队列管理器协调事务的全局协调配置了 Sybase。

后续操作

您可以将全局协调的消息流部署到集成节点。