[jboss-cvs] JBoss Messaging SVN: r6649 - tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 4 01:54:38 EDT 2009


Author: gaohoward
Date: 2009-05-04 01:54:37 -0400 (Mon, 04 May 2009)
New Revision: 6649

Modified:
   tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/DebugLogger.java
   tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/JMSObjectTracker.java
   tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/MessageTracker.java
   tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/WriterUtil.java
Log:
improve debug log, allow log to be written into multiple files


Modified: tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/DebugLogger.java
===================================================================
--- tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/DebugLogger.java	2009-05-02 13:35:53 UTC (rev 6648)
+++ tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/DebugLogger.java	2009-05-04 05:54:37 UTC (rev 6649)
@@ -3,7 +3,6 @@
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -58,12 +57,11 @@
 
 	public synchronized void writeRecord(String rec) {
 		    init();
-    		PrintWriter writer;
+    		ControlledPrintWriter writer;
 			try {
 				writer = WriterUtil.getWriter(fileRealPath);
 				String tid = Thread.currentThread().getName();
 				writer.println("[" + tid + "] " + rec);
-				writer.flush();
 			} catch (FileNotFoundException e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();

Modified: tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/JMSObjectTracker.java
===================================================================
--- tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/JMSObjectTracker.java	2009-05-02 13:35:53 UTC (rev 6648)
+++ tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/JMSObjectTracker.java	2009-05-04 05:54:37 UTC (rev 6649)
@@ -1,6 +1,5 @@
 package org.jboss.jms.debug;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.Hashtable;
@@ -115,10 +114,6 @@
 	
 	private class ConnectionRecord extends EventRecord
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 6340399287030923659L;
 
 		public ConnectionRecord(String id) {
 			super(id);
@@ -132,10 +127,6 @@
 	
 	private class SessionRecord extends EventRecord
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 2394409964154408680L;
 
 		public SessionRecord(String id) {
 			super(id);
@@ -149,10 +140,6 @@
 	
 	private class ProducerRecord extends EventRecord
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 3463680286818208126L;
 
 		public ProducerRecord(String id) {
 			super(id);
@@ -166,10 +153,6 @@
 	
 	private class ConsumerRecord extends EventRecord
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 4285789136248342307L;
 
 		public ConsumerRecord(String id) {
 			super(id);
@@ -251,12 +234,8 @@
 		}
 	}
 	
-	public class ObjectCheckerThread extends Thread implements Serializable
+	public class ObjectCheckerThread extends Thread
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = -4202610306272398760L;
 		//11 min, check consumer, session and connection.
 		private long checkPeriod = 660000;
 		

Modified: tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/MessageTracker.java
===================================================================
--- tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/MessageTracker.java	2009-05-02 13:35:53 UTC (rev 6648)
+++ tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/MessageTracker.java	2009-05-04 05:54:37 UTC (rev 6649)
@@ -1,6 +1,5 @@
 package org.jboss.jms.debug;
 
-import java.io.Serializable;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -82,11 +81,6 @@
 	public class MessageRecord extends EventRecord
 	{
 		
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 6341419723330315307L;
-
 		public MessageRecord(String msg)
 		{
 			super(msg);
@@ -97,12 +91,8 @@
 		}
 	}
 	
-	public class TimedObject implements Serializable
+	public class TimedObject
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 7112975602398320125L;
 		long birth;
 		
 		public TimedObject()
@@ -119,10 +109,7 @@
 
 	public class EventRecord extends TimedObject
 	{
-	    /**
-		 * 
-		 */
-		private static final long serialVersionUID = 5214971419987910110L;
+
 		private String id;
 	    
 	    public EventRecord(String eid)
@@ -185,12 +172,8 @@
 		}
 	}
 	
-	public class MessageCheckerThread extends Thread implements Serializable
+	public class MessageCheckerThread extends Thread
 	{
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 637004467791397191L;
 		//5 min
 		private long checkPeriod = 300000;
 		
@@ -211,12 +194,14 @@
 			   }
                logger.writeRecord(this + " checking msg..." + getCurrentTime());
 				List<MessageRecord> msgCopy = getCopy();
+				
 				for (MessageRecord msg : msgCopy)
 				{
 					long msLive = msg.age();
 					
 					if (msLive >= checkPeriod)
 					{
+						System.out.println("--------------!Message Stucked!---------------");
 						logger.writeRecord(this + " suspected stuck message: " + msg.getId() + " age: " + msLive);
 					}
 				}

Modified: tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/WriterUtil.java
===================================================================
--- tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/WriterUtil.java	2009-05-02 13:35:53 UTC (rev 6648)
+++ tags/JBossMessaging_1_4_0_SP3_CP03_1456/src/main/org/jboss/jms/debug/WriterUtil.java	2009-05-04 05:54:37 UTC (rev 6649)
@@ -1,5 +1,6 @@
 package org.jboss.jms.debug;
 
+import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.PrintWriter;
@@ -7,15 +8,76 @@
 
 public class WriterUtil {
 
-	public static HashMap<String, PrintWriter> allWriters = new HashMap<String, PrintWriter>();
+	public static HashMap<String, ControlledPrintWriter> allWriters = new HashMap<String, ControlledPrintWriter>();
 	
-	public static synchronized PrintWriter getWriter(String path) throws FileNotFoundException
+	public static synchronized ControlledPrintWriter getWriter(String path) throws FileNotFoundException
 	{
-		PrintWriter writer = allWriters.get(path);
+		ControlledPrintWriter writer = allWriters.get(path);
 		if (writer == null) {
-			writer = new PrintWriter(new FileOutputStream(path, true), true);
+			writer = new ControlledPrintWriter(path, true);
 			allWriters.put(path, writer);
 		}
 		return writer;
 	}
+	
+	public static void main(String[] args) throws FileNotFoundException
+	{
+		ControlledPrintWriter writer = new ControlledPrintWriter("/home/howard/myTestFile", true);
+		for (int i = 0; i < 600000; i++)
+		{
+			writer.println("writing-------- " + i);
+		}
+		writer.close();
+	}
 }
+
+class ControlledPrintWriter
+{
+	private PrintWriter internalWriter;
+	private String filePath;
+	private boolean autoFlush;
+	private int ln_counter;
+	private byte f_counter;
+	
+	private static final int FILE_LINES = 800000;
+//	private static final int FILE_LINES = 40000;
+	
+	public ControlledPrintWriter(String path, boolean flush) throws FileNotFoundException
+	{
+		ln_counter = 0;
+		f_counter = 0;
+		filePath = path;
+		autoFlush = flush;
+		internalWriter = new PrintWriter(new FileOutputStream(filePath, false), autoFlush);
+	}
+
+	//I'm not thread safe, whoever uses me takes care of it.
+	public void println(String message) {
+		internalWriter.println(message);
+		ln_counter++;
+		if (ln_counter >= FILE_LINES)
+		{
+			internalWriter.close();
+			//back up
+			File oldFile = new File(filePath);
+			File bkFile = new File(filePath + f_counter);
+			f_counter ++;
+			oldFile.renameTo(bkFile);
+			
+			//startNew
+			try {
+				internalWriter = new PrintWriter(new FileOutputStream(filePath, false), autoFlush);
+			} catch (FileNotFoundException e) {
+				e.printStackTrace();
+			}
+			ln_counter = 0;
+		}
+	}
+	
+	public void close()
+	{
+		internalWriter.close();
+	}
+	
+	
+}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list