宋晗 ([email protected]), 软件工程师, IBM
2009 年 3 月 24 日
本文将主要介绍如何在 WebSphere Message Broker(WMB)中使用 WebSphere Business Monitor去监听WebSphere Adapters。首先介绍 WMB和WebSphere Message Broker Toolkit(WMBT)的产品架构和基本概念,以及 如何在开发工具WMBT中开发WebSphere Adapter的应用,最后如何开发WebSphere Business Monitor(WBM)模块将WebSphere Adapter中的企业数据以图形(Dashboard)展现。
一、WMB和WMBT简介
WebSphere Message Broker (WMB)是基于MQ为信息存储平台的企业应用服务器,所有部署在WMB的应用程序都必须以MQ信息格式进行交互,WebSphere Message Broker Toolkit (WMBT)专门用于开发部署在WMB的应用程序,这里以JCA SAP Adapter为例:
二、JCA SAP Adapter简介
SAP Adapter可以方便的将数据从SAP应用程序与不同的程序接口进行相互交互,类似于J2EE应用程序和SCA服务类组建架构,SAP Adapter可以连接运行在SAP Web服务器上面的SAP应用程序。
SAP Adapter支持许多SAP继承接口,包括BAPI、RFC、ALE、QISS等。具体请看下图:
三、构建JCA SAP Adapter应用程序(以BAPI Outbound为例)
1. 首先预先准备环境,WMB、WMBT、DB2、MQ的安装以及第三方SAP JCO API,这里不对以上软件的安装进行说明,参考其它相关文档,本文章不再赘述。
2. 环境建立好后,用户可以自己创建Broker、Configuration Manager。
3. 打开WMBT,默认的是Broker Application Development透视图,将sap适配器导入到工作区。
4. 导入之后,添加所必需的依赖文件,右键点击导入的sap适配器,在列表中选择属性,选择Java Build Path,将aspectjrt.jar、ffdc.jar、ffdcSupport.jar以及最重要的SAP JCO API (sapjco.jar),前三个文件你可以从WebSphere Process Server的lib目录得到,SAP JCO API可以从相应的SAP公司网站中获得。点击OK。
5. 然后选择 新建 -> 适配器连接,从这一部开始将会生成所有的SAP适配器应用程序所需要的BOs以及运行文件,选择“IBM WebSphere Adapter for SAP Software(IBM:6.1)”,点击下一步。
6. 继续点击下一步,进入下一图:
7. 选择Outbound,点击下一步。在下图中填写SAP服务器的连接信息(用户名、密码、服务器地址、Client、语言以及编码信息),并且在“Select the SAP interface”中选择Outbound,点击下一步。
8. 在这一步,将会从SAP服务器中取出我们所需要的数据,选择“RFC”并点击过滤器按钮 ,在弹出窗口中输入你所要查询的数据的格式如下图,这里可以使用通配符(? – 代表任意一个字符,* – 代表任意多个字符),然后点击OK。
9. 展开RFC节点,将会列出你所要查询的数据如下图,选择BAPI_CUSTOMER_GETLIST,并点击 ,将选择的数据加入到右侧的列表中,点击下一步。
10. 在下一图中填写必要的信息,并将你在运行时所需要的执行的操作加入到操作列表中,如下图,点击下一步。
11. 在下一图中,只需要填写一下密码信息,点击下一步,创建一个信息集项目(SAPOutbound),点击完成之后,所有生成的文件将会保存到SAPOutbound工程中。
12. 现在我们需要创建信息流工程,在这个工程中你可以通过MSQL语言去实现数据逻辑处理的流程,首先创建一个信息流工程,命名为TestSAPOutbound,并在下一个界面中选择所需要以来的项目,点击完成。
13. 创建完信息流工程之后,需要创建信息流,这里你可以自己任意命名,创建好之后,信息流编辑器会自动打开,你需要将SAP适配器节点以及数据逻辑处理节点和MQ输入输出节点拖进此编辑器中,通过OUT类型连接它们,完成一个整体的逻辑处理流程,如下图:
14. MQInput节点所指定的队列信息,你需要手工在MQ中创建,这里不再赘述。
15. Compute节点中可以写入MSQL语句来处理复杂的数据流成:
DECLARE ns NAMESPACE 'http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/sapcustomerresultset';
CREATE COMPUTE MODULE BapiRS1MF_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();
-- CALL CopyEntireMessage();
SET OutputRoot.XMLNSC.ns: SapcustomerWrapper.SapBapiCustomerGetlist.MaximumNumberOfCustomers=3;
SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.CustomerNumber1='0000000010';
SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.CustomerNumber12217378='0000000030';
SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.InclusionExclusionCriterionSignForRangeTables='E';
SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.SelectionOperatorOptionForRangeTables='EQ';
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER;
SET J = CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET utputRoot = InputRoot;
END;
END MODULE;
这样整个工程就已经全部生成,现在需要将它部署到 WMB Broker 中,并在输入队列中输入测试数据,触发 Compute 节点中 MSQL 的流程,最终将输出的结果保存到 Trace 文件中。1.GIF
2.GIF
3.GIF
4.GIF
5.GIF
6.GIF
7.GIF
8.GIF
9.GIF
10.GIF
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21341930/viewspace-606029/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21341930/viewspace-606029/