在 UNIX 环境中没有 ODBC 管理程序或驱动程序管理器。要配置 ODBC 数据源名称 (DSN) 定义,您必须编辑必需的系统信息,这些信息保存在一个名为 .odbc.ini(请注意,此文件名以句点开头)的纯文本文件中。
将 ODBCINI 环境变量设置为指向该文件,并指定完整路径和文件名。如果不设置该变量,则对 32 位执行组使用缺省路径 $MQSI_REGISTRY/odbc/.odbc.ini(安装 WebSphere Event Broker 时创建它)。该文件必须具有 mqm:mqbrkrs 的文件许可权。
支持的每个数据库中的 DSN 的示例。以文件 <install_dir>/merant/odbc.ini 的形式提供一个样本模板,其中包含如何配置驻留在 WebSphere Event Broker 支持的每个数据库中的 DSN 的示例。以下显示了用于支持的平台的样本模板文件。这些描述说明了对各种支持数据库的建议配置。
在各个节中,用斜体显示那些必须进行配置以与本地要求相匹配的各个条目(这些条目的描述位于ODBC.ini 参数中)。所有显示的条目都必须保留,但在配置不需要的情况下,您可以除去整个节(例如,如果您使用 Oracle 数据库,则可除去对于 DB2 和 Sybase 显示的各个节)。
为缺省文件创建一个副本,将 ODBCINI 设置为指向该副本,并对创建的副本而不是缺省文件做出任何更改。
确保已设置适当的库搜索路径环境变量(在 Solaris 和 Linux(x86 平台)上是 LD_LIBRARY_PATH),以反映出要使用的数据库产品。请参阅数据库产品文档以了解更多详细信息。
如果您使用的是 Linux(zSeries 平台)或 Linux(POWER 平台),则无需定义 ODBC 连接。而消息流中使用的数据源名称即为数据库的 DB2 别名。
如果您使用的是 64 位 DB2 实例,请确保将 <DB2 instance directory>/sqllib/lib32 添加至库搜索路径环境变量的开头。如果使用的是 64 位 Oracle 实例,则确保将 $ORACLE_HOME/lib32 添加到库搜索路径环境变量的开始处。如果使用的是 64 位执行组,则确保将环境变量 MQSI_LIBPATH64 设置为包括常规 64 位数据库。
如果您使用的是 WebSphere MQ V6,请根据您的操作环境参阅《WebSphere MQ 快速入门》一书中『64 位队列管理器的含义』一节。
在 AIX 上,如果要将 DB2 用作数据库,则单个过程允许最多 10 个连接使用共享内存。这表示如果您同时部署多个或两个消息流,则可能遇到表现为 DB2 错误消息 SQL1224N 的连接失败。该连接错误来自代理执行组,报告在系统日志中。要避免该问题,可使用 TCP/IP 方式连接至 DB2。有关如何执行该操作的详细说明,请参阅连接 DB2 时,系统报告 DB2 错误消息 SQL1224N。
以下是 ODBC.ini 信息样本:
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 Oracle SYBASEDB=DataDirect 5.0 Sybase Wire ProtocolSQLSERVERDB
=DataDirect 5.0 SQL Server Wire Protocol
INFORMIXDB
=IBM Informix ODBC Driver
[WBRKBKDB] Driver=/u/db2inst1/sqllib/lib/libdb2.a Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=/u/db2inst1/sqllib/lib/libdb2.a Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB] Driver=<Your installation directory>/merant/lib/UKor820.so Description=DataDirect 5.0 Oracle ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 ProcedureRetResults=1 WorkArounds=536870912
[SYBASEDB] Driver=<Your installation directory>/merant/lib/UKase20.so Description=DataDirect 5.0 Sybase Wire Protocol Database=<Your Database Name> ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 SelectMethod=0 NetworkAddress=<YourServerName,YourPortNumber> SelectUserName=1
[SQLSERVERDB]
Driver=<Your installation directory>/merant/lib/UKmsss20.so
Description=DataDirect 5.0 SQL Server Wire Protocol
Address=<Your SQLServer host>,<your SQLServer post>
AnsiNPW=Yes
Database=<Your Database Name>
QuoteId=No
[INFORMIXDB]
Driver=<Your Informix Client directory>/lib/cli/iclit09b.so
Description=IBM Informix ODBC Driver
ServerName=<Your server name>
Database=<Your Datasource>
[ODBC] Trace=0 TraceFile=<A directory with plenty of free space>/odbctrace.out TraceDll=<Your installation directory>/merant/lib/odbctrac.so InstallDir=<Your installation directory>/merant UseCursorLib=0 IANAAppCodePage=4UNICODE=UTF-8
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 Oracle SYBASEDB=DataDirect 5.0 Sybase Wire ProtocolSQLSERVERDB
=DataDirect 5.0 SQL Server Wire Protocol
INFORMIXDB
=IBM Informix ODBC Driver
[WBRKBKDB] Driver=/u/db2inst1/sqllib/lib/libdb2.sl Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=/u/db2inst1/sqllib/lib/libdb2.sl Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB] Driver=<Your installation directory>/merant/lib/UKor820.sl Description=DataDirect 5.0 Oracle ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 ProcedureRetResults=1 WorkArounds=536870912
[SYBASEDB] Driver=<Your installation directory>/merant/lib/UKase20.sl Description=DataDirect 5.0 Sybase Wire Protocol Database=<Your Database Name> ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 SelectMethod=0 NetworkAddress=<YourServerName,YourPortNumber> SelectUserName=1
[SQLSERVERDB]
Driver=<Your installation directory>/merant/lib/UKmsss20.sl
Description=DataDirect 5.0 SQL Server Wire Protocol
Address=<Your SQLServer host>,<your SQLServer post>
AnsiNPW=Yes
Database=<Your Database Name>
QuoteId=No
[INFORMIXDB]
Driver=<Your Informix Client directory>/lib/cli/iclit09b.sl
Description=IBM Informix ODBC Driver
ServerName=<Your server name>
Database=<Your Datasource>
[ODBC] Trace=0 TraceFile=<A directory with plenty of free space>/odbctrace.out TraceDll=<Your installation directory>/merant/lib/odbctrac.sl InstallDir=<Your installation directory>/merant UseCursorLib=0 IANAAppCodePage=4UNICODE=UTF-8
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 Oracle SYBASEDB=DataDirect 5.0 Sybase Wire ProtocolSQLSERVERDB
=DataDirect 5.0 SQL Server Wire Protocol
INFORMIXDB
=IBM Informix ODBC Driver
[WBRKBKDB] Driver=/u/db2inst1/sqllib/lib/libdb2.so Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=/u/db2inst1/sqllib/lib/libdb2.so Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB] Driver=<Your installation directory>/merant/lib/UKor820.so Description=DataDirect 5.0 Oracle ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 ProcedureRetResults=1 WorkArounds=536870912
[SYBASEDB] Driver=<Your installation directory>/merant/lib/UKase20.so Description=DataDirect 5.0 Sybase Wire Protocol Database=<Your Database Name> ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 SelectMethod=0 NetworkAddress=<YourServerName,YourPortNumber> SelectUserName=1
[SQLSERVERDB]
Driver=<Your installation directory>/merant/lib/UKmsss20.so
Description=DataDirect 5.0 SQL Server Wire Protocol
Address=<Your SQLServer host>,<your SQLServer post>
AnsiNPW=Yes
Database=<Your Database Name>
QuoteId=No
[INFORMIXDB]
Driver=<Your Informix Client directory>/lib/cli/iclit09b.so
Description=IBM Informix ODBC Driver
ServerName=<Your server name>
Database=<Your Datasource>
[ODBC] Trace=0 TraceFile=<A Directory with plenty of free space>/odbctrace.out TraceDll=<Your installation directory>/merant/lib/odbctrac.so InstallDir=<Your installation directory>/merant UseCursorLib=0 IANAAppCodePage=4UNICODE=UTF-8
[ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver MYDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 5.0 Oracle SYBASEDB=DataDirect 5.0 Sybase Wire ProtocolSQLSERVERDB
=DataDirect 5.0 SQL Server Wire Protocol
INFORMIXDB
=IBM Informix ODBC Driver
[WBRKBKDB] Driver=/u/db2inst1/sqllib/lib/libdb2.so Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=/u/db2inst1/sqllib/lib/libdb2.so Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB] Driver=<Your installation directory>/merant/lib/UKor820.so Description=DataDirect 5.0 Oracle ServerName=<YourServerName> EnableDescribeParam=1 ProcedureRetResults=1 OptimizePrepare=1 WorkArounds=536870912
[SYBASEDB] Driver=<Your installation directory>/merant/lib/UKase20.so Description=DataDirect 5.0 Sybase Wire Protocol Database=<Your Database Name> ServerName=<YourServerName> EnableDescribeParam=1 OptimizePrepare=1 SelectMethod=0 NetworkAddress=<YourServerName,YourPortNumber> SelectUserName=1
[SQLSERVERDB] Driver=<Your installation directory>/merant/lib/UKmsss20.so Description=DataDirect 5.0 SQL Server Wire Protocol Address=<Your SQLServer host>,<your SQLServer post> AnsiNPW=Yes Database=<Your Database Name> QuoteId=No
[INFORMIXDB]
Driver=<Your Informix Client directory>/lib/cli/iclit09b.so
Description=IBM Informix ODBC Driver
ServerName=<Your server name>
Database=<Your Datasource>
[ODBC] Trace=0 TraceFile=<A Directory with plenty of free space>/odbctrace.out TraceDll=<Your installation directory>/merant/lib/odbctrac.so InstallDir=<Your installation directory>/merant UseCursorLib=0 IANAAppCodePage=4UNICODE=UTF-8