[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java
User: lqd Date: 02/03/29 19:11:18 Modified:src/main/org/jboss/mq/pm/file MessageLog.java Log: fix broken filenames on Windows introduced by fix for Bug #533824 Revision ChangesPath 1.12 +4 -3 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- MessageLog.java 2 Feb 2002 03:54:20 - 1.11 +++ MessageLog.java 30 Mar 2002 03:11:17 - 1.12 @@ -33,7 +33,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.11 $ + * @version$Revision: 1.12 $ */ public class MessageLog { @@ -117,12 +117,13 @@ { SpyMessage message = messageRef.getMessage(); File f; + String fileName = message.getJMSMessageID().replace( ':', '-' ); if ( transactionId == null ) { -f = new File( queueName, message.getJMSMessageID() ); +f = new File( queueName, fileName ); } else { -f = new File( queueName, message.getJMSMessageID() + "." + transactionId ); +f = new File( queueName, fileName + "." + transactionId ); } writeMessageToFile( message, f ); messageRef.persistData = f; ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java
User: lqd Date: 02/03/29 18:46:35 Modified:src/main/org/jboss/mq/pm/file Tag: Branch_2_4 MessageLog.java Log: fix broken filenames on Windows introduced by fix for Bug #533824 Revision ChangesPath No revision No revision 1.2.2.4 +4 -3 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.2.2.3 retrieving revision 1.2.2.4 diff -u -r1.2.2.3 -r1.2.2.4 --- MessageLog.java 26 Mar 2002 06:40:41 - 1.2.2.3 +++ MessageLog.java 30 Mar 2002 02:46:34 - 1.2.2.4 @@ -28,7 +28,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.2.2.3 $ + * @version$Revision: 1.2.2.4 $ */ public class MessageLog { @@ -99,10 +99,11 @@ throws JMSException { try { File f; + String fileName = message.getJMSMessageID().replace( ':', '-' ); if ( transactionId == null ) { -f = new File( queueName, message.getJMSMessageID() ); +f = new File( queueName, fileName ); } else { -f = new File( queueName, message.getJMSMessageID() + "." + transactionId ); +f = new File( queueName, fileName + "." + transactionId ); } writeMessageToFile( message, f ); message.persistData = f; ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: lqd Date: 02/03/25 22:40:41 Modified:src/main/org/jboss/mq/pm/file Tag: Branch_2_4 MessageLog.java PersistenceManager.java Log: change logging from System.out to log4j Revision ChangesPath No revision No revision 1.2.2.3 +12 -5 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.2.2.2 retrieving revision 1.2.2.3 diff -u -r1.2.2.2 -r1.2.2.3 --- MessageLog.java 13 Dec 2001 15:58:18 - 1.2.2.2 +++ MessageLog.java 26 Mar 2002 06:40:41 - 1.2.2.3 @@ -20,16 +20,20 @@ import org.jboss.mq.SpyMessage; import org.jboss.mq.SpyJMSException; +import org.jboss.logging.Logger; + /** * This is used to keep SpyMessages on the disk and is used reconstruct the * queue in case of provider failure. * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.2.2.2 $ + * @version$Revision: 1.2.2.3 $ */ public class MessageLog { + private static Logger log = Logger.getLogger( MessageLog.class ); + / // Attributes / @@ -150,10 +154,10 @@ Thread.yield(); if ( file.exists() ) { if ( !file.delete() ) { - System.out.println( "Failed to delete file: " + file.getAbsolutePath() ); + log.warn( "Failed to delete file: " + file.getAbsolutePath() ); } } else { -System.out.println( "File was deleted, but delete() failed for: " + file.getAbsolutePath() ); +log.warn( "File was deleted, but delete() failed for: " + file.getAbsolutePath() ); } } } @@ -166,10 +170,10 @@ Thread.yield(); if ( from.exists() ) { if ( !from.renameTo( to ) ) { - System.out.println( "Rename of file " + from.getAbsolutePath() + " to " + to.getAbsolutePath() + " failed." ); + log.warn( "Rename of file " + from.getAbsolutePath() + " to " + to.getAbsolutePath() + " failed." ); } } else { -System.out.println( "Rename of file " + from.getAbsolutePath() + " to " + to.getAbsolutePath() + " failed but from no longer exists?" ); +log.warn( "Rename of file " + from.getAbsolutePath() + " to " + to.getAbsolutePath() + " failed but from no longer exists?" ); } } } @@ -203,3 +207,6 @@ throw newE; } } +/* +vim:ts=3:et:sw=3 +*/ 1.2.2.2 +13 -3 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -u -r1.2.2.1 -r1.2.2.2 --- PersistenceManager.java 23 Aug 2001 03:57:11 - 1.2.2.1 +++ PersistenceManager.java 26 Mar 2002 06:40:41 - 1.2.2.2 @@ -26,15 +26,20 @@ import org.jboss.util.ServiceMBeanSupport; +import org.jboss.logging.Logger; + /** * This class manages all persistence related services for file based * persistence. * * @author Paul Kendall ([EMAIL PROTECTED]) * @createdAugust 16, 2001 - * @version$Revision: 1.2.2.1 $ + * @version$Revision: 1.2.2.2 $ */ -public class PersistenceManager extends org.jboss.util.ServiceMBeanSupport implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager { +public class PersistenceManager + extends org.jboss.util.ServiceMBeanSupport + implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager +{ protected java.util.ArrayList txPool = new java.util.ArrayList(); protected long tidcounter = Long.MIN_VALUE; @@ -52,6 +57,8 @@ protected final static int MAX_POOL_SIZE = 50; + private static Logger log = Logger.getLogger( PersistenceManager.class ); + /** * PersistenceManager constructor. * @@ -107,7 +114,7 @@ txs.add( tx ); } } catch ( NumberFormatException e ) { -System.out.println( "Ignoring invalid transaction record file " + transactFiles[i].getAbsolutePath() ); +log.warn( "Ignoring invalid transaction record file " + transactFiles[i].getAbsolutePath() ); transactFiles[i] = null; } catch ( IOException e ) { JMSException
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: lqd Date: 02/02/01 19:54:20 Modified:src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java Log: remove wildcard import statements Revision ChangesPath 1.11 +4 -2 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- MessageLog.java 2002/01/14 12:30:45 1.10 +++ MessageLog.java 2002/02/02 03:54:20 1.11 @@ -18,7 +18,9 @@ import java.util.Map; import java.util.TreeMap; import javax.jms.JMSException; -import org.jboss.mq.*; + +import org.jboss.mq.SpyMessage; +import org.jboss.mq.SpyJMSException; import org.jboss.mq.server.JMSServer; import org.jboss.mq.server.MessageCache; import org.jboss.mq.server.MessageReference ; @@ -31,7 +33,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.10 $ + * @version$Revision: 1.11 $ */ public class MessageLog { 1.16 +3 -2 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- PersistenceManager.java 2002/01/14 12:30:45 1.15 +++ PersistenceManager.java 2002/02/02 03:54:20 1.16 @@ -18,7 +18,8 @@ import java.util.Map; import java.util.TreeSet; import javax.jms.JMSException; -import javax.management.*; +import javax.management.ObjectName; + import org.jboss.mq.SpyDestination; import org.jboss.mq.SpyJMSException; import org.jboss.mq.SpyMessage; @@ -37,7 +38,7 @@ * persistence. * * @author Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.15 $ + * @version$Revision: 1.16 $ */ public class PersistenceManager extends ServiceMBeanSupport implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager { ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: lqd Date: 02/01/14 04:30:45 Modified:src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java Log: - remove old code - use org.jboss.logging instead of System.out.println Revision ChangesPath 1.10 +88 -100 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- MessageLog.java 2001/11/30 18:43:15 1.9 +++ MessageLog.java 2002/01/14 12:30:45 1.10 @@ -23,39 +23,35 @@ import org.jboss.mq.server.MessageCache; import org.jboss.mq.server.MessageReference ; +import org.jboss.logging.Logger; + /** * This is used to keep SpyMessages on the disk and is used reconstruct the * queue in case of provider failure. * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.9 $ + * @version$Revision: 1.10 $ */ public class MessageLog { / // Attributes / - private File queueName; + private File queueName; private MessageCache messageCache; + private static Logger log = Logger.getLogger( MessageLog.class ); + / // Constants / - protected final static byte OBJECT_MESS = 3; - protected final static byte BYTES_MESS = 4; - protected final static byte MAP_MESS = 5; - protected final static byte TEXT_MESS = 6; - protected final static byte STREAM_MESS = 7; - protected final static byte ENCAP_MESS = 8; - protected final static byte SPY_MESS = 9; / // Constructor / public MessageLog(MessageCache messageCache, File file ) - { if (messageCache == null) { @@ -71,185 +67,173 @@ // Public Methods / public void close() - throws JMSException { + throws JMSException + { } - public Map restore( java.util.TreeSet rollBackTXs ) - throws JMSException { + throws JMSException + { //use sorted map to get queue order right. TreeMap messageIndex = new TreeMap(); - try { + try + { File[] files = queueName.listFiles(); - for ( int i = 0; i < files.length; i++ ) { + for ( int i = 0; i < files.length; i++ ) + { String fileName = files[i].getName(); int extIndex = fileName.indexOf( "." ); -if ( extIndex < 0 ) { +if ( extIndex < 0 ) +{ //non transacted message so simply restore restoreMessageFromFile( messageIndex, files[i] ); -} else { +} else +{ //test if message from a transaction that is being rolled back. Long tx = new Long( Long.parseLong( fileName.substring( extIndex + 1 ) ) ); - if ( rollBackTXs.contains( tx ) ) { + if ( rollBackTXs.contains( tx ) ) + { delete( files[i] ); - } else { + } else + { restoreMessageFromFile( messageIndex, files[i] ); } } } - } catch ( Exception e ) { + } catch ( Exception e ) + { throwJMSException( "Could not rebuild the queue from the queue's tranaction log.", e ); } return messageIndex; - /* - MessageReference rc[] = new MessageReference[messageIndex.size()]; - java.util.Iterator iter = messageIndex.values().iterator(); - for ( int i = 0; iter.hasNext(); i++ ) { - rc[i] = ( MessageReference )iter.next(); - } - return rc; - */ } public void add( MessageReference messageRef, org.jboss.mq.pm.Tx transactionId ) - throws JMSException { - try { - SpyMessage message = messageRef.getMessage(); + throws JMSException + { + try + { + SpyMessage message = messageRef.getMessage(); File f; - if ( transactionId == null ) { + if ( transactionId == null ) + { f = new File( queueName, message.getJMSM
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java
User: lqd Date: 01/12/13 07:58:19 Modified:src/main/org/jboss/mq/pm/file Tag: Branch_2_4 MessageLog.java Log: Use SpyMessage.writeMessage() and SpyMessage.readMessage() methods to store / restore files written to disk. Revision ChangesPath No revision No revision 1.2.2.2 +10 -52jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -u -r1.2.2.1 -r1.2.2.2 --- MessageLog.java 2001/08/23 03:57:11 1.2.2.1 +++ MessageLog.java 2001/12/13 15:58:18 1.2.2.2 @@ -5,6 +5,7 @@ * See terms of license at gnu.org. */ package org.jboss.mq.pm.file; + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -16,7 +17,8 @@ import javax.jms.JMSException; -import org.jboss.mq.*; +import org.jboss.mq.SpyMessage; +import org.jboss.mq.SpyJMSException; /** * This is used to keep SpyMessages on the disk and is used reconstruct the @@ -24,7 +26,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.2.2.1 $ + * @version$Revision: 1.2.2.2 $ */ public class MessageLog { @@ -36,13 +38,6 @@ / // Constants / - protected final static byte OBJECT_MESS = 3; - protected final static byte BYTES_MESS = 4; - protected final static byte MAP_MESS = 5; - protected final static byte TEXT_MESS = 6; - protected final static byte STREAM_MESS = 7; - protected final static byte ENCAP_MESS = 8; - protected final static byte SPY_MESS = 9; / // Constructor @@ -180,58 +175,21 @@ } protected void writeMessageToFile( SpyMessage message, File file ) - throws IOException { + throws IOException + { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( file ) ); out.writeLong( message.messageId ); - if ( message instanceof SpyEncapsulatedMessage ) { - out.writeByte( ENCAP_MESS ); - } else if ( message instanceof SpyObjectMessage ) { - out.writeByte( OBJECT_MESS ); - } else if ( message instanceof SpyBytesMessage ) { - out.writeByte( BYTES_MESS ); - } else if ( message instanceof SpyMapMessage ) { - out.writeByte( MAP_MESS ); - } else if ( message instanceof SpyTextMessage ) { - out.writeByte( TEXT_MESS ); - } else if ( message instanceof SpyStreamMessage ) { - out.writeByte( STREAM_MESS ); - } else { - out.writeByte( SPY_MESS ); - } - message.writeExternal( out ); + SpyMessage.writeMessage( message, out ); out.flush(); out.close(); } protected void restoreMessageFromFile( java.util.TreeMap store, File file ) - throws Exception { + throws Exception + { ObjectInputStream in = new ObjectInputStream( new FileInputStream( file ) ); long msgId = in.readLong(); - SpyMessage message = null; - byte type = in.readByte(); - switch ( type ) { - case OBJECT_MESS: -message = new SpyObjectMessage(); -break; - case BYTES_MESS: -message = new SpyBytesMessage(); -break; - case MAP_MESS: -message = new SpyMapMessage(); -break; - case STREAM_MESS: -message = new SpyStreamMessage(); -break; - case TEXT_MESS: -message = new SpyTextMessage(); -break; - case ENCAP_MESS: -message = new SpyEncapsulatedMessage(); -break; - default: -message = new SpyMessage(); - } - message.readExternal( in ); + SpyMessage message = SpyMessage.readMessage( in ); in.close(); message.messageId = msgId; message.persistData = file; ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: dbudworth Date: 01/11/30 10:43:16 Modified:src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java Log: Reverted my non-fs-neutral additions to the file PM Will try creating a mapping mechanism instead. Revision ChangesPath 1.9 +1 -4 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- MessageLog.java 2001/11/28 00:55:29 1.8 +++ MessageLog.java 2001/11/30 18:43:15 1.9 @@ -29,7 +29,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.8 $ + * @version$Revision: 1.9 $ */ public class MessageLog { @@ -83,9 +83,6 @@ try { File[] files = queueName.listFiles(); for ( int i = 0; i < files.length; i++ ) { -// If it's a subdirectory, it's a different queue, PM will restore that also, so ignore it here -if (files[i].isDirectory()) - continue; String fileName = files[i].getName(); int extIndex = fileName.indexOf( "." ); if ( extIndex < 0 ) { 1.12 +2 -33 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- PersistenceManager.java 2001/11/28 00:55:29 1.11 +++ PersistenceManager.java 2001/11/30 18:43:15 1.12 @@ -45,7 +45,7 @@ * persistence. * * @author Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.11 $ + * @version$Revision: 1.12 $ */ public class PersistenceManager extends ServiceMBeanSupport implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager { @@ -161,37 +161,6 @@ } /** -* The getDirTree function takes a directory and -* looks for all subdirectories below it (recursively) -* -* Note: Recursive function, REALLY deep queues WILL cause stack fault -* Note: Possible bug if someone implements an unused queue cleanup -*and it attempts to remove the parent dir of a deep queue -*without verifying that it's really just a parent dir -* -* @param parent The directory to look in -* -* @return The deep list of subdirectories -*/ - private final File[] getDirTree(File parent) - { - final ArrayList dirs = new ArrayList(); //must be final - parent.listFiles(new FileFilter() - { - public final boolean accept(File file) - { -if (file.isDirectory()) -{ - dirs.add(file); //add to list of all dirs - file.listFiles(this); -} -return false; //avoid File.listFiles doing extra work - } - }); - return (File[])dirs.toArray(new File[dirs.size()]); - } - - /** * The restoreTransactions method is called when the * PersistenceManager service is started. It reads all transaction log * files, and pre-restores all messages that are committed and not read. @@ -203,7 +172,7 @@ private void restoreTransactions() throws javax.jms.JMSException { TreeSet txs = new TreeSet(); - File[] transactFiles = getDirTree(dataDirFile); + File[] transactFiles = dataDirFile.listFiles(); int queueNameOffset = dataDirFile.toString().length()+1; if(transactFiles != null) { ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: dbudworth Date: 01/11/27 16:55:29 Modified:src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java Log: Added support for deep topic and queue names Passes run-basic-testsuite, so if something is broken the test needs updating. TopicManager/QueueManager, uses org.jboss.naming.Util to auto-create subcontexts PersistenceManager/MessageLog updated to support deep subdirectories in db/jbossmq/file Revision ChangesPath 1.8 +4 -1 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- MessageLog.java 2001/11/14 01:53:40 1.7 +++ MessageLog.java 2001/11/28 00:55:29 1.8 @@ -29,7 +29,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.7 $ + * @version$Revision: 1.8 $ */ public class MessageLog { @@ -83,6 +83,9 @@ try { File[] files = queueName.listFiles(); for ( int i = 0; i < files.length; i++ ) { +// If it's a subdirectory, it's a different queue, PM will restore that also, so ignore it here +if (files[i].isDirectory()) + continue; String fileName = files[i].getName(); int extIndex = fileName.indexOf( "." ); if ( extIndex < 0 ) { 1.11 +37 -4 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- PersistenceManager.java 2001/11/14 04:23:27 1.10 +++ PersistenceManager.java 2001/11/28 00:55:29 1.11 @@ -15,12 +15,14 @@ import java.io.File; +import java.io.FileFilter; import java.io.IOException; import java.net.URL; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; +import java.util.ArrayList; import java.util.Map; import java.util.TreeSet; import javax.jms.JMSException; @@ -43,7 +45,7 @@ * persistence. * * @author Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.10 $ + * @version$Revision: 1.11 $ */ public class PersistenceManager extends ServiceMBeanSupport implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager { @@ -159,6 +161,37 @@ } /** +* The getDirTree function takes a directory and +* looks for all subdirectories below it (recursively) +* +* Note: Recursive function, REALLY deep queues WILL cause stack fault +* Note: Possible bug if someone implements an unused queue cleanup +*and it attempts to remove the parent dir of a deep queue +*without verifying that it's really just a parent dir +* +* @param parent The directory to look in +* +* @return The deep list of subdirectories +*/ + private final File[] getDirTree(File parent) + { + final ArrayList dirs = new ArrayList(); //must be final + parent.listFiles(new FileFilter() + { + public final boolean accept(File file) + { +if (file.isDirectory()) +{ + dirs.add(file); //add to list of all dirs + file.listFiles(this); +} +return false; //avoid File.listFiles doing extra work + } + }); + return (File[])dirs.toArray(new File[dirs.size()]); + } + + /** * The restoreTransactions method is called when the * PersistenceManager service is started. It reads all transaction log * files, and pre-restores all messages that are committed and not read. @@ -170,7 +203,8 @@ private void restoreTransactions() throws javax.jms.JMSException { TreeSet txs = new TreeSet(); - File[] transactFiles = dataDirFile.listFiles(); + File[] transactFiles = getDirTree(dataDirFile); + int queueNameOffset = dataDirFile.toString().length()+1; if(transactFiles != null) { for (int i = 0; i < transactFiles.length; i++) @@ -179,8 +213,7 @@ if( transactFiles[i].isDirectory() ) { String dirName = transactFiles[i].toString(); - int start = transactFiles[i].getParent().length()+1; - String key = dirName.substring(start); + String key = dirName.substring(queueNameOffset);
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java
User: dmaplesden Date: 01/11/13 17:53:40 Modified:src/main/org/jboss/mq/pm/file MessageLog.java Log: Added message object pool and changed file PM message log to use generic SpyMessage.writeMessage and readMessage methods. Revision ChangesPath 1.7 +46 -45jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MessageLog.java 2001/11/10 21:38:04 1.6 +++ MessageLog.java 2001/11/14 01:53:40 1.7 @@ -29,7 +29,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.6 $ + * @version$Revision: 1.7 $ */ public class MessageLog { @@ -57,11 +57,11 @@ public MessageLog(MessageCache messageCache, File file ) { - if (messageCache == null) + if (messageCache == null) { throw new IllegalArgumentException("Need a MessageCache to construct a MessageLog!"); } // end of if () - + this.messageCache = messageCache; queueName = file; queueName.mkdirs(); @@ -200,22 +200,23 @@ throws IOException { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( file ) ); out.writeLong( message.header.messageId ); - if ( message instanceof SpyEncapsulatedMessage ) { - out.writeByte( ENCAP_MESS ); - } else if ( message instanceof SpyObjectMessage ) { - out.writeByte( OBJECT_MESS ); - } else if ( message instanceof SpyBytesMessage ) { - out.writeByte( BYTES_MESS ); - } else if ( message instanceof SpyMapMessage ) { - out.writeByte( MAP_MESS ); - } else if ( message instanceof SpyTextMessage ) { - out.writeByte( TEXT_MESS ); - } else if ( message instanceof SpyStreamMessage ) { - out.writeByte( STREAM_MESS ); - } else { - out.writeByte( SPY_MESS ); - } - message.writeExternal( out ); + SpyMessage.writeMessage(message,out); +// if ( message instanceof SpyEncapsulatedMessage ) { +// out.writeByte( ENCAP_MESS ); +// } else if ( message instanceof SpyObjectMessage ) { +// out.writeByte( OBJECT_MESS ); +// } else if ( message instanceof SpyBytesMessage ) { +// out.writeByte( BYTES_MESS ); +// } else if ( message instanceof SpyMapMessage ) { +// out.writeByte( MAP_MESS ); +// } else if ( message instanceof SpyTextMessage ) { +// out.writeByte( TEXT_MESS ); +// } else if ( message instanceof SpyStreamMessage ) { +// out.writeByte( STREAM_MESS ); +// } else { +// out.writeByte( SPY_MESS ); +// } +// message.writeExternal( out ); out.flush(); out.close(); } @@ -224,34 +225,34 @@ throws Exception { ObjectInputStream in = new ObjectInputStream( new FileInputStream( file ) ); long msgId = in.readLong(); - SpyMessage message = null; - byte type = in.readByte(); - switch ( type ) { - case OBJECT_MESS: -message = new SpyObjectMessage(); -break; - case BYTES_MESS: -message = new SpyBytesMessage(); -break; - case MAP_MESS: -message = new SpyMapMessage(); -break; - case STREAM_MESS: -message = new SpyStreamMessage(); -break; - case TEXT_MESS: -message = new SpyTextMessage(); -break; - case ENCAP_MESS: -message = new SpyEncapsulatedMessage(); -break; - default: -message = new SpyMessage(); - } - message.readExternal( in ); + SpyMessage message = SpyMessage.readMessage(in); +// byte type = in.readByte(); +// switch ( type ) { +// case OBJECT_MESS: +//message = new SpyObjectMessage(); +//break; +// case BYTES_MESS: +//message = new SpyBytesMessage(); +//break; +// case MAP_MESS: +//message = new SpyMapMessage(); +//break; +// case STREAM_MESS: +//message = new SpyStreamMessage(); +//break; +// case TEXT_MESS: +//message = new SpyTextMessage(); +//break; +// case ENCAP_MESS: +//message = new SpyEncapsulatedMessage(); +//break; +// default: +//message = new SpyMessage(); +// } +// message.readExternal( in ); in.close(); message.
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java PersistenceManagerMBean.java
User: d_jencks Date: 01/11/10 13:38:05 Modified:src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java PersistenceManagerMBean.java Log: Changed mbean dependencies to work directly by mbean-references: eliminated depends tag from *service.xml files Revision ChangesPath 1.6 +27 -13jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MessageLog.java 2001/10/28 04:07:34 1.5 +++ MessageLog.java 2001/11/10 21:38:04 1.6 @@ -5,20 +5,23 @@ * See terms of license at gnu.org. */ package org.jboss.mq.pm.file; + + + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; - import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; - +import java.util.Map; +import java.util.TreeMap; import javax.jms.JMSException; -import org.jboss.mq.server.MessageReference ; -import org.jboss.mq.server.JMSServer; - import org.jboss.mq.*; +import org.jboss.mq.server.JMSServer; +import org.jboss.mq.server.MessageCache; +import org.jboss.mq.server.MessageReference ; /** * This is used to keep SpyMessages on the disk and is used reconstruct the @@ -26,7 +29,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.5 $ + * @version$Revision: 1.6 $ */ public class MessageLog { @@ -35,6 +38,8 @@ / private File queueName; + private MessageCache messageCache; + / // Constants / @@ -49,8 +54,15 @@ / // Constructor / - public MessageLog( File file ) - throws JMSException { + public MessageLog(MessageCache messageCache, File file ) + + { + if (messageCache == null) + { + throw new IllegalArgumentException("Need a MessageCache to construct a MessageLog!"); + } // end of if () + + this.messageCache = messageCache; queueName = file; queueName.mkdirs(); } @@ -63,10 +75,10 @@ } - public MessageReference[] restore( java.util.TreeSet rollBackTXs ) + public Map restore( java.util.TreeSet rollBackTXs ) throws JMSException { //use sorted map to get queue order right. - java.util.TreeMap messageIndex = new java.util.TreeMap(); + TreeMap messageIndex = new TreeMap(); try { File[] files = queueName.listFiles(); @@ -89,13 +101,15 @@ } catch ( Exception e ) { throwJMSException( "Could not rebuild the queue from the queue's tranaction log.", e ); } - + return messageIndex; + /* MessageReference rc[] = new MessageReference[messageIndex.size()]; java.util.Iterator iter = messageIndex.values().iterator(); for ( int i = 0; iter.hasNext(); i++ ) { rc[i] = ( MessageReference )iter.next(); } return rc; + */ } public void add( MessageReference messageRef, org.jboss.mq.pm.Tx transactionId ) @@ -206,7 +220,7 @@ out.close(); } - protected void restoreMessageFromFile( java.util.TreeMap store, File file ) + protected void restoreMessageFromFile(TreeMap store, File file ) throws Exception { ObjectInputStream in = new ObjectInputStream( new FileInputStream( file ) ); long msgId = in.readLong(); @@ -238,7 +252,7 @@ in.close(); message.header.messageId = msgId; - MessageReference mr = JMSServer.getInstance().getMessageCache().add(message); + MessageReference mr = messageCache.add(message); mr.persistData = file; store.put( new Long( msgId ), mr ); } 1.9 +243 -23 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- PersistenceManager.java 2001/10/28 04:07:34 1.8 +++ PersistenceManager.java 2001/11/10 21:38:04 1.9 @@ -5
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: chirino Date: 01/10/27 21:07:34 Modified:src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java Log: Reorganized the JMS message headers into a Header object so that the MessageCahe can drop the message body from memory, but keep the headers. Also fixed a bug witht he Browse() that was introduced with the message cache. Revision ChangesPath 1.5 +3 -3 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MessageLog.java 2001/10/28 01:27:00 1.4 +++ MessageLog.java 2001/10/28 04:07:34 1.5 @@ -26,7 +26,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.4 $ + * @version$Revision: 1.5 $ */ public class MessageLog { @@ -185,7 +185,7 @@ protected void writeMessageToFile( SpyMessage message, File file ) throws IOException { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( file ) ); - out.writeLong( message.messageId ); + out.writeLong( message.header.messageId ); if ( message instanceof SpyEncapsulatedMessage ) { out.writeByte( ENCAP_MESS ); } else if ( message instanceof SpyObjectMessage ) { @@ -236,7 +236,7 @@ } message.readExternal( in ); in.close(); - message.messageId = msgId; + message.header.messageId = msgId; MessageReference mr = JMSServer.getInstance().getMessageCache().add(message); mr.persistData = file; 1.8 +2 -2 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- PersistenceManager.java 2001/10/28 01:27:00 1.7 +++ PersistenceManager.java 2001/10/28 04:07:34 1.8 @@ -37,7 +37,7 @@ * persistence. * * @author Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.7 $ + * @version$Revision: 1.8 $ */ public class PersistenceManager extends ServiceMBeanSupport implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager { @@ -203,7 +203,7 @@ if (logInfo.destination instanceof org.jboss.mq.SpyTopic) { SpyMessage m = rebuild[i].getMessage(); - m.durableSubscriberID = ((org.jboss.mq.SpyTopic)logInfo.destination).getDurableSubscriptionID(); + m.header.durableSubscriberID = ((org.jboss.mq.SpyTopic)logInfo.destination).getDurableSubscriptionID(); rebuild[i].invalidate(); // since we did an update. } q.restoreMessage(rebuild[i]); ___ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java
User: chirino Date: 01/10/27 18:27:00 Modified:src/main/org/jboss/mq/pm/file MessageLog.java 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 ChangesPath 1.4 +19 -14jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- MessageLog.java 2001/09/04 02:22:42 1.3 +++ MessageLog.java 2001/10/28 01:27:00 1.4 @@ -15,6 +15,8 @@ import java.io.Serializable; import javax.jms.JMSException; +import org.jboss.mq.server.MessageReference ; +import org.jboss.mq.server.JMSServer; import org.jboss.mq.*; @@ -24,7 +26,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.3 $ + * @version$Revision: 1.4 $ */ public class MessageLog { @@ -61,7 +63,7 @@ } - public SpyMessage[] restore( java.util.TreeSet rollBackTXs ) + public MessageReference[] restore( java.util.TreeSet rollBackTXs ) throws JMSException { //use sorted map to get queue order right. java.util.TreeMap messageIndex = new java.util.TreeMap(); @@ -88,17 +90,18 @@ throwJMSException( "Could not rebuild the queue from the queue's tranaction log.", e ); } - SpyMessage rc[] = new SpyMessage[messageIndex.size()]; + MessageReference rc[] = new MessageReference[messageIndex.size()]; java.util.Iterator iter = messageIndex.values().iterator(); for ( int i = 0; iter.hasNext(); i++ ) { - rc[i] = ( SpyMessage )iter.next(); + rc[i] = ( MessageReference )iter.next(); } return rc; } - public void add( SpyMessage message, org.jboss.mq.pm.Tx transactionId ) + public void add( MessageReference messageRef, org.jboss.mq.pm.Tx transactionId ) throws JMSException { try { + SpyMessage message = messageRef.getMessage(); File f; if ( transactionId == null ) { f = new File( queueName, message.getJMSMessageID() ); @@ -106,20 +109,20 @@ f = new File( queueName, message.getJMSMessageID() + "." + transactionId ); } writeMessageToFile( message, f ); - message.persistData = f; + messageRef.persistData = f; } catch ( IOException e ) { throwJMSException( "Could not write to the tranaction log.", e ); } } - public void finishAdd( SpyMessage message, org.jboss.mq.pm.Tx transactionId ) + public void finishAdd( MessageReference message, org.jboss.mq.pm.Tx transactionId ) throws JMSException { } - public void finishRemove( SpyMessage message, org.jboss.mq.pm.Tx transactionId ) + public void finishRemove( MessageReference messageRef, org.jboss.mq.pm.Tx transactionId ) throws JMSException { try { - File file = ( File )message.persistData; + File file = ( File )messageRef.persistData; delete( file ); } catch ( IOException e ) { throwJMSException( "Could not write to the tranaction log.", e ); @@ -130,17 +133,17 @@ throws JMSException { } - public void undoAdd( SpyMessage message, org.jboss.mq.pm.Tx transactionId ) + public void undoAdd( MessageReference messageRef, org.jboss.mq.pm.Tx transactionId ) throws JMSException { try { - File file = ( File )message.persistData; + File file = ( File )messageRef.persistData; delete( file ); } catch ( IOException e ) { throwJMSException( "Could not write to the tranaction log.", e ); } } - public void undoRemove( SpyMessage message, org.jboss.mq.pm.Tx transactionId ) + public void undoRemove( MessageReference message, org.jboss.mq.pm.Tx transactionId ) throws JMSException { } @@ -234,8 +237,10 @@ message.readExternal( in ); in.close(); message.messageId = msgId; - message.persistData = file; - store.put( new Long( msgId ), message ); + + MessageReference mr = JMSServer.getInstance().getMessageCache().add(message); + mr.persistData = file; + store.put( new Long( msgId ), mr ); } private void throwJMSException( String message, Exception e ) 1.7 +27 -13jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java ===
[JBoss-dev] CVS update: jbossmq/src/main/org/jboss/mq/pm/file MessageLog.java PersistenceManager.java PersistenceManagerMBean.java TxLog.java
User: chirino Date: 01/08/22 20:57:11 Added: src/main/org/jboss/mq/pm/file Tag: Branch_2_4 MessageLog.java PersistenceManager.java PersistenceManagerMBean.java TxLog.java Log: Back porting JBossMQ 1.0.0 BETA 1 to 2_4 branch Revision ChangesPath No revision No revision 1.2.2.1 +1 -1 jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java Index: MessageLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/MessageLog.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- MessageLog.java 2001/08/17 03:04:05 1.2 +++ MessageLog.java 2001/08/23 03:57:11 1.2.2.1 @@ -24,7 +24,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.2 $ + * @version$Revision: 1.2.2.1 $ */ public class MessageLog { 1.2.2.1 +1 -1 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java Index: PersistenceManager.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManager.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- PersistenceManager.java 2001/08/17 03:04:05 1.2 +++ PersistenceManager.java 2001/08/23 03:57:11 1.2.2.1 @@ -32,7 +32,7 @@ * * @author Paul Kendall ([EMAIL PROTECTED]) * @createdAugust 16, 2001 - * @version$Revision: 1.2 $ + * @version$Revision: 1.2.2.1 $ */ public class PersistenceManager extends org.jboss.util.ServiceMBeanSupport implements PersistenceManagerMBean, org.jboss.mq.pm.PersistenceManager { protected java.util.ArrayList txPool = new java.util.ArrayList(); 1.2.2.1 +1 -1 jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManagerMBean.java Index: PersistenceManagerMBean.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/PersistenceManagerMBean.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- PersistenceManagerMBean.java 2001/08/17 03:04:05 1.2 +++ PersistenceManagerMBean.java 2001/08/23 03:57:11 1.2.2.1 @@ -41,7 +41,7 @@ * @author Vincent Sheffer ([EMAIL PROTECTED]) * @createdAugust 16, 2001 * @see - * @version$Revision: 1.2 $ + * @version$Revision: 1.2.2.1 $ */ public interface PersistenceManagerMBean extends org.jboss.util.ServiceMBean { 1.2.2.1 +1 -1 jbossmq/src/main/org/jboss/mq/pm/file/TxLog.java Index: TxLog.java === RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/file/TxLog.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- TxLog.java2001/08/17 03:04:05 1.2 +++ TxLog.java2001/08/23 03:57:11 1.2.2.1 @@ -20,7 +20,7 @@ * * @createdAugust 16, 2001 * @author:Paul Kendall ([EMAIL PROTECTED]) - * @version$Revision: 1.2 $ + * @version$Revision: 1.2.2.1 $ */ public class TxLog { ___ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development