使用 Oracle 为协调的消息流配置数据库

如果您的消息流与 Oracle 数据库进行交互,且您想要根据消息流内其他操作协调用于数据库的更新,请配置代理以管理这些更新。

开始之前:

要执行此任务,必须先完成下列任务:

更新开始本主题描述如何结合 32 位代理、64 位代理,及 WebSphere MQ V5 或 WebSphere MQ V6 使用 Oracle,还描述了您所需的 XAOpenString 参数: 更新结束

结合 WebSphere MQ V5 使用 Oracle 作为事务协调程序

如果要在协同的事务中使用 Oracle:

  1. 确保用于访问数据库并在 XAOpenString 中指定的 Application Programming Reference user ID 具有访问 DBA_PENDING_TRANSACTIONS 视图所必须的 Oracle 特权。 您可以使用以下 Oracle SQLPLUS 命令授予必需的访问权:
    grant select on DBA_PENDING_TRANSACTIONS to <userid>;
  2. 使用 WebSphere Message Broker 提供的 switchfile。 当为 Oracle 添加 XAResourceManager 配置信息时,指定:
    • UKor8dtc20.so 作为 AIX、Solaris 和 Linux(x86 平台) 上的 switchfile。
    • UKor8dtc20.sl 作为 HP-UX 上的 switchfile
    • UKor8dtc20.dll 作为 Windows 上的 switchfile
  3. 创建下列符号链接:
    AIX 上:
    ln –s install_dir/merant/lib/libUKicu20.a /var/mqm/exits/libUKicu20.a
    ln –s $ORACLE_HOME/lib/libclntsh.a /var/mqm/exits/libclntsh.a
    在 Solaris 和 Linux(x86 平台) 上:
    ln –s install_dir/merant/lib/libUKicu20.so /var/mqm/exits/libUKicu20.so
    ln –s $ORACLE_HOME/lib/libclntsh.so /var/mqm/exits/libclntsh.so
    HP-UX 上:
    ln –s install_dir/merant/lib/libUKicu20.sl /var/mqm/exits/libUKicu20.sl
    ln –s $ORACLE_HOME/lib/libclntsh.sl /var/mqm/exits/libclntsh.sl

请参阅为安装的 WebSphere MQ 版本提供的信息:

  • 下列示例说明在 LinuxUNIX 系统上的 qm.ini 文件中的 XAResourceManager 节中必须包含的内容,以及同等 Windows 平台信息:
    • 在 AIX 上: 更新开始
      XAResourceManager:
      Name=OracleXA
      SwitchFile=install_dir/merant/lib/UKor8dtc20.so
      XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
      +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
      XACloseString=
      ThreadOfControl=THREAD
      更新结束
    • HP-UX 上:更新开始
      XAResourceManager:
      Name=OracleXA
      SwitchFile=install_dir/merant/lib/UKor8dtc20.sl
      XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
      +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
      XACloseString=
      ThreadOfControl=THREAD
      更新结束
    • Linux(x86 平台) 上:更新开始
      XAResourceManager:
      Name=OracleXA
      SwitchFile=install_dir/merant/lib/UKor8dtc20.so
      XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
      +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
      XACloseString=
      ThreadOfControl=THREAD
      更新结束
    • 在 Solaris 上: 更新开始
      XAResourceManager:
      Name=OracleXA
      SwitchFile=install_dir/merant/lib/UKor8dtc20.so
      XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
      +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
      XACloseString=
      ThreadOfControl=THREAD
      更新结束
    • 在 Windows 上,在“属性”对话框的“资源”页面上为 WebSphere MQ 队列管理器(可以从 WebSphere MQ 服务访问)设置下列值。此示例假定您已在 C:\WMQI 目录中安装 WebSphere Message Broker更新开始
      SwitchFile:C:\WMQI\BIN\UKor8dtc20.dll
      XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
      +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
      ThreadOfControl:THREAD
      更新结束

结合 WebSphere MQ V6 使用 Oracle 作为事务协调程序

