12.11.2014 Views

web server - Borland Technical Publications

web server - Borland Technical Publications

web server - Borland Technical Publications

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter<br />

24<br />

24JMS provider pluggability<br />

Chapter<br />

Important<br />

For documentation updates, go to www.borland.com/techpubs/bes.<br />

BES is designed to support any arbitrary JMS provider as long as some requirements<br />

are met. There are three levels of JMS pluggability: runtime pluggability, configuration<br />

of JMS admin objects (connection factories and queues/topics), and service<br />

management. You will achieve the best results if all three are met, but just having the<br />

runtime level pluggability, as well as vendor-specific ways to achieve the other levels,<br />

may be sufficient in many situations.<br />

BES 6.5 bundles three JMS providers - Tibco JMS 3.1.1 V22, Sonic 6.0, and OpenJMS<br />

0.7.6.1. OpenJMS is bundled as a partition level service.<br />

JMS provider clustering and security are also discussed in this section.<br />

Runtime pluggability<br />

Runtime pluggability is determined by compliance to the J2EE specification. A CTS<br />

compliant JMS product that additionally implements the JMS specification optional<br />

APIs can seamlessly plug into the BES runtime. All features like transactions and MDB<br />

support are retained.<br />

JMS products must possess the capability to perform transactional messaging to<br />

support MDBs and J2EE container intercepted messaging. That is, a JMS queue or<br />

topic must be a transactional resource. BES requires that JMS products implement the<br />

JTA XAResource interface and support JMS XA APIs.<br />

In addition, the JMS product should support the javax.jms.ConnectionConsumer<br />

interface. The latter is vital since a central idea of MDBs is the concurrent consumption<br />

of messages. The ConnectionConsumer interface achieves this. The mechanism also<br />

works in conjunction with some optimal methods of the javax.jms.Session objects,<br />

namely Session.run() and Session.setMessageListener().<br />

Additionally, BES 6.5 passed CTS 1.3.1 on both JMS providers.<br />

Chapter 24: JMS provider pluggability 221

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!