To follow-up on this.

I added the receipt header on each send() and now all messages are received
by the broker. Producer Flow Control remains on, and the memory limit
remains at 5MB (both settings unchanged).

I will therefore speculate that the broker was dropping messages and was
unable to inform the STOMP client. I did not see anything in particular
logged aside from DEBUG and INFO messages (which I assume would be too low
for this behaviour).

Note that the 'persistent' header has the string value 'true' and messages
are marked as persistent in the AMQ web console.

So AMQ is dropping messages and has no way of telling the client without a
receipt header which sounds like the kind of situation that should be
documented alongside the SEND command.

James

On 18 August 2011 16:33, Dejan Bosanac <de...@nighttale.net> wrote:

> Are you using Stomp receipts to get the confirmation from the broker that
> message has been successfully received? That might help. Also try turning
> off producer flow control and give enough memory for the destinations.
>
>
> Regards
> --
> Dejan Bosanac - http://twitter.com/dejanb
> -----------------
> The experts in open source integration and messaging -
> http://fusesource.com
> ActiveMQ in Action - http://www.manning.com/snyder/
> Blog - http://www.nighttale.net
>
>
> On Thu, Aug 18, 2011 at 5:16 PM, James Green <james.mk.gr...@gmail.com
> >wrote:
>
> > We have a PHP (STOMP-connected) application that has just read 977 small
> > packets from one queue (A), processed them, and sent 977 similar messages
> > to
> > a new queue (B).
> >
> > Except the broker tells me the queue (B) has 884 messages. There is
> nothing
> > dequeuing messages on queue (B).
> >
> > This has occurred on our test box - AMQ 5.5.0 with debugging switched on.
> > The stomp logs show that 977 messages were received to the queue (B).
> >
> > Thinking this may be a broken counter, I constructed a test script that
> > read
> > the messages back. No doubt, only 884 messages received from queue (B).
> >
> > Somewhere between logging the STOMP packet received and it being stored
> for
> > retrieval by the broker, 93 messages went missing.
> >
> > There is no expiration being set, and the messages are set to persist.
> > These
> > are, for us, critical messages.
> >
> > The PHP Stomp extension (from pecl) reported the send() as returning
> > boolean
> > true. It all looks good from our app's point-of-view.
> >
> > This is all running on Ubuntu 11.04:
> > java version "1.6.0_22"
> > OpenJDK Runtime Environment (IcedTea6 1.10.2)
> > (6b22-1.10.2-0ubuntu1~11.04.1)
> > OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)
> >
> > Any ideas how to debug this?
> >
> > The following is our current log4j.properties file. We have the logs
> saved.
> >
> > #
> > # This file controls most of the logging in ActiveMQ which is mainly
> based
> > around
> > # the commons logging API.
> > #
> > #log4j.rootLogger=INFO, console, logfile
> > #log4j.logger.org.apache.activemq.spring=WARN
> > #log4j.logger.org.apache.activemq.web.handler=WARN
> > #log4j.logger.org.springframework=WARN
> > #log4j.logger.org.apache.xbean=WARN
> > #log4j.logger.org.apache.camel=ERROR
> >
> > # When debugging or reporting problems to the ActiveMQ team,
> > # comment out the above lines and uncomment the next.
> >
> > log4j.rootLogger=DEBUG, logfile, console
> >
> > # Or for more fine grained debug logging uncomment one of these
> > #log4j.logger.org.apache.activemq=DEBUG
> > #log4j.logger.org.apache.camel=DEBUG
> >
> > # Console appender
> > log4j.appender.console=org.apache.log4j.ConsoleAppender
> > log4j.appender.console.layout=org.apache.log4j.PatternLayout
> > log4j.appender.console.layout.ConversionPattern=%5p | %m%n
> > log4j.appender.console.threshold=INFO
> >
> > # File appender
> > log4j.appender.logfile=org.apache.log4j.RollingFileAppender
> > log4j.appender.logfile.file=${activemq.base}/data/activemq.log
> > log4j.appender.logfile.maxFileSize=1024KB
> > log4j.appender.logfile.maxBackupIndex=5
> > log4j.appender.logfile.append=true
> > log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
> > log4j.appender.logfile.layout.ConversionPattern=%d | %-5p | %m | %c |
> %t%n
> >
> > log4j.appender.stomp=org.apache.log4j.RollingFileAppender
> > log4j.appender.stomp.file=${activemq.base}/data/stomp.log
> > log4j.appender.stomp.maxFileSize=1024KB
> > log4j.appender.stomp.maxBackupIndex=5
> > log4j.appender.stomp.append=true
> > log4j.appender.stomp.layout=org.apache.log4j.PatternLayout
> > log4j.appender.stomp.layout.ConversionPattern=%d [%-15.15t] %-5p
> > %-30.30c{1}
> > - %m%n
> >
> > log4j.logger.org.apache.activemq.transport.stomp=TRACE, stomp
> > log4j.additivity.org.apache.activemq.transport.stomp=false
> >
>

Reply via email to