[
https://issues.apache.org/jira/browse/AMQ-3925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Rocha updated AMQ-3925:
----------------------------
Attachment: test_details.txt
simple_consumer.cpp
simple_producer.cpp
activemq.xml
> Advisory messages/topics not generated for ActiveMQ.Advisory.FULL or
> ActiveMQ.Advisory.FastProducer.Queue
> ---------------------------------------------------------------------------------------------------------
>
> Key: AMQ-3925
> URL: https://issues.apache.org/jira/browse/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
> Labels: advisory, producer_flow_control
> 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
> ({{c.c.p.v.ms.events}}) 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}},
> {{ActiveMQ.Advisory.Producer.Queue.c.c.p.v.ms.events}} 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
> {{ActiveMQ.Advisory.Producer.Queue.c.c.p.v.ms.events}} 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 triggered.\\
> \\
> 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:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira