Add JMS Input support

Description

A lot of people are using JMS still, be it ActiveMQ, TIBCO, Weblogic, WebsphereMQ etc. In order to plug into their pub/sub event system and start sending data to an output via Logstash, it would be great to have a generic JMS input adapter that someone could just plugin.

Gliffy Diagrams

Activity

Show:

Philippe Weber August 1, 2014 at 7:42 AM

Damien Claveau February 15, 2014 at 9:26 PM
Edited

Development in progress...
See pull request https://github.com/elasticsearch/logstash-contrib/pull/3
Which JMS broker are you expecting to be supported ?

Damien Claveau February 7, 2014 at 9:59 PM

Steve,
I was just to file the same request here to describe exactly the same need.
I have been trying to integrate Logstash with Oracle Advanced Queuing (now called Oracle Streams) for 2 weeks.

I have already identified the more reliable ruby gem to do that : https://github.com/reidmorrison/jruby-jms
I have made some standalone test, and it seems quite simple to integrate in an input plugin.
The basic core code is there : https://github.com/reidmorrison/jruby-jms/blob/master/examples/producer-consumer/consumer_async.rb

The gem implements ByteMessage, TextMessage and MapMessage (eg Key/Value pairs) JMS classes.
I think that TextMessage can easyly be decoded with a codec, whereas MapMessage KV will have to be assigned to the logstah Event hashmap.

One specificity is that we have to configure the directory where to find the vendor specific libs (eg the jars from IBM, Oracle...) in a Yaml config file, and the connection options can be a JNDI context.

Does some of the logstash experimented contributors can gave us some guidelines for such a plugin ?
Can you give us some advice on the closest (in term of design pattern) existing input plugin, so that I could take it for example ?

Sorry for my bad english.

Duplicate

Details

Assignee

Reporter

Labels

Affects versions

Created February 4, 2014 at 7:54 PM
Updated August 1, 2014 at 7:42 AM
Resolved August 1, 2014 at 7:42 AM