[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