概要
本文介绍的修复程序提供两个附加的传递模式属性的最小低层协议 (MLLP) 发送和接收端口,当您使用 BizTalk 加速器的 HL7 在 Microsoft BizTalk Server 2010 环境中︰
-
使用 MLLP 传输确认
此属性可用于单向接收端口和单向发送端口。
-
在 MLLP 传输否认暂停请求消息
此属性仅在单向发送端口是可用。
MLLP 接收适配器支持两个单向和双向请求响应模式。如果配置了接收适配器,HL7 处理使用顺序传递参数。这可以保证消息传递的顺序维护。当 MLLP 收到双向模式中运行的适配器时,适配器没有收到一封新邮件来自上游系统直到适配器生成的上一个消息到上游的系统应用程序 (MSA) 确认。生成的 ACK 否认被发送到消息框数据库 (MessageBoxDB)。它向上游系统发送 ACK/否认前 MessageBoxDB 等待下一次轮询间隔。
一次,只有在收到 ACK/否认后,上游系统发送只有一个消息。此外,配置 BizTalk 轮询间隔,和按序送达参数设置为True。这意味着每个处理的消息数第二个是有限的。此修补程序提供的其他配置的单向发送端口和接收端口。它不影响 ACK/否认。但是,它将大大增加每秒处理的文档的数。
应使用性能计数器之前,并且在应用此修补程序后,采取了比较基准。当准则时,应在合理的一段提交合理数量的消息。例如,您可以使用以下方法︰
-
对于BizTalk︰ 消息类别中,使用文档处理/秒计数器。
-
对于BizTalk︰ 消息延迟类别中,使用所有可用的计数器。
一个选项,以增加每秒处理的文档的数目是较低的MaxReceiveInterval设置为 BizTalk 主机。根据整体的环境中,在计算机的调节运行 Biz 谈 Server 2010 中,且上进行处理的文档的数量繁多,降低MaxReceiveInterval设置可能有负面影响的实例的 SQL Server 的性能。对于 SQL Server 优化和 BizTalk 调整,指所有可用的技术文章。
详细信息
注意:此修补程序还解决对 HL7 的 Microsoft BizTalk 2010 加速器中的问题。有关此问题的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2454887事件可能错误地记录为 BizTalk 2009 加速器中基于 MLLP 的消息 HL7 的计算机正在运行 Microsoft BizTalk Server 2009年或 Microsoft BizTalk Server 2010 上
修补程序信息
可以从 Microsoft 获得受支持的修复程序。但是,此修补程序用于解决仅本文中描述的问题。此修复程序仅适用于遇到本文中描述的问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。
如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。
注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码的完整列表,或要创建单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。
系统必备组件
您必须具有 Microsoft BizTalk 加速器 HL7 的 (BTAHL7) 要应用此修补程序的安装。
重新启动信息
您可能需要在应用此修补程序后,重新启动计算机。如果未提示您重新启动,则必须重新启动 BizTalk 服务。有关此过程的详细信息,请参阅此修复程序包中包含的 Readme.txt 文件。
更换信息
此修补程序不替代以前发布的修补程序。
文件信息
此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
文件名称 |
文件版本 |
文件大小 |
日期 |
时间 |
平台 |
---|---|---|---|---|---|
Microsoft.solutions.btahl7.mllp.dll |
3.9.526.2 |
116,608 |
07-Jun-2011 |
15:27 |
x86 |
Microsoft.solutions.btahl7.shared.dll |
3.9.526.2 |
92,040 |
07-Jun-2011 |
15:27 |
x86 |
Mllpreceive.exe |
3.9.526.2 |
26,456 |
07-Jun-2011 |
15:27 |
x86 |
Mllpsend.exe |
3.9.526.2 |
26,448 |
07-Jun-2011 |
15:27 |
x86 |
有关此修复程序
后此修复程序已安装并配置消息流
应用并启用此修补程序后,MLLP 适配器提交到 MessageBoxDB MLLP 适配器接收的任何消息。端点管理器 (EPM) 回拨BatchComplete方法中以及提交状态的适配器。这将导致适配器发送 ACK/否认在提交到上游的系统。反过来,上游系统收到 ACK/否认,并将下一条消息。BatchComplete方法的MaxReceiveInterval设置的独立,并且消息已成功提交到 BizTalk 之后立即调用。
一旦准备好发送该邮件,发送适配器将传输到下游的系统消息。如果使用 MLLP 传输确认属性设置为True,预期 ACK/否认。如果发送一个 ACK,BizTalk 完成处理成功。如果发送否认,并在 MLLP 传输否认暂停请求消息属性设置为True,则直接而不重新连接挂起消息。但是,如果在 MLLP 传输否认暂停请求消息属性设置为False时,BizTalk 将重试根据发送端口重试间隔设置。(默认情况下, MLLP 传输否认上挂起请求消息属性设置为False。)
下图显示了消息流︰
-
由上游系统由 MLLP 处理发送应用程序发送的消息接收适配器。
-
MLLP 适配器提交到 BizTalk/EPM 的消息。
-
EPM 回调消息提交状态有关的适配器。EPM批完整的方法中执行此操作。
-
提交确认/否认由 MLLP 适配器生成的并基于批处理提交状态。ACK/否认被发送到发送应用程序。
注意:如果批处理提交状态就是成功,适配器返回确认但是,如果出现故障,或提交超时 (例如,如果批处理完成方法调用超时),适配器发送应用程序返回否认。 -
EPM 通过邮件交给 MLLP 发送适配器进行传输。
-
MLLP 向下游系统发送适配器发送处理的消息。
-
传输层 ACK/否认预计通过 MLLP 发送适配器完成通信。
-
如果在步骤 7 中的消息是一个 ACK,适配器会询问 EPM 将删除该邮件。否则,适配器有 EPM 寻求根据重试间隔设置重试。一个新的选项中提供了发送端口配置设置为挂起消息直接,而无需重试,如果收到 MLLP 否认。默认情况下,此选项设置为False。如果此选项设置为True,该消息将暂停直接,不重试,如果收到 MLLP 否认。
传输级别 ACK/NACK 格式
该网站包含以下信息︰
-
MLLP 提交确认信息的示例︰
<SB><ACK><EB><CR>
-
示例的 MLLP 负提交确认︰
<SB><NAK><EB><CR>
备注:
-
在这些示例中,< SB > 是指起始块字符 (1 个字节)。这对应于的 < VT > ASCII 字符或 < 0x0B >。
这不应与 SOH 或 STX ASCII 字符混淆。 -
在这些示例中,< ACK > 或否认 < > 引用确认字符 (1 个字节。对应的 < ACK > ASCII 字符或 < 0x06 >) 或负确认字符 (1 个字节。该 < 否认 > ASCII 字符或对应 < 0x15 >)。
-
在这些示例中,< EB > 指 End 块字符 (1 个字节)。这对应于的 < FS > ASCII 字符或 < 0x1C >。
-
在这些示例中,< CR > 指回车字符 (1 个字节)。这对应于的 < CR > ASCII 字符或 < 0x0D >。
-
Microsoft 提供的第三方联系人信息,以帮助您查找技术支持。此联系信息如有更改,恕不另行通知。Microsoft 不能保证第三方联系信息的准确性。
如何配置接收和发送端口使用新的属性
配置接收和发送端口,如下所示。
注意:可单独或同时接收和发送端口设置。
接收端口配置
-
端口必须是单向端口。
-
必须启用按序送达参数。
-
必须使用 MLLP 传输确认属性设置为True将启用传输级别的确认。默认情况下,此属性设置为False针对现有端口或新的端口。
将发送端口配置
-
端口必须是单向端口。
-
请求-响应模式必须设置为否。
-
必须启用按序送达参数。
-
必须使用 MLLP 传输确认属性设置为True将启用传输级别的确认。默认情况下,此属性设置为False针对现有端口或新的端口。
-
如果需要正在重试传输否认收到从下游系统时无直接挂起消息,必须设置MLLP 传输否认上挂起请求消息属性为True 。否则,消息将设置高级选项发送端口的传输次数重试。默认情况下,此属性设置为False针对现有端口或新的端口。
有关"使用 MLLP 传输确认"属性
下表描述了使用 MLLP 传输确认使用的单向或双向端口的预期的行为。"如何启用此修补程序"一节中所述,必须进行所需的设置的组合。
备注:
-
"上游系统"是指发送应用程序。它将消息发送到 BizTalk。这些消息是传入到 BizTalk 消息。
-
"下游系统"是指接收应用程序。它从 BizTalk 将接收消息。这些消息到 BizTalk 传出。
端口的类型 |
在 MLLP V2 选项 |
MLLP V2 选项 |
---|---|---|
单向接收 |
MLLP ACK/否认向上游系统中的BatchComplete方法。 |
在行为中的任何更改。在此情况下,没有 ACK/否认发送到上游的系统。 |
双向接收 |
在行为中的任何更改。在此情况下, TransmitMessage方法中 HL7 ACK/否认发给上游的系统。 |
在行为中的任何更改。在此情况下, TransmitMessage方法中 HL7 ACK/否认发给上游的系统。 |
单向发送 |
从下游系统 MLLP ACK/否认在消息传输完成后,等待。 |
在行为中的任何更改。在此情况下,确认/否认从下游系统都不在等待消息传输后。 |
双向发送或恳求-响应模式下启用的单向发送 |
在行为中的任何更改。在此情况下,从下游系统 HL7 ACK/否认都在等待后消息传输。 |
在行为中的任何更改。在此情况下,从下游系统 HL7 ACK/否认都在等待后消息传输。 |
双向接收和发送端口行为不会更改。单向接收和发送端口行为也不会更改除非使用 MLLP 传输确认属性设置为 true。
有关详细信息,请参阅 MLLP 适配器文档。如果单向接收和发送端口具有适当的配置,性能得到改善。如果为双向端口或单向端口的使用 MLLP 传输确认属性设置为 false,而无需更改将继续的 ACK,它生成的类型。在此情况下,生成的确认的种类取决于发送邮件应用程序的 BTAHL7 配置资源管理器中设置。MSH 15和MSH 16的特定消息的字段中的值可以重写此设置。但是,如果为双向端口或单向端口的使用 MLLP 传输确认属性设置为 false,您可以设置期望静态确认只能通过使用 BTAHL7 配置浏览器的应用程序的配置。端口超时行为保持不变.
在极端情况下使用属性时预期的行为是,如下所示︰
RECEIVE
-
WrongMLLPFormat︰ 该消息未提交到 BizTalk 中。
-
WrongHL7Format: 邮件提交到 BizTalk,并在 MLLP ACK/否认基于批处理完成状态。
-
TransmittingSocketIssue: MLLP ACK/否认则不传输邮件提交到 BizTalk 虽然。
-
ReceivingSocketIssue: 不接收到消息,因此无法提交时,并没有 MLLP ACK/否认传输发送。
-
如果到 BizTalk 提交失败,则传输否认。
-
如果接收到负面状态的批处理完成时,则传输否认。
发送和端口发送属性"停止发送当前消息失败的后续消息"= True
-
WrongMLLPFormat︰ 由于无法读取 MLLP ACK/NACK 暂停消息。已清除挂起的消息之前,不会继续处理。
-
WrongHL7Format︰ 之前到达该适配器出现故障消息。已清除挂起的消息之前,不会继续处理。
-
TransmittingSocketIssue︰ 消息被挂起。已清除挂起的消息之前,不会继续处理。
-
ReceivingSocketIssue︰ 消息被挂起。已清除挂起的消息之前,不会继续处理。
当在 MLLP 传输否认暂停请求消息属性设置为True或False ,预期的行为是,如下所示︰
-
当MLLP 传输否认上挂起请求消息属性设置为True ,并否认收到时,而无需重新发送它挂起消息。
-
当在 MLLP 传输否认暂停请求消息属性设置为False,重试发送启动邮件时,默认设置基于发送端口重试间隔设置。
对 MLLP SDK 工具的更改
MLLP SDK 实用程序包括下列新的参数。所有其它参数将保持不变。有关详细信息,请参阅产品文档。
-
对于 MLLPReceive.exe,使用新的参数返回 MLLP ACK/否认收到邮件后。例如︰
MLLPReceive /p 12000 /sb 11 /eb 28 /cr 13 /MLLPTransACK
MLLPReceive /p 12000 /sb 11 /eb 28 /cr 13 /MLLPTransNAK -
对于 MLLPSend.exe,使用新的参数要等待 MLLP ACK/否认。例如︰
MLLPSend /sb 11 /eb 28 /cr 13 /f"C:\HL7\ls.txt"/I 127.0.0.1 /p 11000 /UseMLLPTransACK
参考资料
有关如何管理在 BizTalk server 的性能设置的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 网站︰
管理 BizTalk Server 性能设置消息服务的性能计数器的详细信息,请访问下面的 MSDN 网站︰
消息服务的性能计数器有关订购传递的邮件的详细信息,请访问下面的 MSDN 网站︰
排序邮件的传递HL7 BizTalk 2010 加速器的详细信息 (BTAHL7),请访问下面的 Microsoft 网站︰
HL7 的 BizTalk 2010 加速器 (BTAHL7) 文档IBTBatchCallBack.BatchComplete方法的更多信息,请访问下面的 MSDN 网站︰
IBTBatchCallBack.BatchComplete 方法BizTalk Server 修补程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
2003907 BizTalk Server 修补程序信息