JMS API declare many General and concrete Interfaces (e.g., Connection vs. QueueConnection). It is documented that the best practice is to use the general interfaces (e.g. Session and not QueueSession). If my application is using both queues and topics and I'm going general, that is: Connection-->Session-->Topic/Queue, and suppose to support all JMS implementations (TiBCO, WebLogic, Websphere etc...) can I assume that using general entities will work for both types out-of-the-box (queues and topic)?
To emphasize my point: can I assume all implementers do implement the java.jms.Connection interface and can work in general matter for both types?
Thanks, Guy
the java.jmx.Connection is not optional in JMS 1.1 specification so a valid implementation should work. Most of the optional stuff in JMS is listed in chapter 8 "JMS Application Server Facilities" of the JMS 1.1 spec.
One notable point is that ExceptionListener for a Connection is optional according to the spec.
I guess the main point here is that you really should review your design and implementation against the spec to make sure you are not relying on any optional features and you should be reasonably safe in having a portable implementation.