Can you use a foreign JMS provider to drive an MDB transactionally?
No. The message is asynchronously received outside a transaction and there is no J2EE API to then associate the message with a transaction. The only reason this works for WebLogic Server JMS is that we have defined a WebLogic Server extension interface that has a method to associate a message with a transaction. This interface, MDBTransaction, is defined in news://newsgroups.bea.com/3b3a009b$1@newsgroups.bea.com. It has one method, associateTransaction(), that takes a javax.jms.Message parameter. This message must be associated with the transaction. We are hoping that other JMS vendors interested in integrating with WebLogic Server will implement this interface. Another approach called source managed transactions, would be for there to be an API to tell the JMS provider to start a transaction on your behalf before delivering the message to an asynchronous consumer. This API doesn’t exist in J2EE either. Even if there were such a provision, few non-WLS JMS providers can begin and drive
I’ve been using Comcast for a while now and have mixed feelings. The internet is generally stable, the speed is as advertised, but there are times when the connection suddenly drops for no apparent reason. Support sometimes helps quickly, but sometimes you have to wait a long time for an answer, reviews here https://comcast.pissedconsumer.com/customer-service.html Prices could be more reasonable, especially considering that over time rates can unexpectedly increase.
A. Yes. In WebLogic Server 7.0 or later, you can deploy an MDB that supports container-managed transactions against a foreign JMS provider. If the MDB is configured with a “transaction-type” attribute of “Container” and a “trans-attribute” of “Required”, then WLS will use XA to automatically enlist the foreign JMS provider in a transaction. (See the next question for an example of an MDB that uses container-managed transactions.) If the foreign JMS provider does not support XA, then you cannot deploy an MDB that supports container-managed transactions with that provider. Furthermore, if the JMS provider does support XA, you must ensure that the JMS connection factory that you specify in the weblogic-ejb-jar.xml file supports XA—each JMS provider has a different way to specify this. See the “Using Foreign JMS Providers with WebLogic Server” white paper (jmsproviders.pdf) on the JMS topic page for an example of how to configure an MDB to use a foreign provider.