Reputation: 1558
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?
Upvotes: 3
Views: 3056
Reputation: 4303
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. E.g. 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).
Upvotes: 2
Reputation: 34998
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 (e.g. 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 (i.e. OpenWire & core). There's also the Qpid JMS client which should work on any broker supporting AMQP.
Upvotes: 4