activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frank Baxter <fr...@baxres.org>
Subject Re: Slow consumer problem
Date Thu, 08 Jun 2006 01:54:28 GMT

I verified that the messages are persistent, but I'm still not having much
luck finding the problem.  I didn't try building with the patch yet, but as
a short term work around I just turned off journaling in the configuration.
Even with journalling off, I still have the problem.

FYI, here's a sample message from the debug:

21:33:19,099 DEBUG [ActiveMQSession] Sending message: ActiveMQObjectMessage
{commandId = 0, responseRequired = false, messageId =
ID:gorbash-55551-1149730299753-3:1:8:1:1, originalDestination = null,
originalTransactionId = null, producerId =
ID:gorbash-55551-1149730299753-3:1:8:1, destination = queue://checkedinQ,
transactionId = null, expiration = 0, timestamp = 1149730399091, arrival =
0, correlationId = null, replyTo = null, persistent = true, type = null,
priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null,
compressed = false, userID = null, content =
org.apache.activeio.packet.ByteSequence@a5ba31, marshalledProperties = null,
dataStructure = null, redeliveryCounter = 0, size = 0, properties = null,
readOnlyProperties = true, readOnlyBody = true}

I don't know if makes a difference, but I'm using the AMQ RAR in Jboss to
start a VM broker.  In the code I then do this:

     theFactory = new ActiveMQConnectionFactory("vm://localhost");

to create the factory, then this to create and start my connections:

      myConnection = (ActiveMQConnection)
theFactory.createQueueConnection();
      myConnection.setClientID(name);
      myConnection.start();

Everything seems to work fine as long as I don't have slow consumers.  Once
the consumers slow down or stop, the producers grind to a halt.

Is it possible I have 2 vm://localhost brokers?  i.e. I can see one created
when the RAR starts, but it almost looks like it's starting another one when
I call new ActiveMQConnectionFactory("vm://localhost").  Is that possible or
will it automatically use the broker created from the RAR?  If it is
creating another one, how do I get it to use the broker I configured in the
RAR?

Just messing with the factory configuration I found that when I call
setObjectMessageSerializationDefered(true) on the factory, the producers run
without a problem (I was able to load up 500K messages).  However, later,
when I restart the consumers to read the messages, they all come back as
null objects to the consumers.  So I guess deferring it isn't good when you
have persistence on?  As a side note, is there a place where all those
factory configuration options are documented?  There isn't anything in the
Javadocs and I couldn't find the info elsewhere yet.

Any suggestions on what to try next? 

--
View this message in context: http://www.nabble.com/Slow-consumer-problem-t1733329.html#a4764635
Sent from the ActiveMQ - User forum at Nabble.com.


Mime
View raw message