在处理service broker 的时候碰到一个问题,不知道大家有没有遇到过。
在配置好server to server 的消息传输后,消息可以正常发送和接受。 但是在目标服务器上,当我用上Queue激活Procedure的时候,SQLSERVER中应该是后台的队列监视进程会导致cpu 100%。 如果用双核的cpu的话是50%,一旦sqlserver中设置一个cpu的话,那么会导致这个cpu 100%,按道理这个对cpu要求不至于这么高才是。 而且如果我不采用激活的方式 自己用脚本执行循环接收消息的话,并发跑10个都不会有这种问题。
在配置好server to server 的消息传输后,消息可以正常发送和接受。 但是在目标服务器上,当我用上Queue激活Procedure的时候,SQLSERVER中应该是后台的队列监视进程会导致cpu 100%。 如果用双核的cpu的话是50%,一旦sqlserver中设置一个cpu的话,那么会导致这个cpu 100%,按道理这个对cpu要求不至于这么高才是。 而且如果我不采用激活的方式 自己用脚本执行循环接收消息的话,并发跑10个都不会有这种问题。
http://social.technet.microsoft.com/Forums/en-US/sqlservicebroker/threads
唉,这样的话就不敢用它自带的激活存储过程了。
但是还是不太明白为什么会造成这样。