WMB Compute 节点访问数据库

在WMB中访问数据库有多种方式,可以用节点映射如:Database,Filter,Warehouse,Mapping节点等;也可以使用esql语句操作数据库数据。

下面以Compute节点为例,使用Oracle数据库,esql语句查询数据,修改数据,插入数据。

1、新建Oracle数据库sjxhpt。过程(略)

2、建立数据源(ODBC)

(1)打开管理工具->数据源(ODBC)->系统DSN标签,选择数据源驱动程序

注意:对于Oracle 和Sybase数据库,要使用MB专用的数据源驱动:

Oracle:WebSphere Message Broker DataDirect Technologies 6.0 32-BIT Oracle Wire Protocol

Sybase:WebSphere Message Broker DataDirect Technologies 6.0 32-BIT Sybase Wire Protocol

 

WMB Compute 节点访问数据库_第1张图片

(2)General/常规标签设置

输入要连接的数据库主机,端口,服务名,输入后可以测试连接。

注意:当连接Oracle 10g及以上版本时,输入Service Name/服务名;当连接Oracle 9i及以下版本时,输入SID

 

WMB Compute 节点访问数据库_第2张图片

(3)Advanced/高级标签设置

勾选Enable SQLDescribeParam,Procedure Returns Results

 

WMB Compute 节点访问数据库_第3张图片

完成后,在窗体中可以看到刚才添加的系统数据源,可以通过配置,对数据源进行修改。

3、使用mqsisetdbparms命令绑定数据源

使用命令:mqsisetdbparms MB7BROKER -n RESERVDB -u -p 。如果broker为缺省代理:MB7BROKER,则执行依次为:

(1)停止代理:mqsistop MB7BROKER;

(2)绑定数据源:mqsisetdbparms MB7BROKER -n SJXHPT -u userId -p mypw

(3)启动代理:mqsistart MB7BROKER;或重启代理:mqsireload MB7BROKER -e default

以后如果不想使用这个数据源了,可以执行以下命令删除:

mqsisetdbparms MB7BROKER -n test -d

注:这个命令是在MB控制台执行才有效。而有的人找不到MB的控制台,可以用以下方法:

(1)在C:\Program Files\IBM\MQSI\7.0\bin目录下找到mqsiprofile.cmd,双击打开控制台;

(2)有时双击mqsiprofile.cmd时,控制台窗体一闪而过,此时可以在运行在打开 cmd,分别执行以下命令:

WMB Compute 节点访问数据库_第4张图片


此时看到C:\Program Files\IBM\MQSI\7.0\bin>,说明已成功打开MB控制台。

4、建立消息流项目,并建立消息流。使用Compute节点,如下图所示:

WMB Compute 节点访问数据库_第5张图片

 

(1)Compute节点属性:指定其数据源为第2步建立数据源;

WMB Compute 节点访问数据库_第6张图片

此时esql代码为:

插入:insert into Database.sys_log(operatetype)   values('插入数据');

修改:update Database.sys_log  as T set T.operatetype='修改数据';

删除:deleta Database.sys_log as T where T.operatetype='删除数据';

查询结果可用全局环境变量Environment存储,一般存储在Environment.Variables下面:

查询第一条数据:set Environment.Variables.operatetype=THE(select T.operatetype from Database.sys_log as T );

查询多条数:set Environment.Variables.operatetype[] =select T.operatetype from Database.sys_log as T ;

(2)没有指定Compute节点的数据源或是使用多数据源:

      应使用Database...来引用数据相应的数据库。其中,最前面的Database是保留字(关键字)表示后继是一个数据库对象;是表示数据源名称;表示该表所属的模式名,对于oracle来说,即是专门的用户名;即操作的数据表名称;大小写不区分。

      插入:insert into Database.sjxhpt.sjxhpt.sys_log(operatetype)   values('插入数据');

5、归档部署测试(略)

注:原创博文,转载引用请指明出处。欢迎指出错误,探讨问题。

转载于:https://www.cnblogs.com/hhl-kf/archive/2012/09/25/2694052.html

你可能感兴趣的:(WMB Compute 节点访问数据库)