You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "John Rocha (JIRA)" <ji...@apache.org> on 2012/07/13 03:50:34 UTC

[jira] [Updated] (AMQ-3925) Advisory messages/topics not generated for ActiveMQ.Advisory.FULL or ActiveMQ.Advisory.FastProducer.Queue

     [ 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