MSDTC 问题 - 事务超时,事件 ID 4359
我在 MSDTC 方面遇到了一个令人困惑的问题
我们的开发项目中有 4 台机器,但只有 1 台无法协商 MSDTC 事务。
我们正在使用带有多个 Linq-2-SQL DataContext 的 WCF 服务,因此事务正在升级到 DTC。 4 台计算机中的 1 台 (Windows 7 SP 1) 在调用第二个数据上下文调用时失败。
DB服务器是Windows Server 2008 R2 / SQL Server 2008 R2
这是事件日志
来源:MSDTC客户端 事件 ID:4359
任务类别:MSDTC 代理
一般情况:“MS DTC 无法与远程系统上的 MS DTC 通信。主系统上的 MS DTC 与辅助系统上的 MS DTC 建立了 RPC 绑定。但是,在超时期限到期之前,辅助系统未创建与主 MS DTC 系统的反向 RPC 绑定。请确保两个系统之间存在网络连接。错误详情:“
MSDTC 在所有 4 台机器上的设置相同, 网络 DTC 访问 - 已启用 客户端和管理 - 均选中“允许远程客户端”和“允许远程管理” 事务管理器通信 - 允许出站和允许入站检查,需要相互身份验证 未选中启用 XA 事务 启用 SNA LU 6.2 事务检查
所有计算机(包括 DB 服务器)都将 DTC 登录帐户设置为 NT Authority\NetworkService
我已检查故障计算机可以通过 NETBIOS 名称解析 DB 服务器,并且 ping -a { IP} 将 IP 地址解析回 netbios 名称,反之亦然。
当事务升级到 DTC 时,我在客户端和数据库服务器上的事务列表中看到一个条目,其形式为 user_transaction { SOME GUID },大约 1 分钟后超时
数据库没有在其上记录任何内容事件日志
如果禁用所有防火墙,则没有区别。
有人知道接下来要看什么吗?
干杯...
罗伯特
=== 更新 === 计算机上的 MSDTC 配置不正确...开发盒是从映像克隆的,并复制了一些内部 GUID。重新安装 MSDTC 解决了该问题
msdtc -uninstall
msdtc -install
I have a baffling issue with MSDTC
We have 4 machines in our development project but only 1 cannot negotiate a MSDTC transaction.
We are using WCF service, with multiple Linq-2-SQL DataContexts, so the transaction is being escalated to the DTC. 1 machine ( Windows 7 SP 1 ) out of 4 fails when invoking a second datacontext call.
The DB server is a Windows Server 2008 R2 / SQL Server 2008 R2
This is the event log
Source: MSDTC Client
Event ID: 4359
Task Category: MSDTC Proxy
General: “MS DTC is unable to communicate with MS DTC on a remote system. MS DTC on the primary system established an RPC binding with MS DTC on the secondary system. However, the secondary system did not create the reverse RPC binding to the primary MS DTC system before the timeout period expired. Please ensure that there is network connectivity between the two systems. Error Specifics:”
MSDTC is setup the same on all 4 machine,
Network DTC Access - Enabled
Client and Administration - Both Allow Remote Clients and Allow Remote Administration checked
Transaction Manager Communication - Allow outbound and Allow inbound checked, Mutual Authentication Required
Enable XA Transaction unchecked
Enable SNA LU 6.2 Transactions checked
All machines ( includeing the DB server ) has the DTC logon account set to NT Authority\NetworkService
I have checked that the failing machine can resolve the DB server by NETBIOS name, and that ping -a {IP} resolves the IP address back to the netbios name, and vise versa.
When the transaction is escalated to the DTC, I see an entry in the transaction list, on both client and DB server, in the form of user_transaction { SOME GUID }, which times out after about 1 minute
The DB is not logging anything on it's event logs
There is no difference if all firewalls are disabled.
Does anyone have any idea what to look at next ?
Cheers...
Robert
=== Update ===
MSDTC was incorrectly configured on the machine... the dev box was cloned from an image and replicated some internal GUIDs. Reinstalling MSDTC fixed the issue
msdtc -uninstall
msdtc -install
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论