User: chirino 
  Date: 01/10/27 18:27:00

  Modified:    src/main/org/jboss/mq/pm/logged PersistenceManager.java
  Log:
  Commiting my initial implementation of a message cache for the JBossMQ messages.  
This should allow the server to scale so it can hold a larger number of message.
  
  Revision  Changes    Path
  1.6       +17 -13    jbossmq/src/main/org/jboss/mq/pm/logged/PersistenceManager.java
  
  Index: PersistenceManager.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/logged/PersistenceManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PersistenceManager.java   2001/09/06 21:49:43     1.5
  +++ PersistenceManager.java   2001/10/28 01:27:00     1.6
  @@ -31,12 +31,13 @@
   import org.jboss.mq.server.JMSServer;
   import org.jboss.mq.xml.XElement;
   import org.jboss.system.ServiceMBeanSupport;
  +import org.jboss.mq.server.MessageReference;
   
   /**
    *  This class manages all persistence related services.
    *
    * @author     Hiram Chirino ([EMAIL PROTECTED])
  - * @version    $Revision: 1.5 $
  + * @version    $Revision: 1.6 $
    */
   public class PersistenceManager extends ServiceMBeanSupport implements 
PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager
   {
  @@ -124,6 +125,9 @@
   
         File jbossHome = new File(System.getProperty("jboss.system.home"));
         dataDirFile = new File(jbossHome, dataDirectory);
  +      dataDirFile.mkdirs();
  +      if( !dataDirFile.isDirectory() )
  +         throw new Exception("The data directory is not valid: 
"+dataDirFile.getCanonicalPath());
   
         File txLogFile = new File(dataDirFile, "transactions.dat");
         spyTxLog = new SpyTxLog(txLogFile);
  @@ -226,9 +230,9 @@
       * @param  txId                        Description of Parameter
       * @exception  javax.jms.JMSException  Description of Exception
       */
  -   public void add(org.jboss.mq.SpyMessage message, org.jboss.mq.pm.Tx txId) throws 
javax.jms.JMSException
  +   public void add(MessageReference messageRef, org.jboss.mq.pm.Tx txId) throws 
javax.jms.JMSException
      {
  -
  +       SpyMessage message = messageRef.getMessage();
         LogInfo logInfo;
   
         synchronized (messageLogs)
  @@ -274,9 +278,9 @@
       * @param  txId                        Description of Parameter
       * @exception  javax.jms.JMSException  Description of Exception
       */
  -   public void remove(org.jboss.mq.SpyMessage message, org.jboss.mq.pm.Tx txId) 
throws javax.jms.JMSException
  +   public void remove(MessageReference messageRef, org.jboss.mq.pm.Tx txId) throws 
javax.jms.JMSException
      {
  -
  +       SpyMessage message = messageRef.getMessage();
         LogInfo logInfo;
   
         synchronized (messageLogs)
  @@ -319,14 +323,14 @@
   
            SpyMessage rebuild[] = logInfo.log.restore(commitedTXs);
   
  -         //TODO: make sure this lock is good enough
  -         synchronized (q)
  -         {
  -            for (int i = 0; i < rebuild.length; i++)
  -            {
  -               q.restoreMessage(rebuild[i]);
  -            }
  -         }
  +              org.jboss.mq.server.MessageCache cache = 
JMSServer.getInstance().getMessageCache();
  +              //TODO: make sure this lock is good enough
  +              synchronized (q) {
  +                     for (int i= 0; i < rebuild.length; i++) {
  +                        MessageReference mr = cache.add(rebuild[i]);
  +                        q.restoreMessage(mr);
  +                     }
  +              }
         }
   
      }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to