在Biztalk 2009中,我可以从管理控制台查看“跟踪消息事件”。我需要找到一个特定的消息(包含正文中的特定字符串),我知道它的到达日,但不是时间。
我怎样才能轻松解决这个问题? 如果我可以右键单击并在所有消息上“保存到文件”,我可以使用grep查找消息。但是,您一次只能在一条消息上执行此操作,并且此时我有5188条消息(因此这不实用)。 如果在跟踪的消息事件对话框中有某种方式输入消息条件,我可以很容易地做到,但我不相信Biztalk 2009支持这一点。
有没有办法使用SQL脚本直接从Biztalk数据库表中获取此信息,还是有另一种简单的方法可以做到这一点,我不知道?
答案 0 :(得分:3)
首先我假设你也跟踪了激活的消息?您可能知道,如果在端口上或在消息传递的业务流程中激活了跟踪,BizTalk实际上只保存消息正文。
但是,如果已激活跟踪,则消息正文首先保存在BizTalk消息框中,然后由跟踪代理移动到BizTalk中的DTA数据库 - 详细描述为here。在DTA数据库中,消息体以压缩格式保存,并且没有一种很好的方法来搜索整个身体的特定值。
一种方法是使用these methods来提取消息,然后使用其他一些方式在文件上搜索一次消息。
如果可能的话,我会在将来建议您推广您想要搜索的值。这将强制将值存储在DTA数据库中的sperepare字段中并使其可搜索。