[rabbitmq-discuss] error: "Pipelining of requests forbidden" on C# client
jerryk at vmware.com
Thu Dec 16 17:54:09 GMT 2010
Absolutely! A self-contained snippet of code that reproduces a potential problem is always a valuable thing for us to have... Please pass one on if you have one.
On Dec 15, 2010, at 10:02 PM, Steven Taylor wrote:
you found the same pdf that I did.
I'm not knowingly using RPC continuation at this stage, unless using the Subscription pattern falls under this category. Also, I am careful to use a different channel for each subscription or basic channe that lives on the same thread.
Would you like me to get in touch if I can repeat the error with a test case?
On 15 December 2010 16:56, Jerry Kuch <jerryk at vmware.com<mailto:jerryk at vmware.com>> wrote:
Steven: Is there any chance that the channel instance on which you're doing this work is being used by more than one thread?
In the .NET client one expects this error when something tries to queue up more than one RPC continuation in the internal continuation queue at a time. The Rabbit .NET client user guide talks about such thread safety issues:
in some detail in a couple of spots.
The Rabbit Java client has similar restrictions. With both the Java and .NET clients, it makes sense to structure your application so that a unique thread owns a given instance of a non-thread safe Rabbit client resource (e.g. Channels in the Java client, IModel in the .NET).
On Dec 15, 2010, at 8:28 AM, Steven Taylor wrote:
Got this error: "Pipelining of requests forbidden"
Found a reference in the documentation (see below). As part of the "I assert queue exists" logic, I was (re-)declaring the exhange. Is that wrong?
Could it be a threading issue?
s being thrown from a method in class RpcContinuationQueue
"Pipelining of requests forbidden" (which occurs in situations where
more than one AMQP RPC, such as
ExchangeDeclare, is run simultaneously).
More information about the rabbitmq-discuss