Every message in JMS queue or topic is treated as a separate thread. It works with threads basically.
When any service is dealing with JMS to put or pick message from JMS, it creates(to put) a connection or polls(to pick) a connection for every thread/message.
It would be connection pooling instead of session pooling.
Thanks again for your reply.
So it means, we can't use JMS 'flow control' with JMS Adapter?
I have just found below article:
Example of Flow Control Settings for Oracle JMS Adapter [http://docs.oracle.com/cd/E23549_01/doc.1111/e15731/adapter_tech.htm#CHDHFEEC]
So it means, Flow Control can be set for JMS Adapter.
and that mean SOA Suite JMS Adapter creates(or use a connection from the pool) a connection, it receives all the available JMS Messages from the JMS Queue in a single JMS Seesion thus flow control settings at JMS Connection Factory can be used for controling the inflow of JMS Messages.
I agree with your thread concept that every connection need a thread assigned but I was not expecting SOA JMS Adapter to create a connection for every single message in a JMS Queue.
I have done the POC(JMS Flow Control/Message Throttling) with OSB but I need to complete the POC for SOA Suite JMS Adapter.
If you want to control the flow in JMS, the only option is to use throttling i.e. using work manager concept.
Help this blog by marking the answer correct or helpful.