The factory will be based on Default messaging provider.
The reason for doing so is I have a mock MDB in place of an external system, normally connected via Websphere MQ. The mock and the tested application are installed on the same server, so I need to make sure that in the cycle
request -> mock listener -> mock reply -> response
request and reply are two separate transactions.
I can’t see any option in the console to remove the factory from transaction manager’s supervision.
You are correct in your observation that the JMS Connection Factory cannot be configured to not enlist in the current transaction. I am a little unsure of what you are trying to achive here, but I’m going to make the following assumption:
In this scenario the client needs to send and commit the message before the listener will get it to send the reply. The listener can receive and reply in one transaction, but the client needs two. I am furthermore assuming that the client is an EJB.
One solution to this would be use bean managed transactions. In this case you can manually begin a transaction and commit it around 1 and again around 3. This will cause the message to be sent.
Another solution would be to do the send in an EJB method with RequiresNew and the receive in another EJB method with RequiresNew. Then the client calls the send EJB method followed by the receive EJB method and each method has its own transaction.