I have a MDB configured as shown below. I am sending a large number of messages 
to the MDB and do not require persistent queue. Searching the forum I found 
several suggestion to set DeliveryMode.NON_PERSISTENT, yet when I use the HSQL 
Database Manager I still find entries created in the JMS_Messages table. 
Ideally I would like to avoid any kind of persistence to achieve a performance 
gain. My requirements do not require  persistence for this service.


  | ...
  | @MessageDriven(name = 
"LogMessageProcessor",mappedName="LogMessageProcessor", activationConfig =  {
  |     @ActivationConfigProperty(propertyName = "acknowledgeMode", 
propertyValue = "Auto-acknowledge"),
  |     @ActivationConfigProperty(propertyName = "destinationType", 
propertyValue = "javax.jms.Queue"),
  |     @ActivationConfigProperty(propertyName = "destination", propertyValue = 
"queue/LogMessageProcessors"),
  |     @ActivationConfigProperty(propertyName = "maxSession", propertyValue = 
"5"),
  |     @ActivationConfigProperty(propertyName = "maxMessages", 
propertyValue="5"),
  |     @ActivationConfigProperty(propertyName = "subscriptionDurability", 
propertyValue="Non-Durable")     
  | })
  | public class LogMessageProcessor implements MessageListener
  | ...
  | 


  | Properties properties = new Properties();
  | properties.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.jnp.interfaces.NamingContextFactory");
  | properties.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
  | properties.put(Context.PROVIDER_URL, "jnp://localhost:1100");
  | InitialContext ctx = new InitialContext(properties);
  | Queue queue = (Queue) ctx.lookup("/queue/LogMessageProcessors");
  | 
  | QueueConnectionFactory factory = (QueueConnectionFactory) 
ctx.lookup("ConnectionFactory");
  | cnn = factory.createQueueConnection();
  | sess = cnn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
  | MapMessage msg = sess.createMapMessage();
  | 
  | QueueConnection connection = factory.createQueueConnection();
  | QueueSession session = connection.createQueueSession(false, 
QueueSession.AUTO_ACKNOWLEDGE);
  | QueueSender sender = session.createSender(queue);
  | sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
  | for (int index=0; index<2000; index++)
  | {
  |     ObjectMessage message = session.createObjectMessage();            
  |     LogMessage logMessage = new LogMessage();
  |     logMessage.setMessage("Log Message : "+System.currentTimeMillis());
  |     message.setObject(logMessage);
  |     message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
  |     sender.send(message,DeliveryMode.NON_PERSISTENT,10,20000);
  |     //logger.log(Level.INFO,"Dispatched message : 
"+logMessage.getMessage());                
  | }
  | 
  | sender.close();
  | session.close();
  | connection.close();
  | 

Any assistance in improving the performance and avoid persisting the messages 
will help me a lot. Thanks in advance.
alex

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096021#4096021

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096021
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to