侧边栏壁纸
博主头像
王一川博主等级

努力成为一个不会前端的全栈工程师

  • 累计撰写 70 篇文章
  • 累计创建 20 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

IBM MQ/MB 第三幕:过滤节点

王一川
2021-08-20 / 0 评论 / 0 点赞 / 1,296 阅读 / 782 字
温馨提示:
本文最后更新于 2021-08-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
  1. 从队列中读取 XML 消息,根据 XML 中的数据判断是否保存至队列
  2. XML 消息格式 <record><id>100001</id><address>杭州市</address><amount1>560.00</amount1><amount2>300.00</amount2></record>
  3. 只保存 address 是杭州的数据

新建一个 Application,新建一个 Message flow,拖入 MQ Input、MQ Output 填写必要信息(见第二幕),在 Routing(路由)中拖入 Filter 组件,并将 MQ Input 的 out 连接 Filter 的 int,将 Filter 的 true 连接 MQ Output 的 in,同时将 false 连接另一个 MQ Output 如下图:

数据输入节点的配置 Properties 中 Input Message parsing 的 Message domain 选择 XMLNSC 否则 Body获取不到 XML 数据,默认是 BLOB,双击 Filter 节点,会弹出 esql 编写界面

CREATE FILTER MODULE mq2filter2mq_Filter
	CREATE FUNCTION Main() RETURNS BOOLEAN
	BEGIN
		IF Body.record.address = '杭州市' THEN	
			RETURN TRUE;
		ELSE
			RETURN FALSE;
		END IF;
	END;

END MODULE;

保存,拖入聚点中,回到 MQ 页面,在 QMM_IN 放入上述测试的 XML 报文,修改报文中的 address,尝试修改为杭州市和非杭州市,最终结果报文的 address 是杭州市的将会进入 QMM_OUT 队列,否则进入 QMM_ERR 队列

弊端:只能二选一,应用场景有限,下一章将介绍更好用的路由方式

0

评论区