What happens if the RECEIVE end point do not end conversations when it get the END DIALOG message?

Will it eventually slow down SqlServer as it has to keep track of a lot of conversations?

有帮助吗?

解决方案

Each conversation has a lifetime timer. If you did not specify the lifetime at BEGIN DIALOG time then they get the default lifetime of ~68 years (2147483647 seconds). Unfinished endpoints have to be kept around for the entire lifetime. This consumes rows in sys.conversation_endpoints so eventually your disk will fill up. Not only this, but also each active conversation endpoint requires memory (may be backed up by tempdb) and at database startup all conversations have to be scanned to determine any pending action (timer, lifetime).

All in all there simply is no reason no to issue your side of END DIALOG.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top