Tuesday, December 29, 2009

RC-2 of Apache.NMS and Apace.NMS.ActiveMQ now available

I've just finished work on the RC-2 bundles of Apache.NMS and Apache.NMS.ActiveMQ. Release candidate 2 resolves several issues found since the RC-1 version was posted. The bundles are available here

This release adds the Inactivity Monitor to NMS.ActiveMQ which is useful in detecting broken connections quickly which allows the failover transport to recover your connection faster. The inactivity monitor is disabled by default in this RC while we continue to test it, you can enable it by add "transport.useInactivityMonitor=true" to your connection URI. Also several bugs related to transactions and message redelivery were addressed in this release.

Monday, December 21, 2009

ActiveMQ-CPP 3.1.0 Released

The official release of ActiveMQ-CPP 3.1.0 is ready for download. This new release incorporates several new features and some nice performance improvements. Grab a copy today.

Thursday, December 10, 2009

NMS.Stomp Coming together.

I got the basics all working today in NMS.Stomp. Producers and Consumers are talking to each other nicely and the initial unit tests are all passing. The code still won't build on the .NET Compact Framework but that will come soon enough.

Monday, December 7, 2009


I started working on NMS.Stomp late last week. This new NMS implementation will provide a much lighter wright NMS client for Stomp compared to the NMS.ActiveMQ module. We plan on making this build for the .NET Compact Framework as well since we removed that from NMS.ActiveMQ.

Gearing up for the ActiveMQ-CPP 3.1 Release

Took some time over the weekend to update some things on the CMS API Overview page, added info on StreamMessage and the now supported Individual Ack mode. Also added two complete examples to the overview.

I was also able to fix an issue with the ActiveMQ-CPP RC1 code thanks to a report from a user on problems he was having.

I plan on updating the CMS site some more before the 3.1 release to improve our documentation.

Thursday, December 3, 2009

ActiveMQ-CPP 3.1.0 RC1 Released Today

Right on the heels of the NMS 1.2.0 RC1 release comes the ActiveMQ-CPP 3.1.0 RC1 release.

Some of the highlights of this release are the addition of the Inactivity Monitor which allows detection of failed connections much quicker which makes the failover capabilities even more robust than in the 3.0 releases. The Threads code has been rewritten as well and is now much leaner and performs quite a bit better than previous versions. This version also support the Individual Ack mode that was introduced in ActiveMQ 5.2.

Grab a copy of the RC1 source archive from here and start testing it out today!

Wednesday, December 2, 2009

Apache NMS 1.2.0 RC1 is out

After several months of hard work we've finally finished the next major release the the Apache NMS clients. The ActiveMQ .NET client has undergone a major rewrite to improve stability and performance. We've added new features like support for the JMS style StreamMessage and much much more.

Check it out today!

You can download the RC1 source and binary packages from here

Friday, August 14, 2009

FUSE Message Broker .NET Client released today!

FUSE Message Broker .NET Client has just made its first release!

Based on the Apache ActiveMQ .NET / NMS technology, this product allows .NET and C# applications to interoperate seamlessly with existing Java-based FUSE Message Broker deployments.

This initial release (v.1.1) is supported on Windows XP and Server 2003 (both 32- and 64-bit) with .NET 2.0 and up.

Head on over to the FUSE Forge to download it now:


Monday, July 20, 2009

FUSE version of ActiveMQ-CPP now available!

A new FUSE version of the ActiveMQ C++ client is now available here, this version provides several new examples that aren't available in the Apache release of the C++ client.

Tuesday, July 7, 2009

Python Client that makes use of ActiveMQ-CPP

If you've ever wanted to talk to an ActiveMQ broker from Python using the native Openwire protocol in ActiveMQ then I've got just the thing for you, this Python Client for ActiveMQ makes use of ActiveMQ-CPP under the covers and will soon allow you to use the new 3.0 release which will make the Failover functionality available in your app.

And for those of you on Ubuntu, Dejan Bosanac has put together an excellent guide on how to build it on ubuntu.

Sunday, July 5, 2009

ActiveMQ-CPP 3.0.1 Released

This Friday ActiveMQ-CPP 3.0.1 was released. This release fixes some issues that were found in the Failover Transport, and also some minor issues with URI options that weren't getting applied correctly. I highly recommend that anyone using 3.0 move up to 3.0.1.

Friday, June 12, 2009

New ActiveMQ-CPP tutorial posted

I took some time today to write a short tutorial on how to handle the advisory messages that ActiveMQ can send using the CPP client. Its still a work in progress but comments are welcome.

