在 Linux 和 UNIX 环境中没有 ODBC 管理程序或驱动程序管理器。要为 DataDirect 配置 ODBC 数据源名称(DSN)定义,必须编辑必需的系统信息,该信息保存在名为 .odbc.ini 的明文文件中(注意,该文件的名称以句号开头)。
将 ODBCINI 环境变量设置为指向该文件,并指定完整路径和文件名。如果不设置该变量,对于 32 位执行组,则路径默认为 $MQSI_REGISTRY/odbc/.odbc.ini,在安装
WebSphere Message Broker 时会创建此路径。该文件必须具有
mqm:mqbrkrs 的文件许可权。
样本模板是在文件
install_dir/merant/odbc.ini 中提供的,该文件包含关于如何配置 WebSphere Message Broker 支持的每个数据库中保存的 DSN 的示例。
在下面显示了受支持平台的示例各节。示例显示了受支持数据库的建议配置。
您必须配置为匹配本地需求的各节中的条目以斜体字显示(这些条目的描述在 编辑 .odbc.ini 参数中提供)。必须保留所有显示的条目,但如果配置不需要某个节,您可以除去整个节(例如,如果您使用 Oracle 数据库,则可除去用于 DB2 和 Sybase 显示的各个节)。
确保已设置适当的库搜索路径环境变量,以反映出要使用的数据库产品。例如,该变量在 Solaris 和 Linux(x86 平台) 上为 LD_LIBRARY_PATH。
请参阅数据库产品文档以了解更多详细信息。
如果您使用的是 Linux(zSeries 平台)或 Linux(POWER 平台),则无需定义 ODBC 连接。而消息流中使用的数据源名称即为数据库的 DB2 别名。
如果您安装了 64 位数据库包,或已创建 64 位执行组:
这种添加可能会妨碍您从该环境 shell 中的命令行运行 DB2 命令,例如 db2create。如果要输入 DB2 命令,则启动一个独立环境 shell 并运行 db2profile 以了解相关的数据库实例,但不要运行 mqsiprofile。
如果您使用 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 Protocol SQLSERVERDB=DataDirect 5.0 SQL Server Wire Protocol INFORMIXDB=IBM Informix ODBC Driver
[WBRKBKDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.a Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.a Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your_install_directory>/merant/lib/UKor820.so
Description=DataDirect 5.0 Oracle
EnableDescribeParam=1
OptimizePrepare=1
ServerName=<Your Oracle host>
WorkArounds=536870912
ProcedureRetResults=1
[SYBASEDB]
Driver=<Your_install_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_install_directory>/merant/lib/UKmsss20.so
Description=DataDirect 5.0 SQL Server Wire Protocol
Address=<Your SQLServer Host>,<Your SQLServer server port>
Database=<Your Database Name>
AnsiNPW=Yes
QuoteId=No
[INFORMIXDB]
Driver=<Your Informix Client Directory>/lib/cli/iclit09b.so
Description=IBM Informix ODBC Driver
ServerName=<YourServerName>
Database=<Your Datasource>
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your_install_directory>/merant/lib/odbctrac.so
InstallDir=<Your_install_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 Protocol SQLSERVERDB=DataDirect 5.0 SQL Server Wire Protocol INFORMIXDB=IBM Informix ODBC Driver
[WBRKBKDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.sl Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.sl Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your_install_directory>/merant/lib/UKor820.sl
Description=DataDirect 5.0 Oracle
EnableDescribeParam=1
OptimizePrepare=1
ServerName=<Your Oracle Host>
WorkArounds=536870912
ProcedureRetResults=1
[SYBASEDB]
Driver=<Your_install_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_install_directory>/merant/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
[INFORMIXDB]
Driver=<Your Informix Client Directory>/lib/cli/iclit09b.sl
Description=IBM Informix ODBC Driver
ServerName=<YourServerName>
Database=<Your Datasource>
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your_install_directory>/merant/lib/odbctrac.sl
InstallDir=<Your_install_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 Protocol SQLSERVERDB=DataDirect 5.0 SQL Server Wire Protocol INFORMIXDB=IBM Informix ODBC Driver
[WBRKBKDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.so Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.so Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your_install_directory>/merant/lib/UKor820.so
Description=DataDirect 5.0 Oracle
EnableDescribeParam=1
OptimizePrepare=1
ServerName=<Your Oracle Host>
WorkArounds=536870912
ProcedureRetResults=1
[SYBASEDB]
Driver=<Your_install_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_install_directory>/merant/lib/UKmsss20.so
Description=DataDirect 5.0 SQL Server Wire Protocol
Address=<Your SQLServer host>,<Your SQLServer server port>
Database=<Your Database Name>
AnsiNPW=Yes
QuoteId=No
[INFORMIXDB]
Driver=<Your Informix Client Directory>/lib/cli/iclit09b.so
Description=IBM Informix ODBC Driver
ServerName=<YourServerName>
Database=<Your Datasource>
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your_install_directory>/merant/lib/odbctrac.so
InstallDir=<Your_install_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 Protocol SQLSERVERDB=DataDirect 5.0 SQL Server Wire Protocol INFORMIXDB=IBM Informix ODBC Driver
[WBRKBKDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.so Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB
[MYDB] Driver=<Your_DB2_installation_directory>/lib/libdb2.so Description=MYDB DB2 ODBC Database Database=MYDB
[ORACLEDB]
Driver=<Your_install_directory>/merant/lib/UKor820.so
Description=DataDirect 5.0 Oracle
EnableDescribeParam=1
ProcedureRetResults=1
ServerName=<Your Oracle Host>
WorkArounds=536870912
OptimizePrepare=1
[SYBASEDB]
Driver=<Your_install_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_install_directory>/merant/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
[INFORMIXDB]
Driver=<Your Informix Client Directory>/lib/cli/iclit09b.so
Description=IBM Informix ODBC Driver
ServerName=<YourServerName>
Database=<Your Datasource>
[ODBC]
Trace=0
TraceFile=<A Directory with plenty of free space>/odbctrace.out
TraceDll=<Your_install_directory>/merant/lib/odbctrac.so
InstallDir=<Your_install_directory>/merant
UseCursorLib=0
IANAAppCodePage=4UNICODE=UTF-8
您现在已在 UNIX 上配置了 32 位 ODBC 数据源名称。接下来,您必须配置用于发出控制台命令和运行代理配置的环境,这样它就可访问所需的数据库。有关更多信息,请参阅设置环境以访问数据库。