【发布时间】:2010-12-25 04:56:04
【问题描述】:
我们公司有一个 biztalk 服务器(一个虚拟的 (1!)...),以及一个保存数据的 sql 服务器。 现在我们有很多数据流量。我说的是几十万。所以我实际上什至不确定一台服务器是否相当安全,但我们公司并不是那么容易说服的。
现在我们最近遇到了很多问题。
请允许我详细定位,所以我不会遗漏任何东西:
我们的服务器有 5 个应用程序:
- 一个具有 3 个编排、12 个发送端口、16 个接收位置。
- 一个具有 4 个编排、32 个发送端口、20 个接收位置。
- 一个具有 4 个编排、24 个发送端口、20 个接收位置。
- 一个具有 47 个(是 47 个)编排、37 个发送端口、6 个接收位置。
- 一个具有通用应用程序和几个资源的应用程序。
自从我们使用 47 个编排部署应用程序后,问题就出现了。 许多这些编排使用分配形状,这些形状使用 c# 代码进行映射。这是因为我们使用 HL7 扩展,这有点特殊,所以通过使用 c# 代码和 xpath,映射更容易,因为很多这些模式看起来很相似。 c# 读入通过 xpath 接收的 XmlNodes,并返回 XmlNode,然后将其再次分配给 biztalk 消息。我不确定这是否是原因,但我想我会提到它。
发送和接收端口有很多不同的类型:文件、MQSeries、SQL、MLLP、FTP。 这些类型中的每一种都有不同的主机实例,以平衡负载。 我们的编排使用 BiztalkApplication 主机。
在这个服务器上还有几个脚本正在运行,主要是 ftp 上传脚本和一个 zipper 脚本,它以每日 zip 格式每半小时压缩一次文件,并在一个月后删除 zip 文件。我们在备份文件上使用这个 zipscript(我们备份了很多,备份也在我们的服务器上),我们这样做是因为服务器在将文件发送到有很多(很多)文件的位置时遇到问题,所以在文件被压缩成压缩包,这样会更好。
现在我们最近遇到的问题主要是两大问题:
- 我们最重要的问题如下。我们在队列中保留了一个包含大量消息的接收位置以进行测试。在我们启动这个使用 47 个编排的接收位置后,正在运行的服务实例开始摇摆不定。好吧,这很正常。假设大约有 10000 个,然后我们停止接收位置,看看 biztalk 如何处理这 10000 个实例。通常它们会很快下降,有时确实如此,但过了一段时间它开始“节流”,这意味着它们只是停止处理并且服务实例保持相同的数量,例如在 30 秒内它从 10000 下降到 4000 然后它保持在 4000 并且非常非常非常缓慢地降低,例如 5 分钟内 30 或其他东西。所以这意味着,其他应用程序的所有其他服务实例也都卡在这里,它们也没有被处理。
我们注意到,在重新启动主机实例后,实例数量再次快速下降。所以我们尝试选择性地重启不同的主机实例来定位问题。我们注意到最终重新启动文件发送/接收主机实例可以解决问题。所以我们认为文件发送会是问题所在。考虑到我们做了很多备份。所以我们用 mqseries 备份替换了文件类型备份。发生了同样的问题,有趣的是,重新启动文件发送/接收主机仍然可以解决问题。
在事件查看器中也找不到错误。
- 我们遇到的第二个问题是。有时在早上 6 点左右,所有或部分主机实例都会停止。
在事件查看器中,我们注意到以下错误(不止一个):
URL 为“SQL://ZNACDBPEG/mdnd0001/”的接收位置“MdnBericht SQL”正在关闭。详细信息:“已超出错误阈值。接收位置正在关闭。”。
消息引擎未能将 URL 为“\m2mservices\Othello_import$\DataFilter Start*.xml”的接收位置“M2m Othello Export Start Bestand”添加到适配器“FILE”。原因:“FILE 适配器无法访问文件夹 \m2mservices\Othello_import$\DataFilter Start。 验证此文件夹是否存在。 错误:登录失败:未知用户名或密码错误。 ”。
FILE 适配器无法访问文件夹 \m2mservices\Othello_import$\DataFilter Start。 验证此文件夹是否存在。 错误:登录失败:未知用户名或密码错误。
尝试连接到服务器“ZNACDBBTS”上的“BizTalkMsgBoxDb”SQL Server 数据库失败。 错误:“用户 '' 登录失败。该用户未与受信任的 SQL Server 连接关联。”
此时似乎出现登录失败,因此其他服务也遇到问题,最终被关闭。
问题是,我们的用户是管理员,它的密码“有时”不可能是错误的。我们认为问题可能是由基础设施问题引起的,但这并不是真正的部门。
我知道这是一篇很长的帖子,但我们不知道该怎么做。添加另一台服务器并平衡负载会解决我们的问题吗?有没有办法衡量我们的平衡并知道从哪里开始分裂?负载等的正常数量是多少?
感谢任何答案,因为这些问题越来越严重,而且我们也处于最后期限。
非常感谢您的回复!
【问题讨论】:
-
我们也有同样的问题,请问您还有文件吗?
标签: c# sql-server xpath biztalk load-balancing