Linux 配置MQ的odbc
本文参考:https://www.cnblogs.com/hhl-kf/archive/2012/12/11/Linux_mq_odbc.html
MQ开发中,当需要建立odbc的,不能使用一般的Linux的odbc配置,而应该用专门的MQ odbc配置方式。配置方法如下(注意操作使用的用户无误):
一、环境说明
1、RedHet Linux5.5_x84_64 企业版
2、已安装MQ
3、MQ安装在testuser用户下
二、配置odbc.ini
1、复制odbc.ini文件
使用testuser用户登录。
复制/opt/ibm/mqsi/7.0/ODBC/V6.0/odbc.ini(iib/esb安装目录下odbc驱动)到用户文件下/home/testuser/odbc.ini
2、编辑文件使用权限
chown mqm:mqbrkrs /home/testuser/odbc.ini
3、编辑文件
[testuser@localhost /]# vi /home/testuser/odbc.ini
增加配置内容如下
---------------------------------------------------
[testDB]
Driver=/opt/ibm/mqsi/7.0/ODBC/V6.0/lib/UKora24.so #ODBC驱动位置
Description=DataDirect 6.0 Oracle Wire Protocol
HostName=192.168.4.53
PortNumber=1521
SID=testdb
CatalogOptions=0
EnableStaticCursorsForLongData=0
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
ProcedureRetResults=1
ColumnSizeAsCharacter=1
LoginTimeout=0
-------------------------------------------
二、配置环境变量(环境变量缺失时,手动配置)
使用testuser用户登录
修改当前用户的环境变量文件.bash_profile,(有的Linux系统是.bash_profile,有的是.profile)
[testuser@localhost /]# vi .bash_profile
添加配置如下
----------------------------------------
export ODBCINI=/home/testuser/odbc.ini
. /opt/ibm/mqsi/7.0/bin/mqsiprofile#esb环境变量,便于使用esb命令
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/xml4c/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/xml4c/lib64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/jre15/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/jre15/lib/sparcv9/server:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/jre15/bin:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/ODBC/V6.0/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/xlxpc/lib/:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/ibm/mqsi/7.0/bin/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
----------------------------------------------
说明:当使用当前Linux的本地oracle数据库时,还需要添加以下环境变量配置
----------------------------------------------
export ORACLE_BASE=/opt/oracle(实际安装路径)
export ORACLE_HOME=/opt/oracle/product/10.2
export ORACLE_SID=testdb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
-----------------------------------------------
使用:wq退出vi,保存.bash_profile后,需要使用source命令让.bash_profile生效。
[testuser@localhost /]# source .bash_profile
三、测试odbc
除使用MQ应用程序测试外,还可以使用isql测试
详细过程可参考:http://www.cnblogs.com/hhl-kf/archive/2012/12/11/LinuxODBC.html
1、安装isql
登录root用户,安装unixODBC-2.3.0.tar.gz
[root@localhost /]# tar -zxvf unixODBC-2.3.0.tar.gz
[root@localhost /]# cd unixODBC-2.3.0
[root@localhost unixODBC-2.3.0]# ./configure --prefix=/usr/local/unixODBC-2.3.0 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc
[root@localhost unixODBC-2.3.0]# make
[root@localhost unixODBC-2.3.0]# make install
2、使用isql测试
以testuser登录系统
[testuser@localhost /]# isql testDB username password -v
四、MQ使用ODBC(使用esb命令)
ps:esb命令位于iib安装目录bin目录下,若无法执行下列指令,可执行iib安装目录下的mqsiprofile文件后重试
(如:. /opt/ibm/mqsi/7.0/bin/mqsiprofile)
1、使用mqsisetdbparms命令绑定数据源用户密码
使用命令:mqsisetdbparms MB7BROKER -n odbcname -u <user ID> -p <password>。
(1)停止代理(集成节点):mqsistop MB7BROKER;
(2)绑定数据源:mqsisetdbparms MB7BROKER -n testDB -u userId -p password
(3)启动代理(集成节点):mqsistart MB7BROKER;
或重新加载组件:mqsireload MB7BROKER -e default(若没有执行组服务则不用带参数-e,只需指定集成节点:mqsireload MB7BROKER)
或:
进入iib安装目录(使用iib服务指令操做):
(1)停止代理(集成节点):./iib mqsistop MB7BROKER;
(2)绑定数据源:./iib mqsisetdbparms MB7BROKER -n testDB -u userId -p password
(3)启动代理(集成节点):./iib mqsistart MB7BROKER;
ps:若启动集成节点时提示相关联的队列管理器不可用,需先去启动运行相应的队列管理器后再启动集成节点(若还是不行,请确定用户是在iib安装用户组内,使用esb用户进行操作)
以后如果不想使用这个数据源了,可以执行以下命令删除:
mqsisetdbparms MB7BROKER -n test -d
查看配置信息(mqsireportproperties):
如查看配置的jdbc驱动:
mqsireportproperties BROKER.CLUSTER1(集成节点名) -o ODBC_HIS_TEST(数据源名) -c JDBCProviders(驱动类型) -r
查看数据源配置信息(mqsireportdbparms/mqsicvp):
方式1(mqsireportdbparms):
BIP8119W: Lists the credentials of resources that are associated with an integration node.
Syntax (1):
mqsireportdbparms <integrationNodeName> -n <resource>
Syntax (2):
mqsireportdbparms <integrationNodeName> -n <resource> [-u <userId>] [-p <password>]
Syntax (3)
mqsireportdbparms <integrationNodeName> -n <resource> [-u <userId>] [-i <sshIdentity>] [-r <passPhrase>]
方式2(mqsicvp):
BIP8872W: Verifies an integration node. Verifies a user datasource to be used within the integration node, or compares primary and secondary datasources for equivalence.
Syntax (1):
mqsicvp integrationNodeName
Syntax (2):
mqsicvp integrationNodeName -n primaryDatasource [-c secondaryDatasource] [-v]
Syntax (3):
mqsicvp -n primaryDatasource -u primaryDatasourceUserId -p primaryDatasourcePassword [-c secondaryDatasource -i secondaryDatasourceUserId -a secondaryDatasourcePassword] [-v]