如果要在协同的事务中使用 Oracle:

  1. 确保用于访问数据库并在 XAOpenString 中指定的 Application Programming Reference user ID 具有访问 DBA_PENDING_TRANSACTIONS 视图所必须的 Oracle 特权。 您可以使用以下 Oracle SQLPLUS 命令授予必需的访问权:
    grant select on DBA_PENDING_TRANSACTIONS to <userid>;
  2. 使用 WebSphere Message Broker 提供的 switchfile。 当为 Oracle 添加 XAResourceManager 配置信息时,指定:
    • UKor8dtc20.so 作为 AIX 和 Solaris 上的 switchfile。
    • UKor8dtc20.sl 作为 HP-UX 上的 switchfile。
  3. 指定 Oracle 服务器的主机名、它正在侦听的端口号、Oracle 服务标识(SID)、用于访问数据库的用户名和密码以及将进行协同的数据库名称。
  4. 创建以下符号链接。
    AIX 上:
    ln –s install_dir/merant/lib/libUKicu20.a /var/mqm/exits/libUKicu20.a
    ln –s $ORACLE_HOME/lib/libclntsh.a /var/mqm/exits/libclntsh.aln –s install_dir/DD64/lib/libUKicu20.a /var/mqm/exits64/libUKicu20.a
    更新开始ln –s install_dir/DD64/lib/UKoradtc20.so /var/mqm/exits64/UKor8dtc20.so更新结束
    HP-UX 上:
    ln –s install_dir/merant/lib/libUKicu20.sl /var/mqm/exits/libUKicu20.sl
    ln –s $ORACLE_HOME/lib/libclntsh.sl /var/mqm/exits/libclntsh.slln –s <Your install directory>/DD64/lib/libUKicu20.sl /var/mqm/exits64/libUKicu20.sl
    更新开始ln –s install_dir/DD64/lib/UKoradtc20.sl /var/mqm/exits64/UKor8dtc20.sl更新结束
    更新开始Linux(x86 平台) 上:
    ln –s install_dir/merant/lib/libUKicu20.so /var/mqm/exits/libUKicu20.so
    ln –s $ORACLE_HOME/lib/libclntsh.so /var/mqm/exits/libclntsh.so
    更新结束
    在 Solaris 上:
    ln –s install_dir/merant/lib/libUKicu20.so /var/mqm/exits/libUKicu20.so
    ln –s $ORACLE_HOME/lib/libclntsh.so /var/mqm/exits/libclntsh.soln –s install_dir/DD64/lib/libUKicu20.so /var/mqm/exits64/libUKicu20.so
    更新开始ln –s install_dir/DD64/lib/UKoradtc20.so /var/mqm/exits64/UKor8dtc20.so更新结束

下列示例说明在 UNIX 系统上的 qm.ini 文件中的 XAResourceManager 节中必须包含的内容,以及同等 Windows 平台信息:

  • 在 AIX 上: 更新开始
    XAResourceManager:
    Name=OracleXA
    SwitchFile=UKor8dtc20.so
    XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
    +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
    XACloseString=
    ThreadOfControl=THREAD
    更新结束
  • HP-UX 上:更新开始
    XAResourceManager:
    Name=OracleXA
    SwitchFile=UKor8dtc20.sl
    XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
    +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
    XACloseString=
    ThreadOfControl=THREAD
    更新结束
  • Linux(x86 平台) 上:更新开始
    XAResourceManager:
    Name=OracleXA
    SwitchFile=UKor8dtc20.so
    XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
    +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
    XACloseString=
    ThreadOfControl=THREAD
    更新结束
  • 在 Solaris 上: 更新开始
    XAResourceManager:
    Name=OracleXA
    SwitchFile=UKor8dtc20.so
    XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
    +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
    XACloseString=
    ThreadOfControl=THREAD
    更新结束
  • 在 Windows 上,在“属性”对话框的“资源”页面上为 WebSphere MQ 队列管理器(可以从 WebSphere MQ 服务访问)设置下列值。此示例假定您已在 C:\WMQI 目录中安装 WebSphere Message Broker更新开始
    SwitchFile: UKor8dtc20.dll
    XAOpenString=ORACLE_XA+SQLNET=myserver+HostName=myhostname+PortNumber=myportnumber+Sid=mySID
    +ACC=P/uid/passwd+sestm=100+threads=TRUE+DataSource=mydatasourcename+DB=mydatasourcename+K=2+
    ThreadOfControl:THREAD
    更新结束
更新开始

XAOpenString 参数

此处为您需要在 qm.ini 文件的 XAResourceManager 节中包含的 XAOpenString 参数列表:
DataSource
数据库的 ODBC 数据源名称。
DB
数据库的 ODBC 数据源名称。
HostName
Oracle 数据库所驻留的 TCPIP 主机的名称。
PortNumber
Oracle 数据库正在侦听的 TCPIP 端口。
Sid
数据库的 Oracle 系统标识(SID)。
SQLNET
解析为“Connect Descriptor”的 Oracle“Service name”,例如通过 TSNAMES.ORA 文件中的某个映射进行解析。
相关概念
消息流概述
更新结束
声明 | 商标 | 下载 | | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后更新:2006/05/19
ac00910_