using Hyperic HQ 4.6 to monitor ActiveMQ 5.5 - activemq

Does anyone know if I can use Hyperic HQ 4.6 supports ActiveMQ 5.5? I am trying to establish connection between them. I installed Hyperic HQ agent to a server that has ActiveMQ broker and I enabled useJmx on the broker.
But in Hyperic HQ server I can't find ActiveMQ process to monitor. I can see plenty of other services on that particular machine which I can monitor, but not ActiveMQ. How can I fix it?
UPDATE: Ok, I found a JIRA ticket https://jira.hyperic.com/browse/HHQ-4380 and I added 5.5 section to configuration file. Now autodiscovery works fine, but I don't see any statistics about queues and topics. I see information about activemq process in general: CPU usage, memory usage etc. Is it possible to add metrics about queues and topics?
UPDATE 2 Here is an article of how to make visible some ActiveMQ information - http://forums.hyperic.com/jiveforums/thread.jspa?messageID=69458&tstart=0 After uncommenting required lines I started too see infromation about resources: ActiveMQ.Advisory.Consumer.Topic.topic/eventsTopic, ActiveMQ.Advisory.Topic, topic/eventsTopic. But there is no my queues in the list. Help!

The functionality that you are after needs to be defined within an HQ plugin. FuseSource provide a commercially supported version of HQ as part of their subscriptions called Fuse HQ that has ActiveMQ plugins provided out of the box (along with the other products that are part of their offering: Camel, ServiceMix and CXF). With it you can monitor individual queues, topics, connectors as well as whole brokers.

Related

Supported ActiveMQ integrations

I am looking at ActiveMQ (Red Hat AMQ Broker in particular) and trying to find out what integrations/connectors are available apart of the supported protocols (JMS, AMQP, MQTT, OpenWire).
For Kafka, there is e.g. the Confluent hub, https://www.confluent.io/hub/. Is there something similar for ActiveMQ?
I am especially interested in reading & writing messages from
files
databases
HTTP
HDFS
Is there any out-of-the-box or existing 3rd party support, or do I need to implement it?
For a statement about things that Red Hat officially supports you should contact Red Hat directly.
I recommend you look at Apache Camel for 3rd party integrations for ActiveMQ brokers. Camel routes can be deployed directly on both ActiveMQ 5.x and ActiveMQ Artemis brokers. Camel can integrate with files, databases, HTTP, HDFS, JMS, AMQP, MQTT, STOMP, and many more (including Kafka).

Creating AMQ network of broker clusters on JBoss Fuse 6.2, without fabric

I want to create (2) broker clusters connected by network of brokers in JBoss Fuse 6.2; each cluster has 2 master/slave pairs.
It's a small cluster, so we don't intend to use Fabric/Zookeeper; everything will be statically configured, no auto discovery.
Questions
Is it possible to use fabric profiles to build the topology, but
avoid using fabric at runtime?
Can we use Git, or something similar, for centrally managing container config files, again, without fabric?
We tried creating profiles using fabric:mq-create, but the command is not available unless a fabric is first created, which defeats the purpose.
No fabric profiles requires using fabric. You can use git to store files, but you cannot have JBoss Fuse automatic use it such as it does with fabric. You would need to use git manually.
The AMQ broker in JBoss Fuse is just standard Apache ActiveMQ so you can configure it manually/static as a network of brokers. It just not very easy to do if you haven't done that before.
See the JBoss A-MQ documentation as that covers the broker: http://www.jboss.org/products/amq/overview/
for example at: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_A-MQ/6.2/html/Using_Networks_of_Brokers/index.html

Activemq STOMP: detecting and clearing dead nondurable subscribers

I have the following situation that is affecting our ActiveMQ 5.8 broker.
Several Perl scripts on a Windows workstation connected to ActiveMQ using STOMP and subscribed (nondurable) to various topics. The power failed on the Workstation.
Using the Web console, I can see that ActiveMQ still thinks these subscribers are connected, based on the number of consumers shown and on the high temp message store being used. I had set for no producer flow control and set memory limits, so what I believe I am seeing is that ActiveMQ is spooling all messages to disk because it thinks the long dead subscribers are still connected and might eventually read them. It's been 30 days, and ActiveMQ still doesn't realize that these subscribers are no longer connected.
It there a way to configure ActiveMQ so that "undead" subscriber connections like these are eventually cleared automatically?
While the previous answer is basically correct, ActiveMQ does provide solutions for STOMP transports on the Broker to heart-beat connections, even if the client connects with STOMP v1.0. I blogged about this some time ago when ActiveMQ v5.6 was released, see the section on STOMP 1.0 default heartbeat configuration. Another option is to set tcp keepAlive on for the transport and tune your OS to use a shorter default check interval, the default is usually around two hours.
Though Stomp 1.1+ supports Heartbeating, Active MQ currently doesnt support inactive consumer detection for Stomp. (usually achieved with wireFormat.maxInactivityDuration).
Be Careful:
These values are currently not supported but are planned for a later release
ActiveMQ supports it for Openwire though. i,e after the configured duration the consumer would be considered DEAD !

Understanding Apache ActiveMQ

I am confused about the function of Apache ActiveMQ.
I downloaded ActiveMQ from this link.
So I use it this way (environment: Windows 7): I start the bin/activemq.bat, then it works.
My question is: Does this mean I start a server on my machine? When I initialize the ActiveMQConnectionFactory, the broker URL is tcp://localhost:61616. But what if I want my machine to serve as a server and another machine to connect to my server?
Yes, you can use the primary box as a server and have consumers/subscribers running on other boxes (which will need to connect to the server - you will need to specify the server hostname & port for the connection to be established) - once in place, the messages on the server (topic or queue) can be consumed by the clients.
If you one have one producer and one consumer, you can look into using queues - if you have more than one consumer/subscriber, you can look into setting up a topic to which the consumers will subscribe to. Messages need to be inserted to the topic/queue as needed.
You can specify the server information in your code or preferably in the config file.
For reference to topologies:
http://activemq.apache.org/topologies.html
Also, you can choose to persist your messages or not based on your use case. Kaha DB is the preferred route (specially if performance is of concern).
Useful examples:
http://sujitpal.blogspot.com/2007/12/jms-patterns-with-activemq.html
http://vvratha.blogspot.com/2012/05/java-client-to-sendreceive-messages-for.html
Hope it helps.
Apache ActiveMQ ™ is the most popular and powerful open source messaging and Integration Patterns server
& it act like a third party server.
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.
ActiveMQ have the capabilities to send 100 MB single message framework and maintain 1000 concurrent connection simultaneously , for the further information you can check activemq.xml in your documentation.
Further Info at here about the ActiveMQ

activemq embedded broker

In ActiveMQ, there is a concept called BrokerService. Normally for learning purposes, I am starting the broker from the command line using 'activemq' which starts the Broker.
What is the difference between starting the broker this way and using the BrokerService.start();
My guess is that when you use 'activemq' , the broker starts in its own jvm, when you use BrokerService.start(), the broker is using the existing JVM.
Is this correct?
Also, if someone can point to a resource that explains how the broker architecture is implemented in a traditional j2ee server like weblogic, that would be much appreciated.
I am mostly seeking clarification of how a broker can be deployed on a cluster?
Check out the ActiveMQ in action book. That is awesome and explains everything
My blog