MB数据库输入节点.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MB数据库输入节点

DatabaseInput Sample 例子位置:WebSphere Message Broker Version Product overview Samples Application samples 该例子是MB自带的例子,名字叫DatabaseInput Sample,下面简单说测试过程和测试过程中遇到的问题以及解决方法。具体详细信息参考帮助文档。 例子简要信息:对数据库的监控主要是通过监测事件表,这个事件表是用来存储对业务表的各种操作,表字段可以随意,也可以按照例子说的建表,但是有几个必要的字段必须有。这个事件是怎么存进去的呢?是通过触发器,对要监控的表建立相应触发器,记录对表的相应操作。DatabaseInput节点的作用就是监控事件表,可以设置监控频率,默认是5。 运行例子的时候首先是建数据库,然后是建表并建立触发器,SQL例子都有,拷贝出来就可以直接用,注意DB2CMD切到脚本的文件夹。建好库然后是导入例子,导入的例子并不能直接使用,需要做修改(这个问题折腾了一天)。需要把注释的语句都拿出来具体有三处。代码的位置是DatabaseInput.esql中灰色的部分,这部分的开头是解释,没有任何意义,我把需要拿出来的几句话贴出来 ReadEvents方法中的: SET NewEvents.Event[] = SELECT DBINPUT_EVENTS.EVENT_ID AS Key, DBINPUT_EVENTS.EVENT_ID AS Usr.EVENT_ID, DBINPUT_EVENTS.OBJECT_VERB AS Usr.OBJECT_VERB, DBINPUT_EVENTS.OBJECT_KEY AS Usr.OBJECT_KEY FROM Database.DBINPUT_EVENTS; BuildMessage方法中的: SET Root.DataObject.ns:DBINPUT_CUSTOMER[] = SELECT DBINPUT_CUSTOMER.PKEY, DBINPUT_CUSTOMER.FIRSTNAME, DBINPUT_CUSTOMER.LASTNAME, DBINPUT_CUSTOMER.CCODE FROM Database.DBINPUT_CUSTOMER WHERE DBINPUT_CUSTOMER.PKEY = DispatchedEvent.Usr.OBJECT_KEY; EndEvent方法中的: DELETE FROM Database.DBINPUT_EVENTS WHERE DBINPUT_EVENTS.EVENT_ID = DispatchedEvent.Usr.EVENT_ID; 下面是对DatabaseInput.esql的翻译,就是把这个翻译了一般才找到了例子不能运行的原因。如果看着不舒服,可以拷回toolkit中看。 DECLARE ns1 NAMESPACE http://dbinput/db2admin; /* * This DatabaseEvent module implements the ESQL code invoked from a DatabaseInput node to handle * events as they move through the states of New-Ready-Dispatched-Complete. * 此数据库事件模块采用调用自数据库输入节点的ESQL代码,用于处理新建-就绪-分配-完成等过程中发生的事件。 * NOTE: Events that result in unhandled exceptions in the message flow are moved to the Failed * state. Unhandled means either that the catch terminal was not wired, or that the catch * terminal threw an exception. If an exception is unhandled, the transaction is rolled back. * If the exception is handled, even if it is handled on the catch termi

文档评论(0)

af60068 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档