弄了一天,问题“解决”了,但不知道有没有什么后遗留证。
你说的这个ssbdiagnose工具我看了一下,不会用,我是直接用的sql server profiler跟踪的,
不管有没有用,把自己的方法分享一下吧。
我自己的测试环境,发起方:windows server 2008 x64 + sql 2008 x64;
目标机器:windows server 2003 x86 + sql 2005 x86
首先用sql server profiler跟踪的时候,sql server profiler默认并没有选中service broker相关跟踪项,这个在“新建跟踪”下面的“事件选择”选项卡,里面有一个“显示所有事件”的复选框,打上勾上面就会列出所有可跟踪的事件,然后把自己感兴趣的事件选中。
抄完msdn上面的例子后我电脑出现了下面的问题,
An error occurred while receiving data: '10054(远程主机强迫关闭了一个现有的连接。)'.
还有一个经典的10061(由于目标主机积极拒绝,无法连接)
在网上找了半天资料后,最后解决方法如下:两个主机建一个相同的登录名,密码也要相同,(我直接就设成了管理员用户,不知道普通用户行不行,一会下去测一下。)sql装好后大家基本上都是默认的本地系统用启登录方式,这里就要把登录方式改成你刚才建的那个用户,两台机器都要改。改好了后就把之前建好的服务器终节点重新建一次,并执行以下语句,
create login [机器名\你刚创建的账户] from windows
grant connect on endpoint::你的serverbroker终节点 to [机器名\你刚创建的账户]
就可以两台机器正常通信了,
网上写了好多证书加密的问题,不过我没遇到。
总结一下,
一,首先在自己要运行的多台机器上做单实例的测试,确保测试成功后再做多实例的程序。
二,注意其中用到的一些端口,有时候受防火墙,其它程序的干拢,也容易出问题,这里就要多用telnet工具,不过windows server 2008中要先安装才能使用,我测试的时候直接把防火墙关了,尽量把其它的干扰排除。
三,多用sql server profiler进行跟踪。
好了,以后如果还有什么心得再和大家分享。