AFAIK you can't.
You could try coding your own "Persistence Manager" that never stores messages on disk; it wouldn't be too hard to do. Have a look at the org.jboss.mq.pm.* source code.
There is no org.jboss.pm.mq.* in Jboss 2.4.4, all the Persistence classes are in org.jboss.ejb.
I took a quick crack at it, by creating a MyPersistenceManager which implements StatefulSessionPersistenceManager, leaving all methods blank so that it would do nothing, and put it in the jboss.xml configuration file but it didn't seem to do anything.
So now I have to delve into it further. Is the persistence manager for MessageDrivenBeans managed by the ContainerFactory? Should a Message Beans PersistenceManager implemnet the StatefulSessionPersistenceManager or something else? Is it even configurable? Could someone point me in the direction or clarify where Message Beans are managed?
Hey, what are you talking about.
- Persistence in JMS is managed by the JMS provider, i.e org.jboss.mq
- An MDB is a simple JMS client and does not handle persistence at all.
Can the JMS provider be configured or managed in anyway such that it does NOT write the queue to disk? We're taking a large hit in our apps performance. In addition, if the app server goes down, I don't want it to pickup from the persisted queue, so I have to delete those files before each startup.
I do no have access to any of the org.jboss.mq.* classes to poke around in. I am using 2.4.4.
Are really messages sent as non persistent persisted?
JBossMQ is in the jbossmq module. Check out the Branch_2_4
It is using the rolling persistence manager. This takes 79 milliseconds to queue each message. I see four options for persistence managers: rolling, file, jdbc, and logged. I need none, as in no persistence whatsoever, only an in-memory queue if I can do it.
Both the jboss.jcml and the jboss.xml files allow for the declaration of a Persistence Manager. Does the jboss.xml's <container-configuration> <persistence-manager> actually override the config in jboss.jcml on a per message driven bean basis? Or do message driven beans just ignore the <persistence-manager> tags?
Can I define or NOT USE a persistence manager for a particular queue (and can this be configured in the jboss.jcml file?
Did you know that message persistence is assigned at the message level??? By default JBossMQ makes messages persistent. If you do not want messages to get persisted by a persitence manager, just have the client send non-persistent messages to the queue.
One way to do that is by using the QueueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);