ActiveMQ producer flow control feature allows you to prevent overflowing the broker by slowing down fast producers. Thus far you had two options, the producer send() method will either wait until space becomes available, or fail if it’s configured through sendFailIfNoSpace property, like this: <systemUsage> <systemUsage sendFailIfNoSpace=”true”> <memoryUsage> <memoryUsage limit=”20 mb”/> </memoryUsage> </systemUsage> </systemUsage> For… Continue reading ActiveMQ producer flow control with timeout
Jettison 1.2 Released
Jettison version 1.2 has been released. The highlights of this release are: Refactored MappedXMLStreamWriter – which solved many issues with serializing arrays Plugable type converters and support for 64-bit long conversion You can find the full change log for this release on the Download page. Enjoy
Handling IOException in ActiveMQ
When you encounter IOException trying to persist a message on the disk, you know something has gone wrong. One of two things usually happen: Either your disk is dead, or disconnected in case you use network disks Or you just don’t have more space on the disk Depending on the type of the exception you… Continue reading Handling IOException in ActiveMQ
Fuse Stomp project
In our attempt to provide better future for Stomp protocol, we already moved specification under ActiveMQ project umbrella, where all future specification improvements will be done. Another necessary step is to provide high-quality Stomp clients for use in different development environments. For that purpose, we created Stomp project on FUSE Forge. It should provide a… Continue reading Fuse Stomp project
Python messaging: ActiveMQ and RabbitMQ
I found myself recently with a task of testing various Python messaging clients. In this article I’ll present my findings regarding performance and scalability on two Python clients connecting to ActiveMQ and RabbitMQ message brokers. For ActiveMQ Python client, I used pyactivemq library version 0.1.0. It’s basically a Python wrapper for ActiveMQ-CPP library, allowing Python… Continue reading Python messaging: ActiveMQ and RabbitMQ
Apache ActiveMQ 5.3.0 Released
After more than a year in development, we finally released 5.3.0 version of ActiveMQ. It contains over 300 bug fixes, but also some of the neat new features. The full list of features and bug fixes, as well as the download link can be found at the release page Here, I would like to emphasize… Continue reading Apache ActiveMQ 5.3.0 Released
XML to JSON
While working on Jettison, I often have need to convert XML to JSON. Here’s a simple method that uses XStream and Jettison to do this conversion. import java.io.StringReader; import java.io.StringWriter; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.io.copy.HierarchicalStreamCopier; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; import com.thoughtworks.xstream.io.xml.XppReader; public class Test { public static void main(String[] args) throws Exception { String xml =… Continue reading XML to JSON
Wire format negotiation timeout and log4j jms appender FAQs
Some folks have been experiencing problems with wire format negotiation timeouts. Sometimes it was due to overloaded brokers or lousy networks, but misconfiguration of log4j jms appender could also be one of the causes. So, I wrote two FAQ entries that covers this topic: Using log4j appender with ActiveMQ Wire format negotiation timeout exception Enjoy
Stomp Future
While thinking about the future of Stomp protocol, we concluded that the best place for future maintenance of the specification is under umbrella of ActiveMQ project. There are a couple reasons for this, but it basically boils down to two facts: Apache infrastructure is much better suited for this task than the one currently used… Continue reading Stomp Future
pyactivemq on Ubuntu
pyactivemq is a Python library that enables Python clients to communicate with ActiveMQ using both OpenWire and Stomp protocols. To do that it wraps ActiveMQ-CPP library, so it involves some compiling to make it all work. While building instructions for both ActiveMQ-CPP and pyactivemq and clear and concise, I found some additional steps were need… Continue reading pyactivemq on Ubuntu