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