结合Msg Ack机制和纯Msg的Web Service调用方法实现消息到达主动通知模式
Posted on 2009-03-24 23:30 鸡尾虾的壳 阅读(386) 评论(0) 编辑 收藏 举报场景:Application 1通过TIBCO EMS存储要发送的消息,
Application 2通过FTP接收Application 1中待发送的消息。
目标:Application 2获取FTP上的由Application 1发送过来的消息。
原有解决方案:在Application 2中实现Schedule Job轮询FTP并读取消息。
现有解决方案:Application 2提供一个通用消息到达通知Web Service。当消息到达后,引擎立即调用该WS实现主动通知机制,然后在Application 2的WS实现中,读取FTP中已经到达的消息。
优势:变被动轮询为主动通知,提高了系统对消息的响应效率。
实现要点:
TIBCO EMS Receive Port:Applicaton 1发送消息用。
FTP Send Port:Application 2接收消息用,订阅所有由TIBCO EMS Receive Port上发出的消息,在Send Pipeline上激活Msg Ack机制。
SOAP Send Port:传输协议配置为Applicaton 2提供的消息到达通知WS,订阅由FTP Send Port触发的Ack消息。在Send Pipeline中,根据ACK消息构造新的适用于Application 2 WS的SOAPRequest消息。
WSResponse Send Port(Optional):通过BTS.SPName订阅从SOAP Send Port返回的WS调用结果。