While working on a new part of our production system we begun getting the following error message back from the SQL Server.
Server: Msg 8623, Level 16, State 1, Line 1
Internal Query Processor Error: The query processor could not produce a query plan. Contact your primary support provider for more information.
Now I’ve seen this error before, but it was supposed to have been fixed in Cumulative Update 3 for SQL Server 2005 SP 2 but apparently it hasn’t been. I’m currently running build 3239 which is Cumulative Update 7. (I’m running the x64 edition.)
The only difference between my query and what’s documented in the KB article is that I was doing a basic insert statement.
INSERT INTO Table3
There are obviously no complex queries being run here. However I did have relational integrity enabled through foreign keys. I ended up having to remove the foreign key constraints from this table for the insert statement to work correctly.
Hopefully someone finds this info useful.
You can follow along with the Microsoft development teams progress on Microsoft Connect. It’s feedback number 332815.
The service broker queue is where the messages are stored after they are delivered, but before they are processed. They are kind of like tables as you insert data into them (sending the message) and you view the data in them (receiving the message). While tables can have triggers, queues can have what are called activated procedures. If a queue has an activated procedure defined when the message arrives in the queue the queue runs the procedure. No data is passed to the procedure, that procedure still needs to do a receive against the procedure (if that’s what actually needs to be done).
Setting up an activation procedure is a bit tricky as you have to have the queue to create the procedure, and you have to have the procedure to set it as an activation procedure. So what I like to do is create the queue, then the procedure, then alter the queue to setup the activation. This way I can send messages to the queue right away without worrying about getting errors because the procedure doesn’t exist.
Unlike tables, you do not get to define the structure of the queue. All data is stored within the message_body field, so if you need to send more than one value it’s recommend that you use an XML document to send the data. The syntax to create the queue is very simply.
CREATE QUEUE [QueueName]
Because the queue does hold the messages you can define what file group you would like the data within the queue to be stored in. If you have a business need to keep the messages around after processing you can specify the RETENTION keyword setting it to ON. By default queues are enabled when they are created. If you do not want to allow messages to be delivered to the queue specify the STATUS keyword setting it to OFF.
Every Service Broker conversation requires a contract. The contract defines which message type or types will be used, as well as who (sender or receiver) can use which message types. The contract is specified when the conversation is created.
The syntax for creating the contract is pretty straight forward.
CREATE CONTRACT [ContractName]
(MessageType SENT BY ANY)
The SEND BY portion can be used as many times as is needed for each Message Type which is defined on the contract. It must be listed at least once as you can not have a contract with no message types. You can specify that the Message Type be used by the INITIATOR, the TARGET or by both (by using the ANY keyword).
A more complex Contract would look something like this.
CREATE CONTRACT [ContractName]
(MessageType_I SENT BY INITIATOR,
MessageType_T SENT BY TARGET)
On 6/4/08 at noon PST (3pm EST) I’ll be presenting a MSDN Geek Speak session entitled “Spatial Data in SQL Server 2008 with Denny Cherry”. In the session we will explore the new support for spatial data in Microsoft SQL Server 2008. I will also be talking about managing huge SQL Server databases, and answer your questions about SQL Server. The Microsoft hosts will be Mike Benkovich and Mithun Dhar.
It’s a very free form session where we rely on Audience Q&A to really drive the direction of the session.
Here is the URL to register for the session. Just click the URL and register, you’ll get an email reminder, etc from the Microsoft Events system.
I hope everyone can attend. I hope to make my first geekSpeak a huge success.
Watch our webcast featuring Meagan Longoria, Kevin Kline and Denny Cherry as they explore how to make communications clearer, especially during these stressful situations by improving your report visualization techniques.
As Microsoft MVP’s and Partners as well as VMware experts, we are summoned by companies all over the world to fine-tune and problem-solve the most difficult architecture, infrastructure and network challenges.
And sometimes we’re asked to share what we did, at events like Microsoft’s PASS Summit 2015.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.