JBoss Messaging 1.0.0alpha-PR1 Release Notes
July 6, 2005
Note: The current JBoss Messaging distribution is a preview alpha release. We strongly advise against using it in a production environment.
This notes document the first preview release of JBoss Messaging. In its production release, JBoss Messaging will be a JMS 1.1 compliant JMS provider, based on a completely new design, which recycles a limited number of JBossMQ well-designed sub-systems and replaces everything else. The production release will show improvements in three areas:
Increased performance under high load. The JBoss Messaging internals are based on an asynchronous channel architecture, which reduces the number of synchronization bottlenecks and maximize the throughput of the system.
Better high availability/load balancing features. JBossMQ is essentially a singleton (hub and spoke server architecture). Some HA features have been later bolted on it, but it lacks in-memory replication of NON_PERSISTENT messages, distributed/replicated destinations and transparent fail-over. JBoss Messaging will add these features.
Better modular architecture. There is a clear distinction between the reliable distributed messaging core and the JMS facade. The implementation uses JBoss AOP and an interceptor architecture to implement the JMS Facade. That would allow advanced configurations, where behavior can be shifted back and forth from client to server, with direct applications on thinner or thicker clients and serverless JMS.
The current preview release has a significantly reduced feature set. For a highlight of the current release limitations, go to the "Limitations" section.
The current release has been tested with JBoss 4.0.2 and JBoss 5.0.0alpha.
The JBoss Messaging release bundle includes the following files and directories:
jboss-messaging.sar - the deployable JBoss service archive that contains JBoss Messaging and its dependencies. For instructions on how to deploy the service, go to the "Installation" section.
src - the expanded JBoss Messaging source code. Note that JBoss Messaging cannot be built using exclusively this source snapshot, which is provided here for reference only. If you wan to build JBoss Messaging from source, follow the instructions from the "Building JBoss Messaging from sources" section.
JBossMessaging-1.0.0alpha-pr1-src.zip - the zipped src directory.
examples - a collection of simple JMS examples that should run out of the box and help you validate the installation.
Deploy the JBoss Messaging by copying the service archive jboss-messaging.sar into the deployment directory of a JBoss 4.0.2 instance. In case that you run the default configuration, the deployment directory is $JBOSS_HOME/server/default/deploy.
A successful deployment generates logging output similar to:
20:19:30,875 INFO [AspectDeployer] Deployed AOP: jar:file:/C:/jboss-4.0.2/server/default/tmp/deploy/tmp49925jboss-messaging.sar!/jms-aop.xml 20:19:30,921 INFO [SocketServerInvoker] Invoker started for locator: InvokerLocator [socket://192.168.1.3:4447/? marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller& dataType=invocation&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller] 20:19:32,000 INFO [ServerPeer] JMS ServerPeer (id=0) started
Note: Deploying JBoss Messaging has as a side effect the fact that previous JBossMQ JNDI bindings such as /ConnectionFactory, will be overwritten. In order to start using JBossMQ again, you either need to either re-deploy JBossMQ, or delete jboss-messaging.sar from the server's deploy directory and restart the server instance.
You can use a number of simple JMS examples that are provided with the release to validate the deployment. Each example has its own README.html file that contains instructions on how to run it. The readme files and the source code are available under the examples directory.
Building JBoss Messaging from source
In order to build this version of JBoss Messaging from source, you will need to check out the whole JBoss AS source tree from the anonymous JBoss CVS. Instructions on how to do this are available at http://wiki.jboss.org/wiki/Wiki.jsp?page=CVSRepository. A condensed version of the whole procedure is provided below:
cvs co -r JBossMessaging_1_0_0_alpha_PR1 jboss-head cd jboss-head ./build/build.sh cd jms ./build sar-scoped
This will generate a jboss-messaging.sar service archive in output/lib.
This is the first release in a long (we hope) series of releases. This is also an alpha and a preview release, coming straight from our editors. We don't expect it to be perfect, not even complete, but we see it more as an intermediate step towards the perfect release that will come ... soon. However, it is complete enough so you can get an idea about the overall architecture and sub-systems. It's 85.61% JMS 1.1 compliant, which means that it passed 85.61% of the Sun Microsystem's CTS. Some of the known major limitations are:
Support for PERSISTENT messages is not complete.
A JCA Adapter is not available.
Support for high availability and load balancing is not complete. The base architecture has the wiring for distributed/replicated destinations, but it is not active yet.
JIRA Release Notes
Release Notes - JBoss Messaging - Version 1.0.0 alpha PR1 (non-clustered)
JBMESSAGING-5 - Implement a JMX management interface for ServerPeer
JBMESSAGING-51 - JMSCorrelationID
JBMESSAGING-52 - JMSReplyTo
JBMESSAGING-15 - Router implementation
JBMESSAGING-34 - JBossSession
JBMESSAGING-35 - TemporaryQueue/TemporaryTopic
JBMESSAGING-36 - JBossMessageProducer
JBMESSAGING-37 - JBossMessageConsumer
JBMESSAGING-38 - QueueBrowser
JBMESSAGING-46 - Change MessageCallbackHandler depending on JBREM-93
JBMESSAGING-58 - JBoss Messaging 1.0.0 Alpha PR1 Non-Clustered
JBMESSAGING-60 - Implement all Message types
JBMESSAGING-61 - Complete message header field set support
JBMESSAGING-62 - Message properties support
JBMESSAGING-63 - Message acknowledgment
JBMESSAGING-64 - Message Selectors
JBMESSAGING-69 - Durable Subscriptions
JBMESSAGING-71 - Queue/Topic Requestors