The tutorial is available here.

ActiveMQ-CPP 3.0 Released

Finally! ActiveMQ-CPP 3.0 got released today. This release has been in the works for awhile and a lot of the code has been rewritten, simplified and otherwise scrubbed. We now support a Failover Transport and the CMS StreamMessage which mimics the JMS message of the same name.

You can visit the release page for the full list of issues that were addressed here.

Tuesday, May 26, 2009

ActiveMQ-CPP 3.0 RC2 Released

I finally got all the tests working on all the platforms I have access to and now there is a new Release Candidate available for ActiveMQ-CPP 3.0. The third release candidate contains a lot of cleaned up API documentation for CMS, and some fixes for issues that we found while doing some more cross platform testing. The one new item in the release is support for the JMS / CMS StreamMessage. Originally the StreamMessage support was slated for a later 3.x release but once I took a look it turned out to be surprisingly simple to implement given all the other goodies we had developed to make the MapMessage work, so I squeezed it into this release.

While generating the new API docs in anticipation of a 3.0 release I found that our doxygen configuration was causing over 300 megabytes of glut. After some tweaking I was able to get rid of a lot of useless diagrams and other odds and ends from the configuration that have scaled it back to around 20 megabytes. That should save on server space at Apache...

Monday, April 20, 2009

Finally, a 3.0 Release Candidate

Well it felt like it took me forever to get this all put together but I finally have a release candidate for ActiveMQ-CPP 3.0. The first candidate RC0 can be downloaded from the Apache ActiveMQ-CPP website here.

I've tested the release on Fedora 10 and Windows XP both in 32bit and 64bit compiles. Now I need some users to grab it and start testing it out to find the bugs I didn't.

Thursday, April 16, 2009

ActiveMQ-CPP Release Candidte

I've been trying all week to get the CPP client to build cleanly on Windows but still haven't been able to resolve all the DLL build issues, and don't even get me started on 64bit builds. Why is building on Windows always such a pain in the arse?

In the meantime I've resolved a couple of issues that were submitted last week that fix some pretty important things. We had previously written some code to hand sending the C++ strings to the Java broker in the native Modified UTF-8 format that Java uses but we made a mistake and didn't properly encode NULLs or any ASCII character over 127, well that now all fixed. As a bonus I realized that our code was also not taking advantage of the fact that the Openwire processing on the Java side allows for strings to be encoded with a size larger than 65535 bytes for string values in the Message properties not just in the TextMessage payload, so the long standing limit on string length in Message properties is now gone as well.

One other small fix adds the ability to set the max inactivity duration value on the URI and to properly negotiate it with the broker.

So all in all not a bad week as far as improvements to the client goes, now if only this Windows build would finish...

Thursday, April 2, 2009

ActiveMQ-CPP 3.0 Right around the corner

There's been a lot of work going on to revamp ActiveMQ-CPP over the past couple of months. The major new feature of course if Failver support, but besides that there's also been a lot of work done to make the code faster and more reliable. The end is in sight, Failover is working now, and most of the open issues are closed. There are a few small tasks remaining as well as a lot of testing to do but the code is now at a point where folks can start using it. I just finished making several fixes to the Transactions handling code and also cleaned up the way Message's are ack'd. If all goes well in my testing I'm hoping to have a release candidate out in another week or so.

Saturday, February 28, 2009

Writing a CMS User Guide

I decided that the CMS page was decidedly lacking in actual documentation on how to use CMS so I've started putting together a user guide / overview of CMS and the ActiveMQ-CPP implementation of CMS. There's not a lot there yet to review, but as always contributions are welcome.

Here's the link.

Wednesday, January 14, 2009

What's ahead for ActiveMQ-CPP

ActiveMQ-CPP started out as a Stomp based client for AMQ a couple years ago, since then its grown and evolved to support the native OpenWire protocol used in AMQ along with a slew of other features. Unfortunately its reached a point where the architure that we originally came up with is working against adding new features like Failover support for example. That's why I'm now focusing on a major refactor of the code to correct some of the shortcomings that are standing in the way of new features and also to improve performance and hopefully reliability at the same time.

From this point ou the 2.x branch will only see releases when there's a compelling reason to do so such as a critical fix or other small tweaks that helps someone currently using the library.

The next major release will be version 3.0. What we gain from this will be a much cleaner architecture and hopefully much faster adoption of new features that bring the C++ client closer to feature parity with the Java client. The main new feature targeted for 3.0 is failover support, but hopefully we'll be able to sneak in a few other goodies as well.

Stay Tuned.