Archive › Documentation › SiteIndex
Archived pageSiteIndex
Space Index
|
|||||||||||||||||||||||||||||||
0-94.0 RC 1 GuideActiveMQ 4.0RC1 Release Guide Release Manager Hiram Chirino Special issues We are still in the Incubator so need to ensure that all the proper disclaimers are in place and that the artifacts are all properly named incubatoractivemq. Open Issues Holding up the Release ...
|
AActivation Spec PropertiesAn Activation Spec is used to configure the message delivery to an MDB. The ejbjar.xml deployment descriptor needs to include a New and Noteworthy ActiveMQ is a high performance Message Broker and JMS 1.1 implementation with full support for transactions, XA, JMS and JCA. ActiveMQ has the following features... support for various transports URI Protocols such as inVM, TCP, SSL, NIO, UDP ...
ActiveMQ 1.1 Release
New and Noteworthy This release represents a major increase in functionality; the new features in this release are: distributed queues and topics and clusters of message brokers autoreconnection of clients across a cluster of brokers support for high performance nondurable queues wildcard support on queues (as well ...
ActiveMQ 1.2 Release
New and Noteworthy This release represents a major increase in functionality; the new features in this release are: heaps of bug fixes and new test cases Download Here Download Description activemqrelease1.2.zip http://dist.codehaus.org/activemq/distributions/activemqrelease1.2.zip Binary Distribution in zip package ...
ActiveMQ 1.3 Release
New and Noteworthy This release represents a major increase in functionality; the new features in this release are: heaps of bug fixes and new test cases Download Here Download Description activemqrelease1.3.zip http://dist.codehaus.org/activemq/distributions/activemqrelease1.3.zip Binary Distribution in zip package ...
ActiveMQ 1.4 Release
New and Noteworthy This release represents a major increase in functionality; the new features in this release are: heaps of bug fixes and new test cases Download Here Download Description activemqrelease1.4.zip http://dist.codehaus.org/activemq/distributions/activemqrelease1.4.zip Binary Distribution in zip package ...
ActiveMQ 1.5 Release
New and Noteworthy This release is mostly a bug fix release: A few bug fixes for J2EE compliance Download Here Download Description activemqrelease1.5.zip http://dist.codehaus.org/activemq/distributions/activemqrelease1.5.zip Binary Distribution in zip package activemqrelease1.5src.zip http://dist.codehaus.org/activemq ...
ActiveMQ 2.0 Release
New and Noteworthy This is a major release including lots of new functionality and performance improvements: This release includes advisory messages so you can listen to the state of the message fabric optimised wire format for higher throughput improved persistence engine and closer ...
ActiveMQ 2.1 Release
New and Noteworthy This release includes full support for the high performance journal. Our default persistence mechanism is now the journal for short term persistence and then JDBC (via Apache Derby by default) for long term storage. The journal is regularly checkpointed with the database ...
ActiveMQ 3 Networks of Brokers
provide massive scalability of a large messaging fabric you typically want to allow many brokers to be connected together into a network so that you can have as many clients as you wish all logically connected together and running as many message ...
ActiveMQ 3 Transport Configurations
Some of the transports support configuration, such as timeout values, maximum retry count and so forth. To configure the transports you can use the URI query syntax. e.g. tcp://foo:1234?asyncSend=true&socketBufferSize=10000 If you are using a list of URLs ...
ActiveMQ 3.0 Release
New and Noteworthy This new release includes the following a new 'discovery' transport protocol URI Protocols for a pure clientonly peer network a self discovering cluster which automatically finds the brokers available on the network (as opposed to the 'peer' protocol which is a complete ...
ActiveMQ 3.1 Release
New and Noteworthy This new release includes the following New Stomp http://stomp.codehaus.org/ support to make it easy to create cross language clients such as for Ruby or Perl etc. (Python, C and .Net coming soon) XPath based selectors and demand based ...
ActiveMQ 3.2 Release
New and Noteworthy This new release includes the following Improved Stomp http://stomp.codehaus.org/ 1.0 support to make it easy to create cross language clients such as for C, C#, Python, Ruby, Perl and Pike. Ajax support now uses OpenRico as the default ...
ActiveMQ 3.2.1 Release
New and Noteworthy This release is a bug fix release and users of previous versions of 3.2 are encouraged to upgrade to this version. Download Here Download Description activemq3.2.1.zip http://dist.codehaus.org/activemq/distributions/activemq3.2.1.zip Binary Distribution in zip package activemq3.2.1src.zip http://dist.codehaus.org/activemq ...
ActiveMQ 3.2.2 Release
New and Noteworthy This release is a bug fix release and users of previous versions of 3.2 are encouraged to upgrade to this version. Download Here Download Description activemq3.2.2.zip http://dist.codehaus.org/activemq/distributions/activemq3.2.2.zip Binary Distribution in zip package activemq3.2.2src.zip http://dist.codehaus.org/activemq ...
ActiveMQ 4 Connection URIs
Transport URIs One of the first kinds of URI you are like to use is a transport URI to connect to a broker using a kind of transport. Generally TCP or VM are the first transports you'll use. The VM Transport The VM transport allows clients to connect ...
ActiveMQ 4.0 M4 Release
New and Noteworthy This is the first milestone release of 4.x since the move to Apache so the package names have changed from org.activemq to org.apache.activemq. For a full list see the Changes in 4.0. This release of ActiveMQ includes a large number of new features Changes ...
ActiveMQ 4.0 RC2 Release
New and Noteworthy This is the second release candiate release of 4.0. This release of ActiveMQ includes a large number of new features Changes in 4.0 such as MasterSlave and Message Groups together with numerous bug fixes. Warnings When upgrading from a previous release you ...
ActiveMQ 4.0 Release
New and Noteworthy This is the 4.0 release of Apache ActiveMQ. This release of Apache ActiveMQ includes a large number of new features Changes in 4.0 such as MasterSlave and Message Groups together with numerous bug fixes. Warnings When upgrading from a previous release you ...
ActiveMQ 4.0.1 Release
You are previewing the release page for unreleased version of ActiveMQ. The download links on the page below will not work until it is offically released. Until the release is approved you could try the current build: http://people.apache.org/chirino/incubatoractivemq4.0.1RC1/maven1/incubatoractivemq/distributions/ > New and Noteworthy ...
ActiveMQ 4.0.2 Release
New and Noteworthy This is a minor bug fix release. All previous installations of Apache ActiveMQ 4.0.1 are recommended to upgrade to this release. Download Here Description Download Link PGP Signature file of download Binary for Windows incubatoractivemq4.0.2.zip http://people.apache.org/repository ...
ActiveMQ 4.1.0 Release
New and Noteworthy This is release contains several major enhancements such as: Virtual Destinations JDBC based Master/Slave locking XMPP/Jabber Support ActiveMQ can now send and receive message from a XMPP network. enhanced SSL support Improved ...
ActiveMQ C Development
ActiveMQ CPP Development Page This page documents current and planned development of ActiveMQ CPP. The table below lists development tasks and their current status Development Activeity\\ Status \\ Openwire Support\\ inprogress \\ Openwire Support This task adds ...
ActiveMQ C++ Clients
currently two primary options for C\ clients to ActiveMQ one more JMSlike and the other less JMSlike. C\ Client \\ Description ActiveMQCPP \\ Uses the CMS API, which is an easytouse JMS 1.1like API. Architecture supports pluggable ...
ActiveMQ Command Line Tools Reference
Command Line Tools activemq #activemq \ runs an activemq broker shutdown #shutdown \ shutdowns an activemq broker list #list \ lists all running brokers in the specified JMX context query #query \ queries the JMX context for broker ...
ActiveMQ CPP 1.0 Release
New and Noteworthy This is our first official release of ActiveMQ CPP. Some of the included features are: CMS a JMSlike API Implementation of the Stomp protocol (compatable with AMQ broker 4.0.2 and later) Extensible architecture for supporting additional messaging protocols (focus on OpenWire ...
ActiveMQ CPP 1.1 Release
You are previewing the release page for unreleased version of ActiveMQ CPP. The download links on the page below may not work until it is officially released. Until the release is approved you could try the current source bundle: http://people.apache.org/nmittler/incubatoractivemqcpp1.1src.zip ...
ActiveMQ CPP Overview
Overview of ActiveMQCPP In addition to providing a JMS 1.1like API, ActiveMQCPP also provides a robust set of classes that support things such as threading, I/O, sockets, etc. You may find many of these classes useful, such as the "synchronized" macro that let's you ...
ActiveMQ CPP roadmap
ActiveMQ CPP Roadmap 0.0.1 (Initial release) Features: stomp protocol (requies AMQ 4.0.1 or later for the added request/response ids) JMS 1.1like API consumers, producers, etc. closely follows what was done in the .NET client. support ...
ActiveMQ CPP Stomp
ActiveMQCPP Stomp Implementation Stomp is a simple textbased protocol supported by the ActiveMQ Broker that allows communication from a variety of clients (e.g. C, Java, .NET, Ruby, Python, etc). If you'd like to learn more about the stomp protocol, go ...
ActiveMQ Performance Module Users Manual
Running Maven 2 Performance Test This Maven 2 http://maven.apache.org plugin allows you to run performance tests easily using the Maven command line or run tests automatically in Continuum http://maven.apache.org/continuum/ Prerequisites Currently we ...
activemq.dtd
We support a custom Xml Configuration mechanism for configuring a Message Broker instance. To provide tools and IDEs with an easy way of editing the XML as well as providing some handy documentation, we provide our own activemq.dtd http://svn.activemq.org ...
ActiveSoap
idea is to provide a really simple & lightweight SOAP stack which can be extended & connected to any transport and binding technology. Pluggable transports With ActiveMQ we've got most common transports covered (TCP, SSL, UDP, multicast, JGroups, JRMS ...
ActiveSpace
Note that the ActiveSpace documentation has now has moved to its own wiki http://docs.codehaus.org/display/AS/Home
Advisory Message
ActiveMQ supports advisory messages which allows you to watch the system using regular JMS messages. Currently we have advisory messages that support consumers, producers and connections starting and stopping temporary destinations being created and destroyed messages ...
Advisory Support in ActiveMQ 3
users of Apache ActiveMQ 4.0 or later please see Advisory Message. In previous 3.x versions the following is supported: The destination string constants are available in ActiveMQDestination http://activemq.codehaus.org/maven/apidocs/org/activemq/message/ActiveMQDestination.html ActiveMQDestination.CONSUMERADVISORYPREFIX ActiveMQDestination.PRODUCERADVISORYPREFIX ActiveMQDestination.CONNECTIONADVISORYPREFIX ...
Ajax
Introduction ActiveMQ supports Ajax http://en.wikipedia.org/wiki/Ajax%28programming%29 which is an Asychronous Javascript And Xml mechanism for real time web applications. Ajax allows a regular DHTML client (with JavaScript and a modern version 5 or later ...
AMQP
AMQP The AMQP protocol http://www.iona.com/opensource/amqp/ is being developed to define a standard wire level protocol for messaging. From 4.1 onwards ActiveMQ comes with an optional library, activemqqpid for communicating with AMQP clients. To create the connector in activemq.xml ...
Are destinations case sensitive
seems to be no consensus on whether JMS providers should use case insensitive destination names. Since most names in Java & J2EE are case sensitive (class names, JNDi names, file names (on many unix operating systems), URIs and URLs ...
Are messages read directly from the journal
Kind of. The messages can be loaded directly from the journal (in case the message was removed swapped out of memory). But the journal cannot be used to to recover a durable subscription (he does not keep an ordered index of messages per durable sub). So ...
Articles
Articles on Messaging and JMS Asynchronous calls and callbacks with Lingo and ActiveMQ http://jroller.com/page/sjivan?entry=asynchronouscallsandcallbacksusing by Sanjiv Jivan Magic with JMS, MDBs, and ActiveMQ in Geronimo http://www128.ibm.com/developerworks/opensource/library/osagjmsbeans/ by Sing Li Message ...
Async Sends
Background ActiveMQ supports sending messages to a broker in sync or async mode. The mode used has a huge impact in the latency of the send call. Since latency is typically a huge factor in the throughput that can achieved by producer, using async sends can ...
Axis Support
ActiveMQ supports Apache Axis http://ws.apache.org/axis/ out of the box. Just add the required jars Initial Configuration to your classpath and you should be able to use the JMS transport support inside Axis to send and receive messages using ...
|
||||||||||||||||||||||||||||||
BBannertable cellpadding="0" cellspacing="0" |
Becoming a committer
|
page details how to become a committer. First of all you need to get involved and Contribute Contributing via the mail list, forum, issue tracker and submit patches. Once you're contributing and your work is good, one of our Team ...
Benchmark Tests
couple of simple benchmarking tools in the org.activemq.benchmark package in the unit test area. Right now they are quite simple\! If you want a more comprehensive performance testing mechanism try the JMeter Performance Tests Running the benchmark All of the following commands need ...
Broker Configuration URI
Overview An ActiveMQ broker can be extensivly configured using a single configuration URI. We recomend that user use the Xml Configuration xml file to configure AcitveMQ brokers. The URI form of configuring broker is only useful for configuring simple ...
Building
ActiveMQ uses Maven http://maven.apache.org/ as its build tool. If you don't fancy using Maven you can use your IDE directly or Download a distribution or JAR. Getting started Download and install Maven http://maven.apache.org/start ...
Building CSharp Code
Building ActiveMQ.Net using Maven 2 You can use the Maven C# plugin http://mavencsharp.javaforge.com/ to build the code if you have Maven 2.0.2 or later installed. First you need to tell maven the location of the .NET enviorment and where ...
CC Integrationvery common for an organisation to have lots of legacy C code which needs integration into the message bus. The current available solutions are use the OpenWire C Client which is only available in ActiveMQ 4.x or later. we are working on the OpenWire ...
C integration scenarios
One way and RPC with C services Its common for the C services to be the back end services. The 2 common use cases are we send a message oneway to a C service we send a message to a Cservice and wait for the result, then reply back ...
Can I get commercial support
Absolutely, see our Support page for more details
Can I send and receive messages concurrently on one JMS Connection
Absolutely! Strictly speaking each producer being used concurrently should be using a separate session (though in ActiveMQ it'll probably work fine if you just use one session for all publishers). For concurrent consumption create a session per ...
Can I send really large files over ActiveMQ
answer is yes. See the JMS Streams support for details. Normally the JMS API expects the entire JMS messsage to reside in the client side memory; however using JMS Streams allows you to send and receive arbitrarily large files with very ...
Can two brokers share the same database
short answer is no; 2 brokers cannot operate on the same sets of database tables concurrently. ActiveMQ is designed for high performance so we want to minimise the amount of pessimistic locking; each broker is designed to work with its own persistent database ...
Can you browse a topic
You can browse queues, can you browse a topic? No. But then consuming messages on a topic does not affect any other consumers, so you don't need to 'browse' per se, just subscribe. i.e. browsing is necessary on queues as you ...
certificate_unknown
you get an error something like this... javax.jms.JMSException: start failed: Received fatal alert: certificateunknown at org.activemq.transport.tcp.TcpTransportChannel.start(TcpTransportChannel.java:200) at org.activemq.broker.impl.BrokerConnectorImpl.addClient(BrokerConnectorImpl.java:308) at org.activemq.transport.TransportServerChannelSupport.addClient(TransportServerChannelSupp at org.activemq.transport.tcp.TcpTransportServerChannel.run(TcpTransportServerChannel.java:1 at java.lang.Thread.run(Unknown Source) Caused by: javax.net.ssl.SSLHandshakeException: Received ...
Changes in 4.0
New Features in 4.0 MasterSlave provides support for continuous availability and fault tolerance of brokers to be able to handle catastrophic hardware failure and not loose a message (or get duplicates). A new Exclusive Consumer feature allows you to pin message processing to a single ...
Class Diagrams for activemq-4.0-M4 source code
Class Diagrams for activemq4.0M4 source code. These diagrams cover the bulk of the source code and are in EMF format. http://docs.codehaus.org/download/attachments/50288/ClassDiagramsactivemq4.0M4.zip Note about conversion to other formats: Some files when converted to something like JPG ...
Clustering
Clustering is a large area and often means different things to different people. We'll try to list the various aspects of clustering and how they relate to ActiveMQ Queue consumer clusters We support reliable high performance load balancing of messages on a queue ...
CMS
CMS API http://incubator.apache.org/activemq/cms/html/ is a C\ API to JMS/MOM implemented using Stomp. To get a better feel for CMS try the API Reference http://incubator.apache.org/activemq/cms/html/ or please download the reference guide ...
Code Overview
org.apache.activemq http://incubator.apache.org/activemq/maven/activemqcore/apidocs/org/apache/activemq/packagesummary.html package defines the core JMS client. Transport The JMS client and the message broker use the Transport http://incubator.apache.org/activemq/maven/activemqcore/apidocs/org ...
Command Agent
Command Agent From 4.2 onwards Apache ActiveMQ allows you to communicate with a broker Command Agent to be able to perform administration queries and commands. This allows you to use the message bus itself to communicate with the message broker to list available queues ...
Community
Compile ActiveMQ with GCJ You can use GCJ http://gcc.gnu.org/java/ to build ActiveMQ as a shared library you can reuse from C. Native compile ActiveMQ HOWTO Abstract This document describes how to native compile ActiveMQ for use in a C environment ...
Composite Destinations
version 1.1, ActiveMQ supports a technology we call composite destinations. This allows a single virtual JMS Destination to be used to represent a collection of JMS Destinations. For example you can use composite destinations to send a message to 12 physical queues ...
Configuration
Questions on configuring ActiveMQ's JMS client or the Message Broker
Configure Startup Destinations
Typically in Apache ActiveMQ we create destinations on demand How do I create new destinations as clients start to use them. However sometimes users want to be able to configure which destinations are available on startup explicitly in the Xml Configuration ...
Configuring Brokers
Overview In ActiveMQ 4, we are using a new xml format to configure the broker. Syntax The following xsd describes the syntax of the broker configuration file. activemq4.0.xsd And here is the reference documentation for that xsd file. activemq4.0.xsd.html Example
Configuring Wire Formats
OpenWire Wire Format OpenWire is the default Wire Format that ActiveMQ uses. It provides a highly efficent binary format for high speed messaging. OpenWire options can be configured on a JMS client's connection URI string or on a Brokers transport ...
Connection Configuration URI
Overview An Apache ActiveMQ connection can be configured by explicitly setting properties on the ActiveMQConnection http://incubator.apache.org/activemq/maven/activemqcore/apidocs/org/apache/activemq/ActiveMQConnection.html or ActiveMQConnectionFactory http://incubator.apache.org/activemq/maven/activemqcore/apidocs/org/apache ...
Connection Factory Properties
outbound' Connection Factory objects used to send messages by default use the connection configuration properties of the Resource Adapter deployment, but those properties can be overridden per connection factory. The Connection Factory properties that can be configured are: Property Name Required ...
Connectivity
Apache ActiveMQ is designed to support a large number if Cross Language Clients, speak a wide range of Protocols and be usable in a wide variety of Containers in addition to being usable in a stand alone Java SE platform
Consumer Dispatch Async
Overview In AMQ4, the choice of a broker performing synchronous or asynchronous dispatch to a consumer has become more configurable. It is now configured as a default value on the connection URI, Connection and ConnectionFactory Connection Configuration URI together with being customizable on a per consumer basis ...
Consumer Features
Consumer Priority Background As well as having a pluggable dispatch policy (e.g. round robin etc), we now support consumer priorities. This allows us to weight consumers to optimise network hops. For example you typically want to a broker to send messages to regular ...
Containers
page lists the various containers that Apache ActiveMQ works inside
Contributing
many ways you can help make ActiveMQ a better piece of software please dive in and help\! Try surf the documentation if somethings confusing or not clear, let us know. Download the code & try it out and see what you think ...
Could not find PacketReader for packet type - UNKNOWN PACKET TYPE
Error Could not find PacketReader for packet type: UNKNOWN PACKET TYPE: 102 Reason You are probably using different versions of ActiveMQ jars on the client and the broker. Try using the same jars on each node and the problem should go away ...
Cross Language Clients
Apache ActiveMQ is a message broker written in Java together with a full JMS client. However Apache ActiveMQ is designed to communicate over a number of protocols such as Stomp and OpenWire together with supporting a number of different language specific clients. Language Clients Apart ...
CVS
Web Browsing of CVS To browse CVS via the web use the FishEye interface http://cvs.activemq.codehaus.org/ CVS Access behind a firewall For those developers who are stuck behind a corporate firewall, you could try ask your firewall administrator ...
DDesign DocumentsSlow Consumers Durable Queue Memory Management Supporting IO Streams Message Redelivery and DLQ Handling Multicast Transport Proposed C Client Architecture REST protocols
Destination Features
Destination Options Background Destination Options are a way to provide extended configuration options to a JMS consumer without having to extend the JMS API. The options are encoded using URL query syntax in the destination name that the consumer is created on. Consumer Options Option Name Default ...
Developer Guide
following documents might be interesting Building Release Plans Release Guide Design Documents Changes in 4.0 Code walkthrough Code Overview Wire Protocol Developing Plugins
Developers
Developing ActiveMQ Developing Plugins Apache ActiveMQ is based on the model of POJOs and Dependency Injection. If you are developing a Interceptors or additional components or plugins for ActiveMQ then the first thing you should do is develop the code as if you are writing any other Spring component, using dependency injection ...
Discovery
Discovery Agents ActiveMQ uses an abstraction called a Discovery Agent http://incubator.apache.org/activemq/maven/activemqcore/apidocs/org/apache/activemq/transport/discovery/DiscoveryAgent.html to detect remote services such as remote brokers. We can use discovery ...
Discovery Transport Reference
Discovery Transport The Discovery transport works just like the reliable transport, except that it uses a discovery agent to locate the list of uri to connect to. Configuration Syntax discovery:(discoveryAgentURI)?transportOptions or discovery:discoveryAgentURI Transport Options Option Name Default Value ...
Discussion Forums
Before posting you might want to read the Tips for getting help. Many users prefer to use online forums rather than joining a mail list which can lead to lots more email traffic so we use ...
Dispatch Policies
Dispatch Policies ActiveMQ 4.0 or later supports the configuration of different dispatch policies on a per destination (or wildcard) basis. Before discussing dispatch policies its worth first understanding the purpose of the prefetch value What is the prefetch limit for. The out of the box ...
Does ActiveMQ support clustering
Yes, though there are various kinds of clustering. See this page on details Clustering
Does ActiveMQ support my SQL database
Quite possibly :). See the JDBC Support page for details of how to configure for your database or how to let us know of a database which does not work. Also see Persistence
dot Net
Download Latest Releases The latest stable release is the ActiveMQ 4.1.0 Release Help us test the latest SNAPSHOTS http://people.apache.org/repo/m2snapshotrepository/org/apache/activemq/apacheactivemq/ All Releases Maven Repositories Since ActiveMQ has moved homes from Codehause ...
DR
Disaster Recovery. Typically this means having multiple data centres configured such that if there is a major catastrophy and an entire data centre is lost, messages are replicated to another location so the systems can continue running
Durable Queue Memory Management
current 3.x code can have issues with massive queues with unacknowledged messages; its complex due to consumption from multiple points in the queue, consumers coming & going, selectors matching only certain points in the queue etc. This page outlines ...
EErrorsQuestions on specific kinds of error messages or common exceptions
Example Testing Scenario
ActiveMQ Performance Module Users Manual ActiveMQ Performance Module Users Manual Example Testing Scenario This page gives a simple example of the kinds of thing we wanna do. Assuming that all the test code is within a single Maven POM ...
Examples
few example programs to test out ActiveMQ in the org.activemq.tool package in the unit test area. Before running the examples you should try running a JMS broker Run Broker on your machine. Follow the Installation instructions to use a binary distribution ...
Exclusive Consumer
Background We maintain the order of messages in queues and dispatch them to consumers in order. However if you have multiple JMS Sessions and MessageConsumer instances consuming from the same queue (whether in the same JVM or not), you will loose the guarrentee of processing the messages ...
FFailover Transport ReferenceFailover Transport The Failover transport layers reconnect logic on top of any of the other transports. This is what used to be the Reliable transport in ActiveMQ 3. It's configuration syntax allows you to specify any number of composite uris. The Failover transport randomly chooses ...
Fanout Transport Reference
Fanout Transport The Fanout transport layers reconnect and replication logic on top of any of the other transports. It is used replicate commands to multiple brokers. Configuration Syntax fanout:(discoveryURI)?transportOptions or fanout:discoveryURI Transport Options Option Name Default Value ...
FAQ
Features Apache ActiveMQ Features Apache ActiveMQ is packed with features; to get an idea you might want to look at the Features Overview otherwise here is the list of all of the main features
Features Overview
supports a variety of Cross Language Clients and Protocols Cross Language Clients from Java, C, C, C#, Ruby, Perl, Python, PHP OpenWire for high performance clients in Java, C, C, C# Stomp support so that clients ...
GGeneralGeneral questions about ActiveMQ
Geronimo
ActiveMQ is the default JMS provider in Apache Geronimo http://geronimo.apache.org. ActiveMQ can be used both as JMS Client and a JMS Broker. This short article explains how to use it on a standalone client to access the topics/queues setup on a remote Geronimo/ActiveMQ ...
Getting Started
Introduction This document describes how to install and configure ActiveMQ 4.x for both Unix and Windows' platforms. For installation and configuration instructions for older versions of ActiveMQ please see Getting Started for ActiveMQ 3.x http://docs.codehaus.org/display/ACTIVEMQ/GettingStarted3.x Document Organization ...
Getting Started 3.x
Introduction This document describes how to install and configure ActiveMQ 3.x for both Unix and Windows' platforms. Document Organization The Getting Started Guide for ActiveMQ 3.x document contains the following sections: #Introduction #Document Organization #PreInstallation Requirements #Installation Procedure ...
HHAHigh Availability. This typically refers to having a number of available instances of a service (such as a Message Broker) such that if the instance you're connected to fails, you can failover quickly to another instance providing high availabliity and resilience
Hello World
following is a very simple JMS application with multiple, concurrent, consumers and producers. See the Initial Configuration guide for details on how to setup your classpath correctly. Things you might do after running this example: Setup a broker Run Broker ...
Hermes Jms
You can use ActiveMQ with Hermes JMS http://hermesjms.sourceforge.net/ which is a graphical user interface for working with JMS queues. Please refer to the Hermes JMS http://hermesjms.sourceforge.net/ site for detailed instructions on using this software. Demo Mark Bucayan kindly ...
Hermes Screenshot
following is an example of running HermesJms with ActiveMQ on OS X !http://activemq.codehaus.org/hermes.png
Home
Apache ActiveMQ http://incubator.apache.org/activemq/ is a fast open source Message Bus which supports many Cross Language Clients and Protocols Cross Language Clients and many advanced features Features while fully supporting JMS 1.1 http ...
How can I add a new type of transport
ActiveMQ is specifically designed to allow custom transports to be plugged in. You can programatically create TransportConnector instances and add them to the BrokerService in Java code using the BrokerService.addConnector() method http://activemq.codehaus.org/maven/apidocs/org/apache/activemq/broker/BrokerService.html ...
How can I avoid serialization of Objects in ObjectMessage
Use the VM transport and see details on how to disable serialization to pass by value How should I use the VM transport
How can I enable detailed logging
We use commonslogging so you can use that to enable debug tracing http://jakarta.apache.org/commons/logging/apidocs/org/apache/commons/logging/impl/SimpleLog.html. Or if you've log4j.jar on your classpath you can use a log4j.properties file ...
How can I get a list of the topics and queues in a broker
You can use JMX to browse the available topics and queues in a broker together with the connectors and connections along with their statistics etc. Or you can access statistics programmatically How can I see what destinations are used
How can I get help
How can I get the source code from subversion How can I make ActiveMQ faster See the ActiveMQ Tuning Guide http://devzone.logicblaze.com/site/howtotuneactivemq.html
How can I monitor ActiveMQ
How to monitor Apache ActiveMQ In ActiveMQ 4.x you can monitor the broker to see what destinations are being used, their activity along with connections and subscriptions using the following tools JMX and a JMX console such as jconsole http://java.sun.com/developer/technicalArticles/J2SE/jconsole ...
How can I see what destinations are used
easiest way is to use JMX by pointing your JMX console or JConsole at the broker JVM. You can also get all of the active destinations from the broker using Java code via getDestinations() http://activemq.codehaus.org/maven/apidocs/org ...
How can I support auto reconnection
You often want a JMS client to automatically handle the JMS broker going down such that it either reconnnects to the same broker when it comes back up, or reconnects to another broker in the cluster. Its easy to perform autoreconnection. In Apache ActiveMQ 4.x ...
How can I use different network protocols
easy configuration, ActiveMQ supports a configurable URL to denote the connection mechanism to other clients. There is an example of how to do this along with a description of the available protocols in the Protocols overview URI Protocols
How do distributed queues work
various Topologies that you can employ with ActiveMQ, where nodes are connected to message brokers in various ways like peer based client server hub and spoke Each node communicates with a broker and we can support networks of brokers. Thats ...
How do durable queues and topics work
Durable queues keep messages around persistently for any suitable consumer to consume them. Durable queues do not need to concern themselves with which consumer is going to consume the messages at some point in the future. There is just one copy of a message that any ...
How do I access ActiveMQ from C
See the C Integration page for the available options
How do I access ActiveMQ from CSharp or dotNet
How do I access ActiveMQ from Ruby, Perl, Python, PHP Use Stomp http://stomp.codehaus.org/ which is a simple to implement client protocol for working with ActiveMQ and other messaging systems
How do I add my own plugins
See Developing Plugins for how to add your own functionality into Apache ActiveMQ
How do I avoid Maven downloading latest jars
You can use the \o switch (for offline mode) to avoid maven autodownloading new snapshot jars (e.g. the Geronimo jars at the time of writing). maven o or to run a server go to the \assembly module and run maven o server
How do I bridge different JMS providers
bridge from ActiveMQ to another JMS provider (or other kind of transport completely), we recommend ServiceMix http://servicemix.org/ the Apache 2.0 licensed open source JBI compliant ESB. For example here is an example http://servicemix.org/JMS ...
How do I build but disable the unit tests
Try the following maven Dmaven.test.skip=true Or to run a specific goal maven Dmaven.test.skip=true jar
How do I change dispatch policy
much simpler and more powerful in ActiveMQ 4.0 you can configure different Dispatch Policies directly. For now in ActiveMQ 3.x we have a PrefetchPolicy configuration What is the prefetch limit for. This allows a certain number of messages to be dispatched to a consumer before ...
How do I change the logging
We use commonslogging http://jakarta.apache.org/commons/logging/ to log information in the broker client and the broker itself so you can fully configure which logging levels are used and whether to log to files or the console etc. For more information see ...
How do I change the message store directory for an embedded broker.
Embedded brokers create an ActiveMQ directory under the current working directory to store it's persistent message data. To change the location of the directory used by the message store, set the activemq.store.dir system property to the directory you want it to use. Example: java ...
How do I compile from the source
See the Building page
How do I configure ActiveMQ to use AIO server transport
Windows XP: 1. Download AIO (Asynchronous IO for Java) from IBM (http://www.alphaworks.ibm.com/tech/aio4j). 2. Unzip the downloaded file and copy the following files: ibmaio.dll ibmaio1.0.jar 3. Place ibmaio.dll into Windows System32 folder. (You may ...
How do I configure automatic reconnection
JMS broker goes down, ActiveMQ can automatically reconnect to an available JMS broker using the reliable: (for amq 3.x) or failover: (for amq 4.x) protocol. e.g. connecting to the URL ActiveMQ 4.x failover:tcp://host1:port1,tcp://host2 ...
How do I configure distributed queues or topics
You don't need to explicitly configure distributed queues or topics. Any queue or topic is automatically distributed across other brokers in a network. So you just need to connect brokers together to form a network of brokers Networks of Brokers and the queues ...
How do I configure the queues I want
ActiveMQ there is no real resaon to explicitly setup/configure the queues you are gonna need. If you try to publish or subscribe from any queue or topic it will be silently created on the fly. Sometimes people put destinations into JNDI so that they can be pulled out ...
How do I connect to one of a number of message brokers
You can specify a list of URLs to connect to (for example if you have message brokers running on a number of machines). To specify a list of URLs, use a comma separated list of URLs with a prefix of list:. e.g. list:tcp://localhost:61699,tcp://localhost ...
How do I consume a specific message
you want to consume messages in a different order, or consume specific messages at the head, middle or tail of the queue, you can browse the messages using the QueueBrowser to find the JMSMessageID's of the messages you want to consume create a new consumer with a selector matching ...
How do I create new destinations
ActiveMQ you do not have to create destinations up front before you can use them. Just create a destination dynamically either by calling createQueue() or createTopic() on a JMS Session creating an instance of ActiveMQTopic or ActiveMQQueue and possibly registering ...
How do I define a local address and local port for TCP or SSL
feature is only available in ActiveMQ 4.0 TCP based transport protocols (including SSL) allow you to define the local address and local port for Socket to use when it's created. This can be useful for clients that reside on multihomed machines or for clients ...
How do I disable persistence
3 main ways to disable persistence, such as for unit testing JMS code # set the NONPERSISTENT message delivery flag on your MessageProducer # set the persistent=false flag in the
How do I edit the website
website is all contained on a Wiki so that anyone can contribute Contributing How to edit You can also click the edit button when viewing the website which is located on the bottom right of each page. Note that after you've changed ...
How do I embed a Broker inside a Connection
many messaging topologies there are JMS Brokers (server side) and a JMS client side. Often it makes sense to deploy a broker within your JVM. This allows you to optimise away a network hop; making the networking of JMS as efficient as pure RMI ...
How do I enable asynchronous sending
default setting for ActiveMQ is that all persistent messages outside of a transaction are sent to a broker are synchronous. This means that the send method is blocked until the message is received by the broker, its then written to disk then a response is returned to the client and the send() unblocks with success or throws a JMSException ...
How do I find the Size of a Queue
How do I check on the size of the queue? I know it's not JMS standard, but most JMS implementations have a way to do this. You can view the queue depth using the MBeans in ActiveMQ 4.x. Use any JMX management console ...
How do I get started with JMS
Your best way to get started understanding the JMS API is Sun's JMS tutorial http://java.sun.com/products/jms/tutorial/. Alternatively you could stick to writing business level POJOs and hide the middleware via Lingo http://lingo.codehaus.org ...
How do I make messages durable
Durability of messages is defined by the MessagerProducer http://java.sun.com/j2ee/1.4/docs/api/javax/jms/MessageProducer.html. You can explicitly configure the durability via the setDeliveryMode() method http://java.sun.com/j2ee/1.4/docs/api/javax/jms/MessageProducer.html#setDeliveryMode(int). e.g. MessageProducer ...
How do I preserve order of messages
ActiveMQ will preserve the order of messages sent by a single producer to all consumers on a topic. If there is a single consumer on a queue then the order of messages sent by a single producer will be preserved as well. If you have multiple consumers on a single queue the consumers will compete for messages and ActiveMQ ...
How do I purge a queue
frequent requirement is to purge a queue (i.e. delete all the messages on it). Solution The quickest way is to use JMX to browse the queues and call the purge() method. You can also do it programmatically How can I see what destinations are used ...
How do I run a broker
ActiveMQ 3.x/4.x Please see the running a broker page Run Broker
How do I run ActiveMQ under the Kaffe JVM
ActiveMQ will run under Kaffe with a few adjustments to the default configuration. We have found the Kaffe does not properly implement: File based NIO Multicast Sockets JMX connector JNDI handling Therefore, the default ActiveMQ configuration must be adjusted ...
How do I set the message expiration
JMSExpiration on a message is set by the MessageProducer in JMS either via producer.setTimeToLive() http://java.sun.com/j2ee/1.4/docs/api/javax/jms/MessageProducer.html#setTimeToLive(long) producer.send(Destination, Message, int, int, long) http://java.sun.com/j2ee/1.4/docs/api/javax/jms/MessageProducer.html ...
How do I use ActiveMQ using in JVM messaging
ActiveMQ 3.x/4.x To use pure inmemory messaging you just need to set the broker URL to be vm://localhost Actually you can use any text after vm:// so that you can segment multiple logical JMS ...
How do I use Ivy with ActiveMQ
ivyconf>
How to unit test JMS code
When unit testing code with JMS you typically want to avoid the overhead running separate proceses; plus you want to increase startup time as fast as possible as you tend to run unit tests often and want immediate feedback ...
How you can help release
How to Help Everyone in the ActiveMQ community can help with releases; users, developers, commmiters are all encouraged to test out a release and post any comments to the activemqdev@ mailing list Mailing Lists or raise a JIRA issue. Binary distribution Download ...
II am having problems with the Spring JmsTemplateActiveMQ 3.x/4.x See the JmsTemplate Gotchas page
I am not receiving any messages, what is wrong
common gotcha for new JMS users is forgetting to start the JMS connection. Make sure you call the start() http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Connection.html#start() method on the JMS connection, otherwise messages will not be dispatched to your consumer
I cannot connect to ActiveMQ from JConsole
Make sure that the machine you are talking to has a valid java.rmi.server.hostnameproperty value e.g. on unix (OS X, Linux, Solaris) export ACTIVEMQOPTS=$ACTIVEMQOPTS Djava.rmi.server.hostname=
I do not receive messages in my second consumer
Scenario You send 100 messages to a queue. Start consumer A, it receives the message You start another consumer B, it doesn't receive any messages. You kill A. Consumer B receives messages now, why? Answer This is to do with prefetch ...
I get errors building the code whats wrong
We currently use a multiproject maven build system, which can be a little fragile. If you are ever having problems building we suggest you try the following in the root activemq directory maven clean rm rf /.maven/repository ...
Ideas
page hosts various ideas and thoughts
Inbound Communication
Configuring an MDB to receive messages from ActiveMQ There are three MDBs declared in the ejbjar.xml JBoss Integrationejbjar.xml deployment descriptor. For this example, I will be explaining how to configure the {{TopicDurableMDB}} to be invoked by JBoss when a message is received on an ActiveMQ Topic. The Bean ...
Initial Configuration
Initial Configuration Document Organization #Required JARs #Optional JARS #Persistence Support #Next steps #Additional Resources #Related Reading #Specifications #Related open source projects Firstly you need to add the jars to your classpath. Required JARs ...
Installation
Download a binary distribution of ActiveMQ and unpack it into some directory. To run an ActiveMQ broker, type the following commands from the directory in which you have just unpacked the ActiveMQ distribution. cd bin activemq The ActiveMQ broker should now ...
Integration Tests
Integration Tests validate that ActiveMQ Resource Adapter operate correctly when deployed with a J2EE application running in an Application Server such as Apache Geronimo. Getting Ready The instructions on this page reference a few directories that you will need to substitute appropriate values ...
Interceptors
ActiveMQ 4.x has a sophisticated interceptor stack so that you can attach whatever functionality you require into the broker in an easy way without complicating all of the other broker code. This has really helped us keep the code ...
IOException - could not find class for resource
you get an exception looking like this Reason: java.io.exception : could not find class for resource: METAINF/services/org/apache/activemq/transport/tcp Cause You are probably using the ActiveMQ source code without using the resources ...
Is there a specified size of the journal
preferred" size for each log file of the journal. By default there are 2 20 meg log files
JJ2EEJ2EE 1.4 or later the standard way to integrate with a JMS provider is via JCA 1.5 and a Resource Adapter
java.io.IOException Failed to create database 'derbydb', see the next exception for details
you get an error like this Jun 19, 2006 10:35:27 PM org.apache.activemq.broker.BrokerService getBroker INFO: ActiveMQ 4.0 JMS Message Broker (localhost) is starting Jun 19, 2006 10:35:27 PM org.apache.activemq.broker.BrokerService ...
java.lang.NoSuchMethodError
you get an error like java.lang.NoSuchMethodError: javax.jms.Session.createConsumer(Ljavax/jms/Destination;)Ljavax/jms/MessageConsumer; or java.lang.AbstractMethodError: javax.jms.ConnectionFactory.createConnection()Ljavax/jms/Connection; Fix You probably have old JMS 1.0.2b versions of the JMS API on your classpath ...
java.lang.NoSuchMethodException org.activemq.ra.ActiveMQResourceAdapter.setUseEmbeddedBroker
you get an error like this 20050814 17:18:45,618 ERROR org.jboss.resource.deployment.RARDeployment Starting failed jboss.jca:service=RARDeployment,name='activemqra3.0.rar' org.jboss.deployment.DeploymentException: Error for resource adapter class org.activemq.ra.ActiveMQResourceAdapter accessing property setter ConfigPropertyMetaData@e62121name=UseEmbeddedBroker ...
JavaDocs
JavaDocs for Apache ActiveMQ 4.x activemqcore http://incubator.apache.org/activemq/maven/activemqcore/apidocs/ and cobertura report http://incubator.apache.org/activemq/maven/activemqcore/cobertura/ activemqconsole http://incubator.apache.org/activemq/maven/activemqconsole/apidocs/ activemqra http://incubator.apache.org/activemq ...
JBoss Integration
Using the ActiveMQ Resource Adapter, I recently integrated ActiveMQ with JBoss. The integration included both inbound and outbound messages. Inbound messages were handled by Message Driven Beans (MDBs) and outbound messages were published by an EJB Stateless ...
JCA Container
We will continune to support the ActiveMQ JCA Container up until ActiveMQ 3.1. After that point we will be moving to Jencks http://jencks.org/ which is a migration of the ActiveMQ codebase together with code Geronimo http://geronimo.apache.org and from some other contributors ...
JDBC Master Slave
JDBC Master Slave First supported in ActiveMQ version 4.1 If you are using pure JDBC and not using the high performance journal then you are generally relying on your database as your single point of failure and persistence engine. If you do not have ...
JDBC Support
We support a range of SQL databases for message persistence such as Apache Derby Axion DB2 HSQL Informix MaxDB MySQL Oracle Postgresql SQLServer Sybase as well as a number of generic JDBC providers. Autodiscovery of your JDBC provider We try ...
JMeter Performance Tests
JMeter performance test You can use JMeter to test the performance of your ActiveMQ Server. Please refer to the JMeter site http://jakarta.apache.org/jmeter/ for detailed instructions on using this software. Downloading the JMeter Performance Test Binary You can ...
JMeter System Tests
JMeter System Tests You can use JMeter to test your ActiveMQ Server. Please refer to the JMeter site for detailed instructions on using this software. The Test would check for duplicate messages and the order of messages received. Building a Test Plan ...
JMS
Questions on using the JMS API
JMS and JDBC operations in one transaction
JMS and JDBC operations in one transaction with Spring/Jencks/ActiveMQ Spring beans:
JMS to JMS Bridge
Introduction ActiveMQ provides bridging functionality to other JMS providers that implement the JMS 1.0.2 and above specification. A JMS bridge can be colocated with an ActiveMQ broker or run remotely. In order to support JMS 1.0.2 there is seperation between Queues and Topics ...
JmsTemplate Gotchas
thing to remember is JmsTemplate is designed for use in EJBs using the EJB containers JMS pooling abstraction. So every method will typically create a connection, session, producer or consumer, do something, then close them all down again. The idea being ...
JMSXUserID
JMSXUserID support It is sometimes useful to know the authenticated username of the sender of a message. This is not added by default but you can enable it by setting the populateJMSXUserID property on the broker via Java code BrokerService broker = new BrokerService(); broker.setPopulateJMSXUserID(true); broker.start(); Or via the Xml ...
JMX
ActiveMQ 4.x or later has extensive support for JMX to allow you to monitor and control the behaviour of the broker via the MBeans http://incubator.apache.org/activemq/maven/activemqcore/apidocs/org/apache/activemq/broker/jmx/packagesummary.html.
JMX Support
page describes the JMX management requirements. Required MBeans Broker MBeans We need MBeans for the core Broker types in the activemq.broker package to allow folks to see a broker's configuration, its connectors, currently connected clients & disconnect clients etc ...
JNDI Support
ActiveMQ will work with any JNDI provider capable of storing Java objects. However it is common to require a JNDI initial context to be able to run many JMS example programs, like Sun's JMS tutorial http://java.sun.com/products/jms/tutorial/131fcs/doc ...
Journal is already opened by this application
Error You get something like this java.io.IOException: Journal is already opened by this application. at org.apache.activeio.journal.active.ControlFile.lock(ControlFile.java:71) at org.apache.activeio.journal.active.LogFileManager.initialize(LogFileManager.java:120) at org.apache.activeio.journal.active.LogFileManager.
JUnit Reports
KKaha PersistenceKaha Persistence Kaha Peristence is a storage solution written especially for message persistence and is part of the ActiveMQ project. It's tuned to provide optimal performance for typical message usage patterns, which involves writing/reading and discarding messages that are persisted very quickly ...
Known Bad OS and JVM Combinations
Operating System Java Virtual Machine Problem description Red Hat Linux Advanced Server release 2.1AS (Pensacola) kernel 2.4.9e.62smp j2sdk1.4.001 Broker could not start up due to error with journal
LLatencyLatency We typically use this term when talking about the elapsed time it takes to process a single message. When using RequestResponse message topologies its often means the round trip time for a message to flow to a service and for the reply to be recieved
LeftHeader
http://www.logicblaze.com/images/logos/products/ActiveMQ/ActiveMQlogo200.jpg! http://activemq.org
log4j-WARN No appenders could be found for logger
Error log4j:WARN No appenders could be found for logger (org.activemq.transport.tcp.TcpTransportChannel). log4j:WARN Please initialize the log4j system properly. Solution You have not initialised log4j properly. Try reading the online log4j manual http://logging.apache.org/log4j/docs/manual.html ...
Logging Interceptor
Logging Interceptor The Logging Interceptor is a pretty trivial Interceptor Interceptors which just logs to Jakarta Commons Logging http://jakarta.apache.org/commons/logging/ or log4j http://logging.apache.org/log4j/docs/ as messages are sent or acknowledged on a broker. The default logging level used ...
MMailing Listsfollowing mailing lists are available. Before posting you might want to read the Tips for getting help. Apache Mailing Lists List Name Subscribe Unsubscribe Archive Nabble (Online Forums) activemq User List Subscribe mailto:activemquserssubscribe@geronimo.apache.org ...
MasterSlave
Introduction to Master / Slave Master/Slave is now the recommended way for providing high availabilty and fault tolerance for Apache ActiveMQ. The Master/Slave functionality is only available in the Apache ActiveMQ 4.0 release and above. The following are the different kinds of Master/Slave ...
Message Groups
Message Groups rock! :) They are an enhancement to the Exclusive Consumer feature to provide guarranteed ordering of the processing of related messages across a single queue load balancing of the processing of messages across multiple consumers high availability / autofailover to other consumers if a JVM ...
Message Redelivery and DLQ Handling
Overview Messages are redelivered to a client when: # A transacted session is used and rollback() is called. # A transacted session is closed before commit is called. # A session is using CLIENTACKNOWLEDGE and Session.recover() is called. Behavior in the 3.x brokers Acks/Nacks would be sent to the broker for each ...
Message Transformation
Message Transformation It is sometimes useful to transform a message inside the JMS provider. For example you may have an application that has been live for some time that uses ObjectMessage messages, but that you wish to convert to use XML payloads (to protect ...
MOM
Message Orientated Middleware. The art of building distributed systems using mostly asynchronous message passing with loosely coupled services consuming and emitting messages. So this includes JMS provders and message brokers. Typically MOMs can handle any specific ...
Multicast - Watch out for IPV6 vs IPV4 support on your operating system or distribution or network
You may wonder why you are not receiving any message at all during multicast, maybe you have just tried everything, and even on some other OS or distributions and JDK and realize that it works in some place and not on other... you may ...
Multicast Transport
We could support a reliable multicast protocol and use that to distribute messages across. This page braindumps how that could fit in with ActiveMQ 4.x's architecture. each VM would have its own embedded broker; JMS connections would talk ...
Multicast Transport Reference
Multicast Transport The Multicast transport allows clients to connect to a remote ActiveMQ broker using multicast Note that by default Multicast is not reliable; datagrams can be lost so you should add a reliability layer to ensure the JMS contract can be implemented ...
Multiple consumers on a queue
you want to consume concurrently from a queue, then you must use a different session for each consumer. This is because you must have a session per thread. The JMS contract is that only 1 session is used by one thread at once which ...
NNavigationOverview Home News New Features Getting Started FAQ Site Articles Download Search OOldCreated by jstrachan On Fri May 12 04:37:06 PDT 2006 Using TimTam
OpenWire
OpenWire is our cross language Wire Protocolto allow native access to ActiveMQ from a number of different languages and platforms. The Java OpenWire transport is the default transport in ActiveMQ 4.x or later. For other languages see the following... NMS for the C# API ...
OpenWire C Client
C library which is based on the OpenWire protocol. You can browse the code here http://svn.activemq.org/branches/activemq40/activemq/openwirec/ e.g. here's an example of it in use... http://svn.activemq.org/branches/activemq40/activemq/openwirec/src/examples
OpenWire CPP Client
OpenWire C\ Client Goals We want to be able to provide a C\ API to ActiveMQ that retains rough featureparity with the Java API while at the same time allowing for more flexibility in application design by opening up lower levels of the event system ...
OpenWire dotNet
OpenWire Version 2 Specification Overview OpenWire is used to marshal objects to byte arrays and back. We will refer to the marshaled objects as commands. A TCP network connection would see multiple commands back to back on the stream. Commands are not delimited in anyway and are variable sized. command command ...
Optimized Acknowledgement
Overview ActiveMQ 4.0 now supports acknowledging a range of messages in a single batch operations. This option is enabled by default since it decreases load on the broker and therefore increases overall performance. Disabling Optimized Acknowledgements using a Connection URI cf = new ...
Outbound Communication
Configuring a Session Bean to send messages to ActiveMQ In the attached example application JBoss Integrationactivemqjbosstest.zip, the three MDBs use the {{SenderEJB}} to send JMS messages to an ActiveMQ queue. In this example, I will be explaining how to: # Configure and deploy an ActiveMQ {{Queue ...
Overview
PPeer Transport ReferencePeer Transport The Peer transport is a composite transport which uses the VM transport to create and connect to a local embedded broker but which configures the embedded broker to establish network connections to other peer embedded brokers. Configuration Syntax peer://peergroup ...
Per Destination Policies
We support a number of different policies which can be attached to individual destinations (queues, topics) or to wildcards of queue/topic hierarchies. This makes it easy to configure how different regions of the JMS destination space are handled. The following are examples of different policies ...
Performance
Performance Performance differs greatly depending on many different factors the network topology Topologies transport protocols URI Protocols used quality of service QoS hardware, network, JVM and operating system To give you an idea of the kinds of performance ...
Performance report
Performance report We have a performance report comparing ActiveMQ against a number of other commercial and open source JMS providers. You can get the report here http://logicblaze.com/resources.jsp alternatively if you'd like a copy of our performance ...
Performance Tuning
more complete overview see the ActiveMQ Performance Tuning Guide http://devzone.logicblaze.com/site/apacheactivemqperformancetuningguide.html. There are tradeoffs between performance and reliabilty. By default, activemq strikes a balance between the two, so there are some things you can change to increase throughput ...
Perl
Perl Support For Perl support we recommend the Perl Stomp Client http://stomp.codehaus.org/Perl Original Perl Client The original Perl client was written by Ian Holsman. You can find it here http://zilbo.com/articles/activeMQ/index.html. ...
Persistence
long term persistence we recommend using JDBC coupled with our high performance journal. You can use just JDBC if you wish but its quite slow. Our out of the box default configuration uses Apache Derby ...
Persistence Questions
PHP PHP Support For PHP support we recommend the PHP Stomp Client http://stomp.codehaus.org/PHP You can grab it in SVN here... https://svn.codehaus.org/stomp/trunk/php
Pike
Pike Support For Pike support we recommend the Pike Stomp Client http://stomp.codehaus.org/Pike
Point to Point with multiple Consumers
Note: I am in to JMS and active MQ. I am writing an application and would like to use Active MQ as Queue for queuing up processing request and have them consumed by the next available node in a distributed system. (One ...
Previous Versions
Projects Using ActiveMQ Apache Geronimo http://geronimo.apache.org/ is the J2EE server project of the Apache Software Foundation. Apache ServiceMix http://incubator.apache.org/servicemix/ an open source Enterprise Service Bus (ESB) based around the Java Business Integration specification (JSR 208 ...
Proposed C Client Architecture
4/16/06 Attaching wireformats.pdf a first cut at defining all of the commands for both openwire an stomp. Working toward an architecture that will support both. /////////////////////////////////////////////// Given that there are several separate efforts going on now toward the common goal ...
Protocols
Apache ActiveMQ is a message broker which supports multiple wire level protocols for maximum interoperability
Python
Python Support For Python support we recommend the Python Stomp Client http://stomp.codehaus.org/Python
QQoSQoS is a MOM abbreviation of the term Quality of Service. There are many different kinds of messaging with different qualities of service such as topics versus queues durable messaging versus reliable (some buffering takes place but if a consumer is down long enough the messages are discarded ...
QuickLinks
Download \ JavaDocs http://incubator.apache.org/activemq/maven/activemqcore/apidocs/ More... JavaDocs \ Source \ Wiki Site \ IRC irc://irc.codehaus.org/activemq \ IRC Log http://servlet.uwyn.com/drone/log/hausbot/activemq \ Mailing Lists \ Discussion Forums \ Support
RRelease GuideHow to create and announce an ActiveMQ release. Maven 2 Setup Before you deploy anything to the maven repository using Maven 2, you should configure your /.m2/settings.xml file so that the file permissions of the deployed artifacts ...
Release Info
General Release Information Current RoadMap http://jira.activemq.org/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:roadmappanel Release Guide Signing Releases http://wiki.apache.org/incubator/SigningReleases Apache Mirror Guidelines http://apache.org/dev/mirrors.html
Release Plans
Information Release Info How you can help release Release Plans 4.0 RC 1 Guide
Replicated Message Store
messages are stored on the hard drive of a broker or inside a single database; then you have a single point of failure with respect to the message persistence. If you lose the entire machine, disk or database, you have lost messages. For some high end users ...
Resource Adapter
Introduction ActiveMQ includes a Java Connector Architecture (JCA) 1.5 Resource Adapter. JCA 1.5 defines the contract between an J2EE application server and external resources such as databases and messaging middleware. It allows the application server to efficiently pool connections ...
Resource Adapter does not seem to pool connections
may seem like the resource adapter when used in an app server like geronimo or jboss is not pooling connections. Looking the the ActiveMQ broker logs, it will show multiple message for each use of a pooled conntion simlilar to: 16:43:07 ...
Resource Adapter Properties
ActiveMQ Resource Apdapter allows you to configure several properties that: sets the options used for connection used for inbound message delivery sets the default options used for the outbound connection factory objects. The properties that can be configured are: Property Name Required ...
REST
ActiveMQ implements a REST http://rest.blueoxen.net/ful API to messaging which allows any web capable device to publish or consume messages using a regular HTTP POST or GET. If you are working with DHTML or web browsers you might wanna ...
REST protocols
many ways to map JMS to REST... Crappy nonREST Send via POST /queue/Destination Consume GET /queue/Destination This is bad as the GET is not idempotent. We can add a user ID or use a cookie GET /queue/Destination?jsessionId ...
Retroactive Consumer
Background A retroactive consumer is just a regular JMS consumer who indicates that at the start of a subscription every attempt should be used to go back in time and send any old messages (or the last message sent on that topic) that the consumer may have missed ...
RightHeader
http://drools.codehaus.org/unity/images/logo.png! http://www.codehaus.org
RSS and Atom
We have added support for the RESTful browsing of message queues in the activemqweb module. To try out this feature try the Web Samples. Browsing of queues is implemented by a servlet, QueueBrowseServlet which allows queues to be browsed using pluggable views. The current views ...
Ruby
Ruby Support For Ruby support we recommend the Ruby Stomp Client http://stomp.codehaus.org/Ruby Ruby Stomp Here's the Ruby client for Stomp, written by Brian McCallister. Package: http://rubyforge.org/projects/stomp/ Source: http://svn.codehaus.org/stomp ...
Run Broker
Running a 4.x Broker Note if you want to use an embedded broker then see How do I embed a Broker inside a Connection This page describes how to run a broker using 4.x or later of ActiveMQ. For earlier versions of ActiveMQ ...
Running a 3.x Broker
3.x binary distribution Download of ActiveMQ comes with a script called 'activemq' which allows you to run a broker. Typing the following will run an ActiveMQ Broker using the out of the box configuration activemq You can use the Xml Configuration ...
Ssample reportPerformance Test Report Template Security ActiveMQ 4.x provides pluggable security through various different providers. The most common providers are JAAS http://java.sun.com/products/jaas/ for authentication a default authorization mechanism using a simple XML configuration file. Authentication The default JAAS http ...
SEDA
Staged Event Driven Architecture which is a design pattern for building high performance and scalable distributed systems. See this paper http://www.eecs.harvard.edu/mdw/proj/seda/ for more details
Selectors
JMS Selectors Selectors are a way of attaching a filter to a subscription to perform content based routing. Selectors are defined using SQL 92 syntax and typically apply to message headers; whether the standard properties available on a JMS message or custom headers you ...
Setting up ActiveMQ with Tomcat 5.5.9
Create the file Shared File System Master Slave First supported in ActiveMQ version 4.1 If you have a SAN or shared file system it can be used to provide high availability such that if a broker is killed, another broker can take over immediately. Note ...
Should I deploy the broker inside my JVM or AppServer
ActiveMQ 3.x/4.x You can deploy the ActiveMQ Broker inside your JVM or Application Server. Whether you do or not has pros and cons depending on how many JVMs you have and what your backup & recovery policy is. Advantages ...
Should I use transactions
You often have to choose between how you consume messages. The choices are # autoacknowledgement # explicit acknowledgement via Message.acknowledge() # JMS transactions # XA For a discussion on XA try Should I use XA The main difference between 1 & 2 ...
Should I use XA
common use of JMS is to consume messages from a queue or topic, process them using a database or EJB, then acknowledge / commit the message. If you are using more than one resource; e.g. reading a JMS message and writing to a database, you really ...
Site
SiteIndex SiteMap Slow Consumer Handling Slow Consumers can cause problems on nondurable topics since they can force the broker to keep old messages in RAM which once it fills up, forces the broker to slow down producers, causing the fast consumers to be slowed down. One ...
Slow Consumers
Blocked Transport when using TCP there can be occasions when a network outage can result in a blocked write. This can cause the entire broker to freeze and the socket may never be unblocked. Currently we have a Thread that checks for blocked sockets ...
Source
Web Browsing of SVN To browse via the web use the ViewVC interface: http://svn.apache.org/viewvc/incubator/activemq/trunk/ Or to browse the source tree directly: https://svn.apache.org/repos/asf/incubator/activemq/trunk/ FishEye A hearty thanks to Cenqua ...
Source XRef
ActiveMQ Core http://incubator.apache.org/activemq/maven/activemqcore/xref/ ActiveMQ Resource Adapter http://incubator.apache.org/activemq/maven/activemqra/xref/ ActiveMQ Web http://http://incubator.apache.org/activemq/maven/activemqweb/xref
Spring Support
We fully support Spring for configuration of the JMS client side as well as for configuring the JMS Message Broker. Configuring the JMS client To configure an ActiveMQ JMS client in Spring it is just a simple matter of configuring an instance of ActiveMQConnectionFactory within ...
SQLServer
SQL Server SQL Server 2000 Drivers Here is an example of a configuration for SQLServer kindly supplied by Ning Li SSL Transport The SSL transport allows clients to connect to a remote ActiveMQ broker using SSL over a TCP socket. Configuration Syntax ssl://hostname:port?transportOptions Transport Options The configuration options are the same as those for TCP TCP Transport ...
Static Transport Reference
Static Transport The static transport provides a hard coded mechanism to discover other connections using a list of URIs. A connection using this discovery mechanism will attempt to connect to each URI in the list until it is succesful. Configuration Syntax static:(uri1,uri2,uri3,...) Example ...
Stomp
ActiveMQ supports the Stomp http://stomp.codehaus.org/ protocol. This makes it easy to write a client in pure Ruby http://stomp.codehaus.org/RubyClient, Perl http://stomp.codehaus.org/Perl, Python http://stomp.codehaus.org/PythonClients or PHP http://stomp.codehaus.org/PHPClient for working with ActiveMQ. Please ...
STP
Structured Message Properties and MapMessages Structured Message Properties and MapMessages This JMS extension feature allows you to attach Map and List properties to any JMS Message or to use nested Maps and Lists inside a MapMessage. This allows you to efficiently send typesafe structured information in your ...
Subscription Recovery Policy
subscription recovery policy allows you to go back in time when you subscribe to a topic. For example imagine you are processing a price feed; you're using a federated network and either a network glitch occurs or someone kills the broker you're ...
Sun JNDI
here's an example jndi.properties file: java.naming.factory.initial = com.sun.jndi.fscontext.RefFSContextFactory Here's an example .bindind file: For ActiveMQ 4.x its Archive/ClassName=org.apache.activemq.command.ActiveMQQueue Archive/FactoryName=org.apache.activemq.jndi.JNDIReferenceFactory Archive/RefAddr/0/Type=physicalName Archive/RefAddr/0/Content=Archive Archive/RefAddr/0/Encoding=String ...
Support
Getting Help If you are experiencing problems using ActiveMQ then please report your problem to our Issue Tracker http://issues.apache.org/activemq/browse/AMQ. You may also find it useful to discuss your issues with the community on the Discussion Forums ...
Supporting IO Streams
It'd be great to offer kick ass support for streaming files over ActiveMQ of any arbitrary size. The basic idea is to fragment the stream into multiple messages and send/receive those over JMS. There are a few issues to consider... Use casess # many ...
SVN
TTCP Transport ReferenceTCP Transport The TCP transport allows clients to connect to a remote ActiveMQ broker using a TCP socket. Configuration Syntax tcp://hostname:port?transportOptions Transport Options Option Name Default Value Description minmumWireFormatVersion 0 The minimum version ...
Team
page lists who we are. By all means add yourself to the list lets sort it in alphabetical order Committers Name ID Organisation Aaron Mulder ammulder Chariot Solutions http://chariotsolutions.com Adrian Co aco LogicBlaze http://logicblaze.com ...
Terminology
Questions on Message Orientated Middleware and ActiveMQ terminology Store and Forward brokers receive messages, store them locally and forwards the message to a recipient (in this case another broker) when it is able to do so. The message is only deleted once its been ...
Test Source XRef
ActiveMQ Resource Adapter http://activemq.codehaus.org/maven/activemqra/xreftest/ ActiveMQ Web http://activemq.codehaus.org/maven/activemqweb/xreftest
The Broker will not start
been reported that during broker start some users get a message similar to: 15:26:29 INFO Opening journal. Caught: javax.jms.JMSException: Failed to open transaction journal: java.io.IOException: Invalid argument It could be this problem Journal is already opened ...
The JMS Connector
The Proxy Connector Proxy Connector Many of the more advanced ActiveMQ features are implemented in the transports. Sometimes it's desirable to accept one kind of ActiveMQ connection and establish a different kind of connection to another broker. The Proxy Connector allows you to do that by accepting connection on one ...
The vm transport starts a broker before my configured broker starts
Scenario You are using the vm: transport and a broker is autostarted for you so that your configured embedded broker doesn't start. Solution See the VM Transport Reference
Throughput
How many messages can we process per second. Normally MOM style applications focus on asynchronous messaging and SEDA style architectures which aim for massive throughput numbers at the cost of some Latency
Tips for getting help
We are a community based open source project and we really welcome and value your Contributions Contributing. We have various ways of getting help via the Discussion Forums or Mailing Lists. Here are a few tips to help us to help ...
Tomcat
You should go to Tomcat documentation and read JNDI Resources HOWTO, especially part: Configure Tomcat's Resource Factory. ActiveMQ has ready JNDI resource factory for all its administered objects: ConnectionFactory and destinations. You must provide ...
Tools
Topologies ActiveMQ supports a wide range of different deployment topologies as well as protocols URI Protocols & wire formats. The following diagram shows a federated network of brokers with a few different kinds of topology. !BrokerTopology1.png! http://activemq.org/BrokerTopology.pdf Which topology you ...
Total Ordering
Sometimes it can be useful to ensure that every topic consumer sees messages arriving on the topic in exactly the same order. Normally we guarrentee the order of all messages sent by the same producer; however due to multithreading and asynchronous processing, the messages from ...
Troubleshooting
Questions asked when troubleshooting problems
UUDP Transport ReferenceUDP Transport The UDP transport allows clients to connect to a remote ActiveMQ broker using raw UDP Note that by default UDP is not reliable; datagrams can be lost so you should add a reliability layer to ensure the JMS contract can ...
Unix Service
Creating a Unix Service for ActiveMQ Below are steps to make ActiveMQ a Linux Daemon on Red Hat 4 ES. It's based on this article http://www128.ibm.com/developerworks/java/library/lsecjav.html. Settings JAVAHOME = /opt/java/jdk1.5.006 ActiveMQ = /opt/activemq/incubatoractivemq4.0 Installation ...
URI Protocols
ActiveMQ is designed to support mutliple different topologies Topologies and protocols. Which one you use depends on your messaging requirements, quality of service and network topology. The following table describes the different network protocols available along with showing the connection ...
Use Cases
Messaging is a diverse and wide ranging subject there are many different use cases, requirements and deployment options. This is one of the reasons why its so interesting to work on :) This document tries to highlight some of the main use cases we are trying to tackle with ActiveQM ...
User Submitted Configurations
Please add any configurations of ActiveMQ you wish to share with other users here... page contains a list of some of our users and gives a brief overview of how they are using ActiveMQ. The purpose of this page is to help the ActiveMQ community get to know each other & find out what we're all doing with ActiveMQ and for the developers of ActiveMQ ...
Using ActiveMQ
Using Apache ActiveMQ To help you get started using Apache ActiveMQ you may wish to start off with the Getting Started guide or the Configuring Transports. Otherwise here is a complete list of the guides
Using Apache ActiveMQ
Questions on using Apache ActiveMQ
VVirtual DestinationsVirtual Destinations allow us to create logical destinations that clients can use to produce and consume from but which map onto one or more physical destinations. It allows us to provide more flexible loosly coupled messaging configurations. Virtual ...
Visualisation
Inspired greatly by Gregor and Erik's great talk at TSSJS 2006 http://javasymposium.techtarget.com/html/detdescriptions.htm#GHohpeSoftware we've started to add some visualisation plugins into Apache ActiveMQ. Connection visualisation There is a
Visualisation Wish List
zillion different things we could do to visualise the system. Lets use this page to braindump ideas for what kinds of visualisations we could do show visually the popularity of certain destinations; using size/color/position/stats to indicate ...
VM Protocol
Protocol syntax : vm://logicalname Javadocs : org.codehaus.activemq.transport.vm http://activemq.codehaus.org/maven/apidocs/org/codehaus/activemq/transport/vm/packageframe.html The VM protocol allows clients to connect to each other inside the VM without the overhead of the network communication. The connection ...
VM Transport Reference
VM Transport The VM transport allows clients to connect to each other inside the VM without the overhead of the network communication. The connection used is not a socket connection but use direct method invocations which enables a high performance embedded messaging system ...
WWeb ConsoleActiveMQ Web Console is a simple web application for working with ActiveMQ. To run the ActiveMQ Web Console follow these instructions install Maven http://maven.apache.org 2.0.4 or later grab the latest Source of ActiveMQ type the following commands into a command shell mvn ...
Web Samples
few example programs demonstrating the REST messaging or Ajax in the activemq/activemqwebdemo https://svn.apache.org/repos/asf/incubator/activemq/trunk/activemqwebdemo/ module. Or you could try the Web Console. To run the web demo from a source or binary distribution ...
WebLogic Integration
ActiveMQ WebLogic Integration ActiveMQ clients and brokers can be run in WebLogic Server or WebLogic Express. This is usually done for licensing reasons: WebLogic Server includes JMS client and server features, but it may cost extra to use these JMS features to connect ...
What are those topics ActiveMQ.Advisory
When you look at a broker using JMX you will see a number of topics starting with ActiveMQ.Advisory.. These are the destinations used by the Advisory Message feature of ActiveMQ which allows you to listen to the behaviour of the system
What happens when the journal size is exceeded
preferred" size is exceeded then the last log files keeps growing until the first log files can be overwritten. When a log file is overwritten, it's size is reset to the "preferred" size
What happens with a fast producer and slow consumer
depends a little on the QoS but in general we implement flow control which means that when we have a very fast producer and a slow consumer, when we get to a high water mark of outstanding messages we will start to tell the producer ...
What is ActiveMQ
ActiveMQ is an open sourced implementation of JMS 1.1 as part of the J2EE 1.4 specification
What is the difference between discovery, multicast and zeroconf
Discovery refers to either a client (producer or consumer) establishing a 'transport connector' to the broker or a broker establishing 'network connector' to another broker without explicit static configuration of broker (IP or hostname). The scheme 'multicast' refers to either listening for or advertising discovery ...
What is the license
software is open source using the Apache 2.0 licence http://www.apache.org/licenses/LICENSE2.0.html (a liberal BSD style license which is very commercial friendly
What is the prefetch limit for
One of the aims of ActiveMQ is to be a high performance message bus. This means using a SEDA architecture to perform as much work as possible asynchronously. To be able to acheive high performance it is important to stream messages to consumers as fast as possible so that the consumer always has ...
What jars do I need
basic jars you need to use are described on the Initial Configuration page. If you need additional transports, like JXTA, JGroups, JRMS you'll need additional jars as well, dependent on the transport implementation
What platforms does ActiveMQ support
Any Java platform of JDK 1.4 or later. ActiveMQ is based on J2EE 1.4 or later and so implements JMS 1.1 and a JCA 1.5 Resource Adaptor. We regularly test ActiveMQ on Windows, OS X, Linux and Solaris though we're ...
While posting large binary file to activeMQ, is there a way to measure its progress
you are using the JMS Streams feature with 4.x of ActiveMQ http://activemq.org/JMSStreams you'd be able to watch the progress in a JMX console or HermesJMS by looking at the queue depths; each large 1Gb file is split into individual JMS messages so you ...
Why do I not get all of the messages I sent
ActiveMQ 3.x/4.x As Matt reported http://forums.logicblaze.com/posts/list/0/14.page#37 its possible that there is a race condition in your application; are you sure you had created your consumer and called start() on the JMS Connection before the producer started ...
Why do I not receive messages on my durable topic subscription
You follow these steps # Create a durable topic subscription # Kill the consumer # Publish some messages to the topic # Restart the subscriber But you don't receive the messages? Fix To be able to deliver messages to offline durable topic subscribers you must mark ...
Wildcards
We support destination wildcards to provide easy support for federated name hierarchies. This concept has been popular in financial market data for some time as a way of organising events (such as price changes) into hierarchies and to use wildcards for easy subscription of the range ...
Wire Protocol
page describes the logical OpenWire protocol for users developing clients in other languages than Java such as C# or C native clients. Note that OpenWire is designed for maximum performance and features; its the protocol used inside ActiveMQ. If you want a simpler ...
WS Notification
WSNotification This page has now moved to the ServiceMix site http://servicemix.org/. You can read about WSNotification support here http://incubator.apache.org/servicemix/wsnotification.html
WSIF
Apache Web Service Invocation Framework (WSIF) http://ws.apache.org/wsif/ allows you to perform web service invocations using a number of different implementation protocols like Axis, local Java, EJB, JMS, JCA CCI etc. ActiveMQ ...
XXBean XML Reference 4.1Elements By Type The org.apache.activemq.network.jms.InboundQueueBridge #org.apache.activemq.network.jms.InboundQueueBridgetypes Type Implementations
Xml Configuration
We support an XML deployment descriptor for configurating the ActiveMQ Message Broker. There are many things which can be configured such as transport connectors which consist of transport channels and wire formats TODO: add a link to a page explaining what transport ...
Xml Reference
page contains a link to the XML reference guides and XML schema documents for Xml Configuration with ActiveMQ releases Reference Document Reference XML Schema XBean XML Reference 4.1 4.1SNAPSHOT http://people.apache.org/mavensnapshotrepository/incubatoractivemq/incubatoractivemq/4.1SNAPSHOT/activemq.xsd.html XSD ...
XMPP
XMPP Protocol Support (Jabber!) We have support for XMPP (Jabber) as a transport in ActiveMQ. It requires Apache ActiveMQ 4.1 or later and the activemqxmpp library to be on the classpath. (The source code for activemqxmpp is here https://svn.apache.org/repos/asf/incubator/activemq/trunk ...
YZ!@#$ | |||||||||||||||||||||||||||||