[rabbitmq-discuss] persistence
Lars Bachmann
lars.bachmann at s2002.tu-chemnitz.de
Wed May 21 10:52:12 BST 2008
Mathias,
after some days of vacation Im going on with rabbitmq. As i wrote last
time the reason why the messages were not sent was because of an
already closed channel.
But still Im not happy with all behaviour and having different issues.
I delayed the time before closing a channel up to 50 seconds. In this
case i was able to send about 150000 messages correctly. If I try to
send more messages I also have to increase the delay time. But if the
communication between producer and broker takes too long i get an
"java.net.SocketException". Here the stacktrace:
hit IOException in Producer: trace follows
java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at
com.rabbitmq.client.impl.SocketFrameHandler.writeFrame(SocketFrameHandler.java:156)
at
com.rabbitmq.client.impl.AMQConnection.writeFrame(AMQConnection.java:297)
at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:190)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:369)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:350)
at
com.rabbitmq.test.ConcurrentRabbitMQProducerTest.runIt(ConcurrentRabbitMQProducerTest.java:100)
at
com.rabbitmq.test.ConcurrentRabbitMQProducerTest.run(ConcurrentRabbitMQProducerTest.java:71)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-1" java.lang.RuntimeException:
java.net.SocketException: Connection reset
at
com.rabbitmq.test.ConcurrentRabbitMQProducerTest.run(ConcurrentRabbitMQProducerTest.java:75)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at
com.rabbitmq.client.impl.SocketFrameHandler.writeFrame(SocketFrameHandler.java:156)
at
com.rabbitmq.client.impl.AMQConnection.writeFrame(AMQConnection.java:297)
at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:190)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:369)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:350)
at
com.rabbitmq.test.ConcurrentRabbitMQProducerTest.runIt(ConcurrentRabbitMQProducerTest.java:100)
at
com.rabbitmq.test.ConcurrentRabbitMQProducerTest.run(ConcurrentRabbitMQProducerTest.java:71)
After this exception also the broker dont respond anymore. The process
is still running but i cant connect with an erlang shell to the
broker. Very strange behaviour. All I can do in this situation is to
restart the broker ...
My System: Im running rabbitmq 1.3. on a gentoo linux. In the log file
is nothing unusal. (How can I actually switch the log level to "debug"
?)
Lars
> Lars,
>
> Matthias Radestock wrote:
>> Lars Bachmann wrote:
>>> by now i tried only 1) and it definitly has some affect. I was
>>> able to send 70000, 100000 and 150000 messages and all were
>>> received by the broker. When i wanted to send 200000 i got a
>>> socketconnection exception.
>>
>> Thanks for running this experiment. These results give me something
>> to go on.
>
> I think I've found the problem, though if my analysis is correct I
> would have expected an error in the server logs. Are you sure there is
> nothing unusual in there? Perhaps you could send me the log output
> recorded by the server when running your test program (in its original
> form, i.e. without the delay in closing the channel).
>
>
> Matthias.
More information about the rabbitmq-discuss
mailing list