我在 SQL Server 和 Exchange Web 服务之间的 CLR 中有一个接口,用于在应用程序之间同步和发送电子邮件。在测试中它可以正常工作,没有任何问题;我们在生产环境中发现了零星问题,其中较长的 Web 服务任务似乎重叠。
我的问题非常简单,我无法通过阅读 MSDN 上的 CLR 详细信息来决定 - CLR 线程安全还是开箱即用。
如果不是,调用线程安全的 CLR 的最佳方法是在我的过程周围应用锁定,或者是否有一个不太激烈的替代方案。
感谢您的回复;我们发现这是一个 EWS / 模拟问题,而不是 SQL 问题。我们在系统上完成了一组新的负载测试,即使在大量负载(比应用程序迄今为止看到的高 1000 倍)下,我们也看不到内存泄漏/线程问题,这就是我们现在在其他地方寻找的原因..
不要使用进程内 CLR 进行外部连接、Web 服务或交换等。使用 SQL Server 外部的普通进程。您将看到的不仅仅是“零星”问题:您将在 CLR 事件上耗尽工作池,并且 SQL Server 将耗尽该工作池。freeze.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)