简体   繁体   中英

Which JMS client library to use?

We want to subscribe to a JMS topic from our java implementation. JMS topic team suggests to use tibco library. I just want to ask if it is mandatory to use the same libraries which server/topic is using to send the messages or can I use any library irrespective of JMS server implemetation?

JMS is an API specification. It doesn't include a wire format so JMS providers are free to implement it however they wish. Therefore, the kind of JMS client you use is dictated by which provider you use (eg if you use a Tibco broker then you would use a Tibco client). However, there are also brokers like Apache ActiveMQ Artemis which support multiple JMS implementations (ie OpenWire & core). There's also the Qpid JMS client which should work on any broker supporting AMQP.

JMS providers, and there are many , want you to use their product. So you must use a library from the same company for all your clients. Eg an EMS client won't work with an ActiveMQ Broker and vice versa. Usually, the 'wire format' is proprietary, so it's not possible to just code against the TIBCO EMS/Solace/MQ wire format.

That situation is bit better with an AMQP or MQTT solution. Here the wire format is public knowledge and anyone can build their own AMQP client library and they all work together. But then again, the AMQP API's are usually different.. So the sweet spot might be JMS over AMQP (QPid, for example).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM