Error Handling for Service Broker
Error handling in an application that uses Service Broker has two distinct aspects. First, the application must handle errors raised by the Database Engine through the normal Transact-SQL error mechanism. Second, an application that uses Service Broker must handle asynchronous errors that arrive as messages on the queue for the service. In either case, an application must not permanently remove a message from a queue without acting on the message, and the application must always hold a conversation group lock before updating state that is related to the conversation group.