如果您在使用 WebSphere MQ V6 和 XA 协调,或如果您已创建 64 位执行组,则需要配置 64 位 ODBC 数据源名称(DSN)。确保将环境变量 MQSI_LIBPATH64 设置为包括常规
64 位数据库。例如,如果您使用的是 64 位 DB2 实例,请确保将 DB2_instance_directory/sqllib/lib64 添加到库搜索路径环境变量的开头。
XA 协调的数据库必须以 ODBCINI64 节文件显示,这样 WebSphere MQ 可以执行 XA 协调。WebSphere MQ V6 支持 64 位环境。
在 UNIX 环境中没有 ODBC 管理程序或驱动程序管理器。
要配置 ODBC DSN 定义,您必须编辑必需的系统信息,这些信息保存在一个名为 odbc64.ini 的纯文本文件中。
如果您使用的是 Linux(zSeries 平台)或 Linux(POWER 平台),则无需定义 ODBC 连接。而消息流中使用的数据源名称即为数据库的 DB2 别名。
对于 UNIX 平台,将 ODBCINI64 环境变量设置为指向文件,同时指定完整路径和文件名。如果不设置该变量,则路径缺省为
$MQSI_REGISTRY/odbc/odbc64.ini。
必须将 odbc64.ini 文件复制到该目录并将文件所有权设置为 mqm:mqbrkrs。
文件 install_dir/DD64/odbc64.ini 中提供了样本模板,该文件包含了关于如何配置 WebSphere Message Broker 支持的每个数据库中驻留的
DSN 的示例。下面显示受支持平台的示例部分。示例显示了受支持数据库的建议配置。
您必须配置为匹配本地需求的各部分中的条目以斜体字显示(这些条目的描述在 编辑 odbc64.ini 参数中提供)。必须保留所有显示的条目,但如果配置不需要某个节,您可以除去整个节(例如,如果您使用 Oracle 数据库,则可除去用于 DB2 和 Sybase 显示的各个节)。
为缺省文件创建一个副本,将 ODBCINI64 设置为指向该副本,并对创建的副本而不是缺省文件做出任何更改。
确保已设置适当的库搜索路径环境变量(例如,在 Solaris 上是 LD_LIBRARY_PATH),以反映要使用的数据库产品。请参阅数据库产品文档以了解更多详细信息。
在 AIX 上,如果要将 DB2 用作数据库,则单个进程允许最多 10 个连接使用共享内存。这表示如果您同时部署多于一个或两个的消息流,则可能会看到以 DB2 错误消息 SQL1224N 表示的连接失败。这些连接错误会在代理的执行组的系统日志中报告。要避免该问题,可使用 TCP/IP 方式连接 DB2。有关如何执行该操作的详细指示信息,请参阅连接 DB2 时,系统报告 DB2 错误消息 SQL1224N。
以下是 odbc64.ini 信息样本:
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 64bit Oracle Wire Protocol SYBASEDB=DataDirect 5.0 64bit Sybase Wire Protocol SQLSERVERDB=DataDirect 5.0 64bit SQL Server Wire Protocol
[WBRKBKDB] Driver=libdb2Wrapper64.so Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=libdb2Wrapper64.so Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your install directory>/DD64/lib/UKora20.so
Description=DataDirect 5.0 Oracle Wire Protocol
HostName=<Your Oracle Server Machine Name>
PortNumber=<Port on which Oracle is listening on HostName>
SID=<Your Oracle SID>
CatalogOptions=0
EnableStaticCursorsForLongData=0
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
ProcedureRetResults=1
[SYBASEDB]
Driver=<Your install directory>/DD64lib/UKase20.so
Description=DataDirect 5.0 Sybase Wire Protocol
Database=<Your Database Name>
ApplicationsUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=<YourServerName>,<YourPortNumber>
SelectUserName=1
[SQLSERVERDB] Driver=<Your install directory>/DD64/lib/UKmsss20.so Description=DataDirect 5.0 SQL Server Wire Protocol Address=<Your SQLServer host>,<your SQLServer server port> AnsiNPW=Yes Database=<Your Database Name> QuoteId=No
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your install directory>/DD64/lib/odbctrac.so
InstallDir=<Your install directory>/DD64
UseCursorLib=0
IANAAppCodePage=4UNICODE=UTF-8
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 64bit Oracle Wire Protocol SYBASEDB=DataDirect 5.0 64bit Sybase Wire Protocol SQLSERVERDB=DataDirect 5.0 64bit SQL Server Wire Protocol
[WBRKBKDB] Driver=libdb2Wrapper64.sl Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=libdb2Wrapper64.sl Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your install directory>/DD64/lib/UKora20.sl
Description=DataDirect 5.0 Oracle Wire Protocol
HostName=<Your Oracle Server Machine Name
PortNumber=<Port on which Oracle is listening on HostName
SID=<Your Oracle SID>
CatalogOptions=0
ProcedureRetResults=1
EnableStaticCursorsForLongData=0
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
[SYBASEDB]
Driver=<Your install directory>/DD64/lib/UKase20.sl
Description=DataDirect 5.0 Sybase Wire Protocol
Database=<Your Database Name>
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=<YourServerName>,<YourPortNumber>
SelectUserName=1
[SQLSERVERDB] Driver=<Your install directory>/DD64/lib/UKmsss20.sl Description=DataDirect 5.0 SQL Server Wire Protocol Address=<Your SQLServer host>,<your SQLServer server port> AnsiNPW=Yes Database=<Your Database Name> QuoteId=No
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your install directory>/DD64/lib/odbctrac.sl
InstallDir=<Your install directory>/DD64
UseCursorLib=0
IANAAppCodePage=4UNICODE=UTF-8
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 64bit Oracle Wire Protocol SYBASEDB=DataDirect 5.0 64bit Sybase Wire Protocol SQLSERVERDB=DataDirect 5.0 64bit SQL Server Wire Protocol
[WBRKBKDB] Driver=libdb2Wrapper64.so Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=libdb2Wrapper64.so Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your install directory>/DD64/lib/UKor820.so
Description=DataDirect 5.0 Oracle Wire Protocol
HostName=<Your Oracle Server Machine Name
PortNumber=<Port on which Oracle is listening on HostName
SID=<Your Oracle SID>
CatalogOptions=0
ProcedureRetResults=1
EnableStaticCursorsForLongData=0
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
[SYBASEDB]
Driver=<Your install directory>/DD64/lib/UKase20.so
Description=DataDirect 5.0 Sybase Wire Protocol
Database=<Your Database Name>
ServerName=<YourServerName>
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=<YourServerName>,<YourPortNumber>
SelectUserName=1
[SQLSERVERDB] Driver=<Your install directory>/DD64/lib/UKmsss20.so Description=DataDirect 5.0 SQL Server Wire Protocol Address=<Your SQLServer host>,<your SQLServer server port> AnsiNPW=Yes Database=<Your Database Name> QuoteId=No
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your install directory>/DD64/lib/odbctrac.so
InstallDir=<Your install directory>/DD64
UseCursorLib=0
IANAAppCodePage=4
UNICODE=UTF-8
您现已在 UNIX 上配置了 64 位 ODBC 数据源名称。接下来,您必须配置用于发出控制台命令和运行代理配置的环境,这样它就可访问所需的数据库。有关更多信息,请参阅设置环境以访问数据库。