[rabbitmq-discuss] Error: RabbitMQ.Client.ConnectionFactory.cs - "Only one usage of each socket address (protocol/network address/port) is normally permitted"
Patrick Kenney
pekenney at gmail.com
Tue Sep 1 15:11:30 BST 2009
am I not already already using the same socket?
public void PublishMessage(string pstrExchangeName, string
pstrReturnKey, string pstrXml)
{
try
{
using (IConnection conn = new
ConnectionFactory().CreateConnection("localhost:5672"))
{
using (IModel ch = conn.CreateModel())
{
IBasicProperties props = ch.CreateBasicProperties();
IStreamMessageBuilder b = new
StreamMessageBuilder(ch);
byte[] bytes = Encoding.UTF8.GetBytes(pstrXml);
b.WriteBytes(bytes);
ch.BasicPublish(pstrExchangeName, pstrReturnKey,
null, bytes);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
and from: http://www.rabbitmq.com/faq.html
<snip>
Q. How fast is RabbitMQ in persistent mode?
A. From our testing, we expect easily-achievable throughputs of 4000
persistent, non-transacted one-kilobyte messages per second (Intel Pentium
D, 2.8GHz, dual core, gigabit ethernet) from a single RabbitMQ broker node
writing to a single spindle.
</snip>
I am not even remotely seeing this kind of performance on better then twice
the hardware...
am i missing something ?
thanks in advance.
re:
On Tue, Sep 1, 2009 at 4:10 AM, Tony Garnock-Jones <tonyg at lshift.net> wrote:
> Patrick Kenney wrote:
> > seemed to closely resemble the condition, as I am sending 4000 copies of
> > the same message to the following method...
>
> Your operating system is probably running out of sockets. Try holding a
> single connection open and reusing it for all the deliveries, rather
> than opening a connection for each delivery. Connections are relatively
> heavyweight compared to calls to BasicPublish.
>
> > I am thinking I am hitting some kind of configurable threshold in the
> > RabbitMQ Client and or RabbitMQ ServiceModel... but have been unable
> > thus far to pin it down...
>
> It is more likely to be an operating system (or TCP, depending on how
> you look at it) limitation. Neither the C# client, the WCF binding, nor
> the RabbitMQ server have any preconfigured limitations of this kind.
>
> > Another interesting thing is that this exact code works unchanged on a
> > much older, slower Pentium IV 2ghz, 2gig ram on windows xp pro vs.
> > windows server 2003 enterprise sp2... quad core xeon, 4gig, etc...
>
> If it is socket exhaustion you're seeing, one possible explanation for
> the slower machine working better is that it gives the TCP timeouts
> longer to run, so sockets are getting recycled "faster" from the
> point-of-view of the slower socket-requiring code.
>
> Regards,
> Tony
> --
> [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211
> [][] LShift Ltd | Tel: +44 (0)20 7729 7060
> [] [] http://www.lshift.net/ | Email: tonyg at lshift.net
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090901/3f6a49a5/attachment.htm
More information about the rabbitmq-discuss
mailing list