I would just like someone to confirm how I specify an exact maximum limit of memory that queued JMS messages should use.
I currently have three separate queues all of which store messages using the JDBC persistence manager into a local Firebird database.
Do I just need to change the 'org.jboss.mq.server.MessageCache' bean in the jmsmq-service.xml? i.e. The HighMemoryMark, and MaxMemoryMark attributes of this mbean.
Also when the messages are swapped out of memory when these limits are reached will they be stored into the currently configured 'PersistenceManager' mbean which is my file in the JDBC one? Because this doesn't seem right because my messages are already in the database as they are durable.
Could someone advise me on this?
Messages are not durable. Subscriptions are durable.
Messages can be persistent.
If your message is persistent and the subscription is durable, the
MessageCache will have little todo.
It will just drop the message from memory since it is already persisted in the db.
I suggest you use search where you will find the algorithm explain in detail