Hello.
I'm trying to follow the instructions at:
http://www.jboss.org/wiki/Wiki.jsp?page=ConfigJBossMQNullPersistence
My steps:
1) remove deploy/jms/hsqldb-jdbc-service.xml
2) drop examples/jms/null-persistence-service.xml into deploy/jms
3) start jboss
4) run simple stress client on queue/testQueue
As far as i understand i now have one persistence manager with the ObjectName 'jboss.mq:service=PersistenceManager' and class 'org.jboss.mq.pm.none.PersistenceManager'. The DestinationManager also uses this persistence manager ('null pm').
So if JBoss is processing messages and the MessageCache signals that memory is getting tight, it uses its CacheStore ('null pm') to persist messages. The 'null pm' does not actually persist anything. References to messages may be softened by the MessageCache. Finally if the jvm is running out of memory, it can clear the soft references and thus all reference to those particualar messages would be lost (this behavior may well be desirable DeliveryMode.NON_PERSITENT). Is this summary correct?
Q1) Wiki says change the name of the persistence manager from the default...why? Is this not a valid setup? Or is this referring to the scenario where you want multiple pms?
Q2) Wiki says i can configure my destinations w.r.t caching and persistence. The only thing i can see here is to configure a queue definition with a particular DestinationManager. Is this what is meant?
Q3) Does the 'TemporaryInMemory' attribute in the DestinationManager only apply to temporary topics/queues? Should http://www.jboss.org/wiki/Wiki.jsp?page=ConfigDestinationManager make this explicit?
Q4) What is the default behavior of the 'null pm' for say messages in a Queue (non-temporary).
cheers
I have found out that the 'null pm' does not simply drop messages, he stores them in a ConcurrentHashMap.