From 42cfa120cc99dc20debb290fcc82ee58eaa39322 Mon Sep 17 00:00:00 2001 From: Henri Herscher Date: Wed, 30 Nov 2005 20:51:26 +0000 Subject: Changed exception logging git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@79 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkbasej/java/net/sf/oreka/HibernateManager.java | 8 +++--- .../net/sf/oreka/persistent/AnnotationsTest.java | 1 - .../java/net/sf/oreka/persistent/HbnXmlTest.java | 1 - .../src/net/sf/oreka/orktrack/CommandServlet.java | 3 ++- orktrack/src/net/sf/oreka/orktrack/LogManager.java | 12 +++++++++ orktrack/src/net/sf/oreka/orktrack/OrkTrack.java | 31 +++++++++++++++++++--- .../src/net/sf/oreka/orktrack/PortManager.java | 20 +++++++++----- .../src/net/sf/oreka/orktrack/ProgramManager.java | 11 +++++--- .../src/net/sf/oreka/orktrack/ServiceManager.java | 8 ++---- .../oreka/orktrack/messages/MetadataMessage.java | 1 - .../sf/oreka/orktrack/messages/TapeMessage.java | 1 - .../oreka/orktrack/messages/UserStateMessage.java | 1 - 12 files changed, 66 insertions(+), 32 deletions(-) diff --git a/orkbasej/java/net/sf/oreka/HibernateManager.java b/orkbasej/java/net/sf/oreka/HibernateManager.java index 2118d2d..6379ed4 100644 --- a/orkbasej/java/net/sf/oreka/HibernateManager.java +++ b/orkbasej/java/net/sf/oreka/HibernateManager.java @@ -82,16 +82,14 @@ public class HibernateManager { tx.commit(); } catch ( HibernateException he ) { - logger.log(Level.ERROR, he.toString()); - he.printStackTrace(); + logger.error("Hibernate error:" + he.getClass().getName()); } catch (Exception e) { - logger.error(e); - e.printStackTrace(); + logger.error("Exception:", e); } finally { - hbnSession.close(); + if(hbnSession != null) {hbnSession.close();} } } diff --git a/orkbasej/java/net/sf/oreka/persistent/AnnotationsTest.java b/orkbasej/java/net/sf/oreka/persistent/AnnotationsTest.java index 6b15796..43a973a 100644 --- a/orkbasej/java/net/sf/oreka/persistent/AnnotationsTest.java +++ b/orkbasej/java/net/sf/oreka/persistent/AnnotationsTest.java @@ -305,7 +305,6 @@ public class AnnotationsTest { } catch ( HibernateException he ) { - if ( tx != null ) tx.rollback(); throw he; } finally { diff --git a/orkbasej/java/net/sf/oreka/persistent/HbnXmlTest.java b/orkbasej/java/net/sf/oreka/persistent/HbnXmlTest.java index 2554a70..dc1fa0c 100644 --- a/orkbasej/java/net/sf/oreka/persistent/HbnXmlTest.java +++ b/orkbasej/java/net/sf/oreka/persistent/HbnXmlTest.java @@ -184,7 +184,6 @@ public class HbnXmlTest { */ } catch ( HibernateException he ) { - if ( tx != null ) tx.rollback(); throw he; } finally { diff --git a/orktrack/src/net/sf/oreka/orktrack/CommandServlet.java b/orktrack/src/net/sf/oreka/orktrack/CommandServlet.java index 5a4dddd..69d3c48 100644 --- a/orktrack/src/net/sf/oreka/orktrack/CommandServlet.java +++ b/orktrack/src/net/sf/oreka/orktrack/CommandServlet.java @@ -40,6 +40,7 @@ public class CommandServlet extends HttpServlet { throws IOException, ServletException { //#####OrkObjectFactory.instance().registerOrkObject(new TestMessage()); + OrkTrack.refreshInMemoryObjects(); ServletRequestSerializer ser = new ServletRequestSerializer(); @@ -66,7 +67,7 @@ public class CommandServlet extends HttpServlet { logger.debug("Reponse: " + resp); out.println(resp); } - catch (OrkException ae) { + catch (Exception ae) { logger.error("Error:" + ae.getMessage()); } } diff --git a/orktrack/src/net/sf/oreka/orktrack/LogManager.java b/orktrack/src/net/sf/oreka/orktrack/LogManager.java index 1c5be27..f9c293f 100644 --- a/orktrack/src/net/sf/oreka/orktrack/LogManager.java +++ b/orktrack/src/net/sf/oreka/orktrack/LogManager.java @@ -32,6 +32,7 @@ public class LogManager { Logger contextLogger = null; Logger portLogger = null; Logger userLogger = null; + Logger recurrentLogger = null; // special logger for recurrent messages (annoying to have normally) private LogManager() { @@ -41,6 +42,7 @@ public class LogManager { contextLogger = Logger.getLogger("context"); portLogger = Logger.getLogger("port"); userLogger = Logger.getLogger("user"); + recurrentLogger = Logger.getLogger("net.sf.oreka.recurrent"); BasicConfigurator.configure(); // in case there is no properties file } @@ -120,6 +122,16 @@ public class LogManager { public void setUserLogger(Logger userLogger) { this.userLogger = userLogger; } + + public Logger getRecurrentLogger() { + return recurrentLogger; + } + + + public void setRecurrentLogger(Logger recurrentLogger) { + this.recurrentLogger = recurrentLogger; + } + diff --git a/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java b/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java index 5bd8a9c..634f19b 100644 --- a/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java +++ b/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java @@ -16,8 +16,10 @@ */ package net.sf.oreka.orktrack; -import net.sf.oreka.OrkObjectFactory; +import java.util.Date; + import net.sf.oreka.HibernateManager; +import net.sf.oreka.OrkObjectFactory; import net.sf.oreka.orktrack.messages.MetadataMessage; import net.sf.oreka.orktrack.messages.TapeMessage; import net.sf.oreka.orktrack.messages.UserStateMessage; @@ -31,6 +33,8 @@ public class OrkTrack { public static final String APP_NAME = "OrkTrack"; + private static Date lastInMemoryObjectsSync = new Date(0); + public OrkTrack() { LogManager.getInstance().getConfigLogger().log(Level.INFO, "Entering OrkTrack"); @@ -58,9 +62,28 @@ public class OrkTrack { log.error("OrkTrack.initialize: Error configuring Hibernate:" + e.getMessage()); } - ServiceManager.initialize(); - PortManager.instance().initialize(); - ProgramManager.instance().load(); + /* + boolean initOk = false; + //while(initOk == false) { + initOk = PortManager.instance().initialize(); + if (initOk) { + initOk = ProgramManager.instance().load(); + } + //try{Thread.sleep(5000);} catch (Exception e) {}; + //} + */ + refreshInMemoryObjects(); + } + + public static void refreshInMemoryObjects() { + Date now = new Date(); + if((now.getTime() - lastInMemoryObjectsSync.getTime()) > 5000) { + LogManager.getInstance().getRecurrentLogger().debug("Refreshing In-Memory objects"); + // refresh every 5 seconds + lastInMemoryObjectsSync = now; + PortManager.instance().initialize(); + ProgramManager.instance().load(); + } } public static void main(String[] args) diff --git a/orktrack/src/net/sf/oreka/orktrack/PortManager.java b/orktrack/src/net/sf/oreka/orktrack/PortManager.java index 09c18e9..839b9ab 100644 --- a/orktrack/src/net/sf/oreka/orktrack/PortManager.java +++ b/orktrack/src/net/sf/oreka/orktrack/PortManager.java @@ -115,13 +115,15 @@ public class PortManager { portById.put(1, port); } - public void initialize() { + public boolean initialize() { + Session hbnSession = null; + boolean success = false; try { - Session session = HibernateManager.getSession(); - Transaction tx = session.beginTransaction(); + hbnSession = HibernateManager.getSession(); + Transaction tx = hbnSession.beginTransaction(); - Iterator portFaces = session.createQuery( + Iterator portFaces = hbnSession.createQuery( "from RecPortFace") .list() .iterator(); @@ -132,7 +134,7 @@ public class PortManager { int portId = portFace.getRecPort().getId(); Port port = portById.get(portId); if(port == null) { - RecPort recPort = (RecPort)session.get(RecPort.class, portId); + RecPort recPort = (RecPort)hbnSession.get(RecPort.class, portId); if (recPort != null) { port = new Port(recPort); portById.put(portId, port); @@ -142,11 +144,15 @@ public class PortManager { portByName.put(portFace.getName(), port); } tx.commit(); - session.close(); + success = true; } catch (Exception e) { - log.warn("HibernateManager.initialize: could not initialize", e); + log.error("initialize: exception:" + e.getClass().getName()); } + finally { + if(hbnSession != null) {hbnSession.close();} + } + return success; } public RecPort getRecPortByFace(String face, Session hbnSession) { diff --git a/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java b/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java index d87de99..033c684 100644 --- a/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java +++ b/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java @@ -45,10 +45,11 @@ public class ProgramManager { return programManager; } - public void load() { + public boolean load() { Session hbnSession = null; Transaction tx = null; + boolean success = false; try { hbnSession = HibernateManager.getSession(); @@ -62,13 +63,15 @@ public class ProgramManager { recPrograms = new ArrayList(progs); tx.commit(); + success = true; } catch (Exception e) { - logger.error("Could not load programs", e); + logger.error("Could not load programs"+ e.getClass().getName()); } finally { - hbnSession.close(); + if(hbnSession != null) {hbnSession.close();} } + return success; } public void addProgram(RecProgram prog) { @@ -208,7 +211,7 @@ public class ProgramManager { int startDay = seg.getTimestamp().getDay(); startDay--; // in java.util.Date, {Sunday ... Saturday} = {0 ... 6}. In net.sf.oreka.Day {monday ... sunday} = {0 ... 6} if(startDay == -1) { - startDay = 6; // sunday is = 0 in java.util.Date but = 6 in net.sf.oreka.Day + startDay = 6; } logger.debug("Day: Seg start:" + startDay + " Prg start:" + prog.getStartDay().ordinal() + " Prg stop:" + prog.getStopDay().ordinal()); if(startDay >= prog.getStartDay().ordinal() && startDay <= prog.getStopDay().ordinal()) { diff --git a/orktrack/src/net/sf/oreka/orktrack/ServiceManager.java b/orktrack/src/net/sf/oreka/orktrack/ServiceManager.java index fc8d029..5795977 100644 --- a/orktrack/src/net/sf/oreka/orktrack/ServiceManager.java +++ b/orktrack/src/net/sf/oreka/orktrack/ServiceManager.java @@ -22,16 +22,12 @@ import org.hibernate.Session; public class ServiceManager { - static Logger log = null; - - static void initialize() { - log = LogManager.getInstance().getPortLogger(); - } + static Logger logger = Logger.getLogger(ProgramManager.class); public static Service retrieveOrCreate(String name, Session hbnSession) { Service service = retrieveByName(name, hbnSession); if (service == null) { - log.info("Creating service:" + name); + logger.info("Creating service:" + name); service = new Service(); service.setName(name); service.setHostname("localhost"); diff --git a/orktrack/src/net/sf/oreka/orktrack/messages/MetadataMessage.java b/orktrack/src/net/sf/oreka/orktrack/messages/MetadataMessage.java index e8847ba..a4c279a 100644 --- a/orktrack/src/net/sf/oreka/orktrack/messages/MetadataMessage.java +++ b/orktrack/src/net/sf/oreka/orktrack/messages/MetadataMessage.java @@ -82,7 +82,6 @@ public class MetadataMessage extends SyncMessage { else {tx.rollback();} } catch (Exception e) { - if (tx != null) {tx.rollback();} log.error("TapeMessage.process: ", e); response.setSuccess(false); response.setComment(e.getMessage()); diff --git a/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java b/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java index 982f707..f69454b 100644 --- a/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java +++ b/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java @@ -84,7 +84,6 @@ public class TapeMessage extends SyncMessage { tx.commit(); } catch (Exception e) { - if (tx != null) {tx.rollback();} log.error("TapeMessage.process: ", e); response.setSuccess(false); response.setComment(e.getMessage()); diff --git a/orktrack/src/net/sf/oreka/orktrack/messages/UserStateMessage.java b/orktrack/src/net/sf/oreka/orktrack/messages/UserStateMessage.java index 1e2da84..fa8df25 100644 --- a/orktrack/src/net/sf/oreka/orktrack/messages/UserStateMessage.java +++ b/orktrack/src/net/sf/oreka/orktrack/messages/UserStateMessage.java @@ -88,7 +88,6 @@ public class UserStateMessage extends SyncMessage { tx.commit(); } catch (Exception e) { - if (tx != null) {tx.rollback();} log.error("TapeMessage.process: ", e); response.setSuccess(false); response.setComment(e.getMessage()); -- cgit v1.2.3