Hello. This question is about how to configure JBossMQ to cope with a huge flood of messages that are NON_PERSISTENT.
Assumptions: - A NON_PERSISTENT message does not have to be stored persistently, server may drop/lose some. The javadoc says: anonymous wrote : | This is the lowest-overhead delivery mode because it does not require | that the message be logged to stable storage. The level of JMS provider | failure that causes a NON_PERSISTENT message to be lost is not defined. - The MessageCache is good since it stops me hitting a OutOfMemoryException - It is fatal (from a performance standpoint) for the cache to begin storing messages to secondary storage. This will only make the situation worse if we are being flooded with messages. Questions and attempted answers: Q1) When does JBoss drop NON_PERSITENT messages? A1) Reboot i presume? Q2) Can the NullPersistenceManager be used in this scenario? A2) I don't think so since it stores all the messages in a Map in memory and will not drop messages. So we'll start running out of memory [i tried this, see below]. Q3) If my requirement is for JBoss to still be responsive when i get a flood of messages and i'm happy to lose messages what are my options? A3) I imagine i could write my own org.jboss.mq.pm.PersistenceManager/CacheStore whose implementation of saveToStorage() just loses the message. I would be very grateful for input/feedback on these questions/answer attempts. I did try replacing deploy/jms/hsqldb-jdbc-service.xml with examples/jms/null-persistence-service.xml and running my stress client with the default jvm heap size. What i observe is that the CPU hits 100%. If i enable tracing i very rapidly get GIGA bytes of logs. Looking at them there is an awful lot of the following: | 2004-07-22 16:53:24,187 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,187 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,187 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,187 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,187 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | | ... | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.TracingInterceptor] CALLED : transact | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.TracingInterceptor] ARG : [EMAIL PROTECTED] | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.BasicQueue] acknowledge AcknowledgementRequest:ACK,TOPIC.testTopic,ID:21-1090507594531644 12614 [EMAIL PROTECTED]:1.-2147483648} | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.TracingInterceptor] RETURN : transact | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.TracingInterceptor] CALLED : receive | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.TracingInterceptor] ARG : -2147483648 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.TracingInterceptor] ARG : -1 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.security.ServerSecurityInterceptor] Checking receive authorize on ConnectionToken:ID:1/0936deaa2c42a73e515828be586c1022 subId=-2147483648 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.security.SecurityManager] Checking authorize on subjectInfo: SubjectInfo {subject=Betreff: | Principal: guest | Principal: Roles(members:j2ee,guest,john) | ;principal=null;roles=Roles(members:j2ee,guest,john) for rolePrincipals [durpublisher, publisher, guest] | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.BasicQueue] receive Subscription[subId=-2147483648connection=ConnectionToken:ID:1/0936deaa2c42a73e515828be586c1022 destination=TOPIC.testTopic messageSelector=null Local Create] wait=false [EMAIL PROTECTED]:1.-2147483648} | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.SpyXAResource] Start xid=XidImpl [FormatId=257, GlobalId=jboss-laptop//12655, BranchQual=], flags=0 [EMAIL PROTECTED] txid=-9223372036854763180 XA RUNNING [EMAIL PROTECTED]:ID:1/0936deaa2c42a73e515828be586c1022 rcvstate=STARTED]]] | ... | | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | 2004-07-22 16:53:24,687 TRACE [org.jboss.mq.server.MessageReference] saveToStorage rejected by cache 12630 msg=12629 hard NOT_STORED NON_PERSISTENT queue=TOPIC.testTopic.ID:1.-2147483648 priority=4 lateClone=false hashCode=14952304 | the saveToStorage appears over 14000 times for msg=12629. I rekon this is where the CPU is spending the time. I found the code that does it, but don't really know whats going on here: | void makeSoft() throws JMSException | ... | // HACK: allow the jdbc2 driver to reject saveToStorage for persistent messages | // it is just about to persist the message when it gets some cpu | if (stored != STORED) | { | if (trace) | log.trace("saveToStorage rejected by cache " + toString()); | return; | } | | cheers View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3842987#3842987 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3842987 ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user