activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Rocha (JIRA)" <>
Subject [jira] [Created] (AMQ-3925) Advisory messages/topics not generated for ActiveMQ.Advisory.FULL or ActiveMQ.Advisory.FastProducer.Queue
Date Fri, 13 Jul 2012 01:50:33 GMT
John Rocha created AMQ-3925:

             Summary: Advisory messages/topics not generated for ActiveMQ.Advisory.FULL or
                 Key: AMQ-3925
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.6.0
         Environment: activemq broker: 5.6.0
AMQ-CPP client:  3.4.0
OS: Linux

java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)

            Reporter: John Rocha
         Attachments: activemq.xml, simple_consumer.cpp, simple_producer.cpp, test_details.txt

Two problems relating to advisory messages

# Advisory messages and topics are not being created for {{ActiveMQ.Advisory.FULL}} or {{ActiveMQ.Advisory.FastProducer.\{Queue,Topic}}}\\
# The {{PolicyEntry}} property for {{ActiveMQ.Advisory.FastProducer.\{Queue,Topic}}} is misspelled
as advis{color:red}d{color}oryForFastProducers.\\
Note that it is spelled with an extra 'd' (advisDory....) Moreover, the configuration XML
expects the 'd' in this name. I tried spelling it correctly and activemq 5.6.0 failed when
I used the corrected name of advisoryForFastProducers.\\

I have customized the {{{color:blue}activemq.xml{color}}} configuration file so that advisory
support is enabled, and I added a policy entry to turn on {{ActiveMQ.Advisory.FULL}} and {{ActiveMQ.Advisory.FastProducer.Queue}}.
Moreover, {{systemUsage}} has been configured to send an exception to the producer if memory,
storage or temp usage exceeds certain amounts.

I have attached my {{{color:blue}activemq.xml{color}}} file.

I have expanded the {{{color:blue}simple_producer.cpp{color}}} example file to use the AMQ
client interface that our product has. Essentially it creates a connection and all the scaffolding
to send messages to the broker. Then it sits in a loop and sends messages. It has some parameters
to allow control such as exiting on the first exception (such as when the broker sends its
flow control exception when the producer causes the broker to reach it's configured limits,
or limiting the number of messages to send).

This is attached as the {{{color:blue}simple_producer.cpp{color}}} file.

I have expanded the {{{color:blue}simple_consumer.cpp{color}}} example file to display message/queue
names and work with advisory messages too. It has options to allow the user to indicate which
queues/topics to connect too, where the default is the queues that our product uses.

This is attached as the {{{color:blue}simple_consumer.cpp{color}}} file.

The test/problem are as follows:

# Start the broker in console mode, validating that no errors occurred, it's current system
usage limit configuration is small enough that it doesn't take long to reach the limit.\\
# Start the *producer* so that it will send messages to it's default queue ({{}})
and terminate as soon as the broker sends it a flow control exception.\\
{{env EX_LIMIT=1 ./simple_producer.exe}}\\
This will run for 2-5 minutes. It usually gets an exception around 25,223 messages.\\
# When the producer terminates, use the WebConsole to view the broker, navigating to the Topics
screen and we see the Advisory topics that are created.\\
There is only: {{ActiveMQ.Advisory.Connection}}, {{}}
and {{ActiveMQ.Advisory.Queue}}.\\
Since the producer was terminated due to flow control caused by the disk/memory usage limit
being reached, we should also see the advisory queues for {{ActiveMQ.Advisory.FULL}} and {{ActiveMQ.Advisory.FastProducer.Queue}}.\\
# Start the *consumer* so that it will monitor all advisory topics.\\
{{env DEST="ActiveMQ.Advisory.>" TOPIC=1 simple_consumer.exe}}\\
# Refresh the WebConsole screen. Each of the advisory topics will now show a consumer.\\
# Use the producer to send in one message. The broker is at its usage limits so that send
will be flow controlled, causing an exception to be sent to the producer.\\
{{env MSG_LIMIT=1 simple_producer.exe}}\\
The consumer will now accept and display the advisory messages it has received. There will
be two for {{ActiveMQ.Advisory.Connection}} for the producers connection start and stop, and
two for the {{}} as the producerCount goes
to 1 and then to zero as the producer connects and disconnects to the topic.\\
There is no FastConsumer or FULL advisory generated even though their conditions have been

Detailed test output for the summary listed above is attached.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message