[Ils-source] r1583 - in trunk: src/com/resolutions/ils/data src/com/resolutions/jobs webapp/WEB-INF/classes webapp/WEB-INF/lib

scribe at crosswire.org scribe at crosswire.org
Sat Jul 7 06:49:35 MST 2018


Author: scribe
Date: 2018-07-07 06:49:35 -0700 (Sat, 07 Jul 2018)
New Revision: 1583

Added:
   trunk/src/com/resolutions/jobs/AssignRetakes.java
   trunk/src/com/resolutions/jobs/MgrComplianceEMails.java
   trunk/webapp/WEB-INF/lib/c3p0-0.9.1.1.jar
   trunk/webapp/WEB-INF/lib/log4j-1.2.16.jar
   trunk/webapp/WEB-INF/lib/quartz-2.2.3.jar
   trunk/webapp/WEB-INF/lib/quartz-jobs-2.2.3.jar
   trunk/webapp/WEB-INF/lib/slf4j-log4j12-1.7.7.jar
Removed:
   trunk/webapp/WEB-INF/lib/log4j-1.2.15.jar
   trunk/webapp/WEB-INF/lib/quartz-all-1.8.3.jar
   trunk/webapp/WEB-INF/lib/slf4j-api-1.5.10.jar
   trunk/webapp/WEB-INF/lib/slf4j-log4j12-1.5.10.jar
Modified:
   trunk/src/com/resolutions/ils/data/UserProfile.java
   trunk/src/com/resolutions/jobs/MgrRecurEMails.java
   trunk/src/com/resolutions/jobs/WarnCourseExpEMails.java
   trunk/webapp/WEB-INF/classes/jobs.xml
   trunk/webapp/WEB-INF/classes/log4j.properties
   trunk/webapp/WEB-INF/lib/crosswire.jar
   trunk/webapp/WEB-INF/lib/ils.jar
Log:
Updated to Quartz Scheduler 2.2.3
Split Mgr Compl and Assign Retakes out to their own cron jobs instead of piggy backing on other jobs
Handle error scenario when computing employed days when no HIREDATE is set
Updated jobs which store their last batchrun timestamp to use their own file to prevent race conditions
Scattered jobs 10 minutes apart after midnight


Modified: trunk/src/com/resolutions/ils/data/UserProfile.java
===================================================================
--- trunk/src/com/resolutions/ils/data/UserProfile.java	2018-06-26 12:02:27 UTC (rev 1582)
+++ trunk/src/com/resolutions/ils/data/UserProfile.java	2018-07-07 13:49:35 UTC (rev 1583)
@@ -683,6 +683,11 @@
     }
 
 	public boolean isEmployedFor(int days) {
+		Date d = getUserProfileHireDate();
+
+		// assert we have a hire date
+		if (d == null) return false;
+
 		Calendar cal = Calendar.getInstance();
 		cal.setTime(getUserProfileHireDate());
 		cal.add(Calendar.DAY_OF_YEAR, days);

Added: trunk/src/com/resolutions/jobs/AssignRetakes.java
===================================================================
--- trunk/src/com/resolutions/jobs/AssignRetakes.java	                        (rev 0)
+++ trunk/src/com/resolutions/jobs/AssignRetakes.java	2018-07-07 13:49:35 UTC (rev 1583)
@@ -0,0 +1,39 @@
+package com.resolutions.jobs;
+
+import java.util.Properties;
+
+import javax.servlet.ServletContext;
+
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+import org.apache.log4j.Logger;
+
+import com.resolutions.ils.Utils;
+import com.resolutions.ils.data.Company;
+import com.resolutions.ils.data.CourseAttempt;
+
+public class AssignRetakes implements Job {
+
+	static Logger logger = Logger.getLogger(AssignRetakes.class);
+
+	public void execute (JobExecutionContext context) throws JobExecutionException {
+		ServletContext servletContext = StartupScheduler.servletConfig.getServletContext();
+		
+		logger.info("Running Batch Assign Retakes");
+		for (Object o : Company.getAllCompanies()) {
+			Company c = (Company)o;
+			Properties sysConfig = Utils.getSysConfig(servletContext, c.getCompanyID());
+			boolean autoAssignRetakes = "on".equals(sysConfig.getProperty("AutoAssignRetakes", ""));
+			logger.info("Auto-Assign Retakes ("+autoAssignRetakes+") for Company: " + c.getCompanyID());
+			if (autoAssignRetakes) {
+				boolean emailNotice = "on".equals(sysConfig.getProperty("EmailEnableAssignedRetakes", "off"));
+				int count = CourseAttempt.revokeAllExpired(c.getCompanyID(), servletContext, emailNotice);
+				logger.info("Assigned " + Integer.toString(count) + " Recurrent Courses " + "for Company: " + c.getCompanyName() + " (" + c.getCompanyID() + ")");
+			}
+		}
+		logger.info("Finished Batch Assign Retakes");
+	}
+}
+

Added: trunk/src/com/resolutions/jobs/MgrComplianceEMails.java
===================================================================
--- trunk/src/com/resolutions/jobs/MgrComplianceEMails.java	                        (rev 0)
+++ trunk/src/com/resolutions/jobs/MgrComplianceEMails.java	2018-07-07 13:49:35 UTC (rev 1583)
@@ -0,0 +1,99 @@
+package com.resolutions.jobs;
+
+import java.util.Properties;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
+import javax.servlet.ServletContext;
+
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+import org.apache.log4j.Logger;
+
+import com.resolutions.ils.Utils;
+import com.resolutions.ils.data.Company;
+import com.resolutions.ils.data.Group;
+import com.resolutions.ils.data.UserProfile;
+
+public class MgrComplianceEMails implements Job {
+
+	static SimpleDateFormat df = new SimpleDateFormat();
+	static Logger logger = Logger.getLogger(MgrComplianceEMails.class);
+
+	public void execute (JobExecutionContext context) throws JobExecutionException {
+		ServletContext servletContext = StartupScheduler.servletConfig.getServletContext();
+		logger.info("Running Batch Job MgrComplianceEmail");
+		for (Object o : Company.getAllCompanies()) {
+			Company c = (Company)o;
+			Properties sysConfig = Utils.getSysConfig(servletContext, c.getCompanyID());
+			boolean enableComplEmails = "on".equals(sysConfig.getProperty("EmailEnableManagerComplReport", ""));
+			int complReportManagersOlderThanNumDays = 30; try { complReportManagersOlderThanNumDays = Integer.parseInt(sysConfig.getProperty("ComplReportNumDays")); } catch (Exception e) {}
+			int complReportDayOfMonth = 1; try { complReportDayOfMonth = Integer.parseInt(sysConfig.getProperty("ComplReportDayOfMonth")); } catch (Exception e) {}
+			int complReportDay = Calendar.SUNDAY; try { complReportDay = Integer.parseInt(sysConfig.getProperty("ComplReportDay")); } catch (Exception e) {}
+			int complReportThresholdPercent = 100; try { complReportThresholdPercent = Integer.parseInt(sysConfig.getProperty("ComplReportThresholdPercent")); } catch (Exception e) {}
+			String complReportFreq = sysConfig.getProperty("ComplReportFreq");
+logger.debug("Company: " + c.getCompanyID() + "(" + c.getCompanyName() + ")-- EmailEnableManagerComplReport: " + enableComplEmails + "; ComplReportNumDays: " + complReportManagersOlderThanNumDays + "; ComplReportDayOfMonth: " + complReportDayOfMonth + "; ComplReportDay: " + complReportDay + "; ComplReportThresholdPercent: " + complReportThresholdPercent);
+			if (enableComplEmails) {
+                                Properties lastJobs = new Properties();
+                                File propName = new File(servletContext.getRealPath("/WEB-INF/lastjobs.MgrComplianceEMails."+c.getCompanyID() + ".properties"));
+                                if (propName.exists()) {
+					try {
+						FileInputStream propFile = new FileInputStream(propName);
+						lastJobs.load(propFile);
+						propFile.close();
+					}
+					catch (Exception e) {}
+                                }
+				Calendar cal = GregorianCalendar.getInstance();
+				cal.set(2000, 1, 1);
+				Date lastDate = cal.getTime(); try { lastDate = df.parse(lastJobs.getProperty("LastBatchRun")); } catch (Exception e) {}
+				cal.setTime(lastDate);
+
+				if ("MONTHLY".equals(complReportFreq)) {
+					// Add 1 month and a day to last report run, then back up until we hit our target date
+					cal.add(Calendar.MONTH, 1);
+					if (cal.get(Calendar.DAY_OF_MONTH) < complReportDayOfMonth) cal.add(Calendar.MONTH, -1);
+					cal.set(Calendar.DAY_OF_MONTH, complReportDayOfMonth);
+				}
+				else if ("WEEKLY".equals(complReportFreq)) {
+					cal.add(Calendar.DAY_OF_MONTH, 7);
+					if (cal.get(Calendar.DAY_OF_WEEK) < complReportDay) cal.add(Calendar.DAY_OF_MONTH, -1*cal.get(Calendar.DAY_OF_WEEK));
+					int adjust = cal.get(Calendar.DAY_OF_WEEK)-complReportDay;
+					if (adjust > 0) cal.add(Calendar.DAY_OF_MONTH, adjust*-1);
+				}
+				else {
+					cal.add(Calendar.DAY_OF_MONTH, 1);
+				}
+				cal.add(Calendar.HOUR, -4);	// be sure we don't miss out date by just a few hours. report shouldn't take more than this long to run the reports.
+logger.debug("LastBatchRun: " + lastDate + "; Next Batch Run After: " + cal.getTime() + "; Now: " + new Date());
+				lastDate = cal.getTime();
+				if (new Date().after(lastDate)) {
+logger.debug("running...");
+
+					UserProfile.runMgrComplReport(servletContext, complReportThresholdPercent, complReportManagersOlderThanNumDays);
+
+					lastJobs.setProperty("LastBatchRun", df.format(new Date()));
+					try {
+						FileOutputStream propFile = new FileOutputStream(propName);
+						lastJobs.store(propFile, "last saved from MgrComplEmail batch job");
+						propFile.close();
+					}
+					catch (Exception e) {}
+				}
+				else {
+logger.debug("skipping...");
+				}
+			}
+		}
+		logger.info("Finished Batch Job MgrComplianceEmail");
+	}
+
+}
+

Modified: trunk/src/com/resolutions/jobs/MgrRecurEMails.java
===================================================================
--- trunk/src/com/resolutions/jobs/MgrRecurEMails.java	2018-06-26 12:02:27 UTC (rev 1582)
+++ trunk/src/com/resolutions/jobs/MgrRecurEMails.java	2018-07-07 13:49:35 UTC (rev 1583)
@@ -40,7 +40,7 @@
 			String recurReportFreq = sysConfig.getProperty("RecurReportFreq");
 			if (enableRecurEmails) {
                                 Properties lastJobs = new Properties();
-                                File propName = new File(servletContext.getRealPath("/WEB-INF/lastjobs."+c.getCompanyID() + ".properties"));
+                                File propName = new File(servletContext.getRealPath("/WEB-INF/lastjobs.MgrRecurEMails."+c.getCompanyID() + ".properties"));
                                 if (propName.exists()) {
 					try {
 						FileInputStream propFile = new FileInputStream(propName);
@@ -51,7 +51,7 @@
                                 }
 				Calendar cal = GregorianCalendar.getInstance();
 				cal.set(2000, 1, 1);
-				Date lastDate = cal.getTime(); try { lastDate = df.parse(lastJobs.getProperty("ManagerRecurReportEmails")); } catch (Exception e) {}
+				Date lastDate = cal.getTime(); try { lastDate = df.parse(lastJobs.getProperty("LastBatchRun")); } catch (Exception e) {}
 				cal.setTime(lastDate);
 
 				if ("MONTHLY".equals(recurReportFreq)) {
@@ -77,7 +77,7 @@
 						up.emailMgrRecurReport(servletContext, recurReportNumDays);
 					}
 
-					lastJobs.setProperty("ManagerRecurReportEmails", df.format(new Date()));
+					lastJobs.setProperty("LastBatchRun", df.format(new Date()));
 					try {
 						FileOutputStream propFile = new FileOutputStream(propName);
 						lastJobs.store(propFile, "last saved from MgrRecurEmail batch job");
@@ -88,64 +88,6 @@
 			}
 		}
 		logger.info("Finished Batch Job MgrRecurEmail");
-		logger.info("Running Batch Job MgrComplianceEmail");
-		for (Object o : Company.getAllCompanies()) {
-			Company c = (Company)o;
-			Properties sysConfig = Utils.getSysConfig(servletContext, c.getCompanyID());
-			boolean enableComplEmails = "on".equals(sysConfig.getProperty("EmailEnableManagerComplReport", ""));
-			int complReportManagersOlderThanNumDays = 30; try { complReportManagersOlderThanNumDays = Integer.parseInt(sysConfig.getProperty("ComplReportNumDays")); } catch (Exception e) {}
-			int complReportDayOfMonth = 1; try { complReportDayOfMonth = Integer.parseInt(sysConfig.getProperty("ComplReportDayOfMonth")); } catch (Exception e) {}
-			int complReportDay = Calendar.SUNDAY; try { complReportDay = Integer.parseInt(sysConfig.getProperty("ComplReportDay")); } catch (Exception e) {}
-			int complReportThresholdPercent = 100; try { complReportThresholdPercent = Integer.parseInt(sysConfig.getProperty("ComplReportThresholdPercent")); } catch (Exception e) {}
-			String complReportFreq = sysConfig.getProperty("ComplReportFreq");
-			if (enableComplEmails) {
-                                Properties lastJobs = new Properties();
-                                File propName = new File(servletContext.getRealPath("/WEB-INF/lastjobs."+c.getCompanyID() + ".properties"));
-                                if (propName.exists()) {
-					try {
-						FileInputStream propFile = new FileInputStream(propName);
-						lastJobs.load(propFile);
-						propFile.close();
-					}
-					catch (Exception e) {}
-                                }
-				Calendar cal = GregorianCalendar.getInstance();
-				cal.set(2000, 1, 1);
-				Date lastDate = cal.getTime(); try { lastDate = df.parse(lastJobs.getProperty("ManagerComplReportEmails")); } catch (Exception e) {}
-				cal.setTime(lastDate);
-
-				if ("MONTHLY".equals(complReportFreq)) {
-					// Add 1 month and a day to last report run, then back up until we hit our target date
-					cal.add(Calendar.MONTH, 1);
-					if (cal.get(Calendar.DAY_OF_MONTH) < complReportDayOfMonth) cal.add(Calendar.MONTH, -1);
-					cal.set(Calendar.DAY_OF_MONTH, complReportDayOfMonth);
-				}
-				else if ("WEEKLY".equals(complReportFreq)) {
-					cal.add(Calendar.DAY_OF_MONTH, 7);
-					if (cal.get(Calendar.DAY_OF_WEEK) < complReportDay) cal.add(Calendar.DAY_OF_MONTH, -1*cal.get(Calendar.DAY_OF_WEEK));
-					int adjust = cal.get(Calendar.DAY_OF_WEEK)-complReportDay;
-					if (adjust > 0) cal.add(Calendar.DAY_OF_MONTH, adjust*-1);
-				}
-				else {
-					cal.add(Calendar.DAY_OF_MONTH, 1);
-				}
-				cal.add(Calendar.HOUR, -4);	// be sure we don't miss out date by just a few hours. report shouldn't take more than this long to run the reports.
-				lastDate = cal.getTime();
-				if (new Date().after(lastDate)) {
-
-					UserProfile.runMgrComplReport(servletContext, complReportThresholdPercent, complReportManagersOlderThanNumDays);
-
-					lastJobs.setProperty("ManagerComplReportEmails", df.format(new Date()));
-					try {
-						FileOutputStream propFile = new FileOutputStream(propName);
-						lastJobs.store(propFile, "last saved from MgrComplEmail batch job");
-						propFile.close();
-					}
-					catch (Exception e) {}
-				}
-			}
-		}
-		logger.info("Finished Batch Job MgrComplianceEmail");
 	}
 
 }

Modified: trunk/src/com/resolutions/jobs/WarnCourseExpEMails.java
===================================================================
--- trunk/src/com/resolutions/jobs/WarnCourseExpEMails.java	2018-06-26 12:02:27 UTC (rev 1582)
+++ trunk/src/com/resolutions/jobs/WarnCourseExpEMails.java	2018-07-07 13:49:35 UTC (rev 1583)
@@ -33,21 +33,6 @@
 			}
 		}
 		logger.info("Finished Batch EMail Submission");
-		
-		logger.info("Running Batch Assign Retakes");
-		for (Object o : Company.getAllCompanies()) {
-			Company c = (Company)o;
-			Properties sysConfig = Utils.getSysConfig(servletContext, c.getCompanyID());
-			boolean autoAssignRetakes = "on".equals(sysConfig.getProperty("AutoAssignRetakes", ""));
-			logger.info("Auto-Assign Retakes ("+autoAssignRetakes+") for Company: " + c.getCompanyID());
-			if (autoAssignRetakes) {
-				boolean emailNotice = "on".equals(sysConfig.getProperty("EmailEnableAssignedRetakes", "off"));
-				int count = CourseAttempt.revokeAllExpired(c.getCompanyID(), servletContext, emailNotice);
-				logger.info("Assigned " + Integer.toString(count) + " Recurrent Courses " + "for Company: " + c.getCompanyName() + " (" + c.getCompanyID() + ")");
-			}
-		}
-		logger.info("Finished Batch Assign Retakes");
 	}
-
 }
 

Modified: trunk/webapp/WEB-INF/classes/jobs.xml
===================================================================
--- trunk/webapp/WEB-INF/classes/jobs.xml	2018-06-26 12:02:27 UTC (rev 1582)
+++ trunk/webapp/WEB-INF/classes/jobs.xml	2018-07-07 13:49:35 UTC (rev 1583)
@@ -1,109 +1,102 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
-    version="1.8">
-    
-    <pre-processing-commands>
-        <delete-jobs-in-group>*</delete-jobs-in-group>  <!-- clear all jobs in scheduler -->
-        <delete-triggers-in-group>*</delete-triggers-in-group> <!-- clear all triggers in scheduler -->
-    </pre-processing-commands>
-    
-    <processing-directives>
-        <!-- if there are any jobs/trigger in scheduler of same name (as in this file), overwrite them -->
-        <overwrite-existing-data>true</overwrite-existing-data>
-        <!-- if there are any jobs/trigger in scheduler of same name (as in this file), and over-write is false, ignore them rather then generating an error -->
-        <ignore-duplicates>false</ignore-duplicates> 
-    </processing-directives>
-    
-    <schedule>
-	    <job>
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
+	version="1.8">
+
+	<pre-processing-commands>
+	<delete-jobs-in-group>*</delete-jobs-in-group>  <!-- clear all jobs in scheduler -->
+	<delete-triggers-in-group>*</delete-triggers-in-group> <!-- clear all triggers in scheduler -->
+	</pre-processing-commands>
+
+	<processing-directives>
+	<!-- if there are any jobs/trigger in scheduler of same name (as in this file), overwrite them -->
+	<overwrite-existing-data>true</overwrite-existing-data>
+	<!-- if there are any jobs/trigger in scheduler of same name (as in this file), and over-write is false, ignore them rather then generating an error -->
+	<ignore-duplicates>false</ignore-duplicates> 
+	</processing-directives>
+
+	<schedule>
+		<job>
 			<name>MgrRecurEMails</name>
-			<group>MgrRecEMails</group>
 			<description>Manager Recurrent Training EMails</description>
 			<job-class>com.resolutions.jobs.MgrRecurEMails</job-class>
-			<volatility>true</volatility>
-			<durability>false</durability>
-			<recover>true</recover>
-	    </job>
-	    <job>
+		</job>
+		<job>
+			<name>MgrComplianceEMails</name>
+			<description>Manager Recurrent Training EMails</description>
+			<job-class>com.resolutions.jobs.MgrComplianceEMails</job-class>
+		</job>
+		<job>
+			<name>AssignRetakes</name>
+			<description>Auto Assign Retakes</description>
+			<job-class>com.resolutions.jobs.AssignRetakes</job-class>
+		</job>
+		<job>
 			<name>WarnCourseExpEMails</name>
-			<group>WarnEMails</group>
 			<description>Daily Warnings EMails</description>
 			<job-class>com.resolutions.jobs.WarnCourseExpEMails</job-class>
-			<volatility>true</volatility>
-			<durability>false</durability>
-			<recover>true</recover>
-	    </job>
-	    <job>
+		</job>
+		<job>
 			<name>CleanAPISessionTokens</name>
-			<group>Clean</group>
 			<description>Clean API Session Tokens</description>
 			<job-class>com.resolutions.jobs.CleanAPISessionTokens</job-class>
-	        <volatility>true</volatility>
-	        <durability>false</durability>
-	        <recover>true</recover>
-	        <job-data-map>
-	            <entry>
-	                <key>someOtherKey</key>
-	                <value>someOtherValue</value>
-	            </entry>
-	        </job-data-map>
-	    </job>
-   	    <job>
+		</job>
+
+
+		<trigger>
+			<cron>
+				<name>WarnCourseExpEMailsTrigger</name>
+				<job-name>WarnCourseExpEMails</job-name>
+				<cron-expression>0 0 0 * * ?</cron-expression>
+			</cron>
+		</trigger>
+		<trigger>
+			<cron>
+				<name>AssignRetakesTrigger</name>
+				<job-name>AssignRetakes</job-name>
+				<cron-expression>0 10 0 * * ?</cron-expression>
+			</cron>
+		</trigger>
+		<trigger>
+			<cron>
+				<name>CleanAPISessionTokensTrigger</name>
+				<job-name>CleanAPISessionTokens</job-name>
+				<cron-expression>0 20 0 * * ?</cron-expression>
+			</cron>
+		</trigger>
+		<trigger>
+			<cron>
+				<name>MgrRecurEMailsTrigger</name>
+				<job-name>MgrRecurEMails</job-name>
+				<cron-expression>0 30 0 * * ?</cron-expression>
+			</cron>
+		</trigger>
+		<trigger>
+			<cron>
+				<name>MgrComplianceEMailsTrigger</name>
+				<job-name>MgrComplianceEMails</job-name>
+				<cron-expression>0 40 0 * * ?</cron-expression>
+			</cron>
+		</trigger>
+
+
+
+<!-- This is for CCURE crapola
+		<job>
 			<name>CCURERetryLockedRecords</name>
-			<group>CCURE</group>
 			<description>CCURE Retry Locked Records</description>
 			<job-class>com.resolutions.jobs.CCURERetryLockedRecords</job-class>
-	        <volatility>true</volatility>
-	        <durability>false</durability>
-	        <recover>true</recover>
-	        <job-data-map>
-	            <entry>
-	                <key>someOtherKey</key>
-	                <value>someOtherValue</value>
-	            </entry>
-	        </job-data-map>
-	    </job>
-	    
-	
-	    <trigger>
-	        <cron>
-		    <name>DailyWarnEmails</name>
-	            <group>ILSTriggers</group>
-	            <job-name>WarnCourseExpEMails</job-name>
-	            <job-group>WarnEMails</job-group>
-		    <cron-expression>0 0 0 * * ?</cron-expression>
-	        </cron>
-        </trigger>
-	    <trigger>
-	        <cron>
-		    <name>HourlyClean</name>
-	            <group>ILSTriggers</group>
-				<job-name>CleanAPISessionTokens</job-name>
-				<job-group>Clean</job-group>
-		    <cron-expression>0 0 0 * * ?</cron-expression>
-	        </cron>
-        </trigger>
-	    <trigger>
-	        <cron>
-		    <name>MgrRecurEMails</name>
-	            <group>ILSTriggers</group>
-				<job-name>MgrRecurEMails</job-name>
-				<job-group>MgrRecEMails</job-group>
-		    <cron-expression>0 0 0 * * ?</cron-expression>
-	        </cron>
-        </trigger>
-<!--
-	    <trigger>
-	        <cron>
-		    <name>CCURELockedRecords</name>
-	            <group>ILSTriggers</group>
+		</job>
+		<trigger>
+			<cron>
+				<name>CCURELockedRecords</name>
 				<job-name>CCURERetryLockedRecords</job-name>
-				<job-group>CCURE</job-group>
-		    <cron-expression>0 * * * * ?</cron-expression>
-	        </cron>
-        </trigger>
+				<cron-expression>0 * * * * ?</cron-expression>
+			</cron>
+		</trigger>
 -->
-    </schedule>    
+
+
+	</schedule>    
 </job-scheduling-data>

Modified: trunk/webapp/WEB-INF/classes/log4j.properties
===================================================================
--- trunk/webapp/WEB-INF/classes/log4j.properties	2018-06-26 12:02:27 UTC (rev 1582)
+++ trunk/webapp/WEB-INF/classes/log4j.properties	2018-07-07 13:49:35 UTC (rev 1583)
@@ -1,26 +1,26 @@
-#Last updated by admin
-#Mon Dec 13 15:19:02 GMT-07:00 2010
-log4j.appender.S.MaxFileSize=500KB
-log4j.appender.E=org.apache.log4j.RollingFileAppender
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.A=org.apache.log4j.RollingFileAppender
-log4j.appender.E.layout.ConversionPattern=%p %d{dd-MMM-yyyy HH\:mm} %c{1} - %m%n
-log4j.appender.E.MaxBackupIndex=5
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F\:%L) - %m%n
-log4j.appender.E.layout=org.apache.log4j.PatternLayout
-log4j.appender.A.MaxBackupIndex=5
-log4j.appender.A.File=C\:\\ils\\trunk-devel\\webapp\\log\\aicc.log
-log4j.appender.E.MaxFileSize=500KB
-log4j.appender.S.MaxBackupIndex=5
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.logger.AICC=INFO, A
-log4j.appender.S.layout.ConversionPattern=%p %d{dd-MMM-yyyy HH\:mm} %c - %m%n
-log4j.appender.S=org.apache.log4j.RollingFileAppender
-log4j.appender.A.layout.ConversionPattern=%c - %d{dd-MMM HH\:mm} %m%n
-log4j.appender.S.File=C\:\\ils\\trunk-devel\\webapp\\log\\system.log
-log4j.appender.A.MaxFileSize=500KB
-log4j.appender.A.layout=org.apache.log4j.PatternLayout
-log4j.logger.EVENTS=INFO, E
-log4j.appender.S.layout=org.apache.log4j.PatternLayout
-log4j.rootLogger=DEBUG, stdout, S
-log4j.appender.E.File=C\:\\ils\\trunk-devel\\webapp\\log\\events.log
+#Last updated by admin
+#Tue Oct 10 20:44:07 GMT 2017
+log4j.appender.S.MaxFileSize=5000KB
+log4j.appender.E=org.apache.log4j.RollingFileAppender
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.A=org.apache.log4j.RollingFileAppender
+log4j.appender.E.layout.ConversionPattern=%p %d{dd-MMM-yyyy HH\:mm} %c{1} - %m%n
+log4j.appender.E.MaxBackupIndex=5
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F\:%L) - %m%n
+log4j.appender.E.layout=org.apache.log4j.PatternLayout
+log4j.appender.A.MaxBackupIndex=5
+log4j.appender.A.File=/home/trunk-devel/sites/trunk-devel/webapp/log/aicc.log
+log4j.appender.E.MaxFileSize=5000KB
+log4j.appender.S.MaxBackupIndex=5
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.logger.AICC=INFO, A
+log4j.appender.S.layout.ConversionPattern=%p %d{dd-MMM-yyyy HH\:mm} %c - %m%n
+log4j.appender.S=org.apache.log4j.RollingFileAppender
+log4j.appender.A.layout.ConversionPattern=%c - %d{dd-MMM HH\:mm} %m%n
+log4j.appender.S.File=/home/trunk-devel/sites/trunk-devel/webapp/log/system.log
+log4j.appender.A.MaxFileSize=5000KB
+log4j.appender.A.layout=org.apache.log4j.PatternLayout
+log4j.logger.EVENTS=INFO, E
+log4j.appender.S.layout=org.apache.log4j.PatternLayout
+log4j.rootLogger=DEBUG, stdout, S
+log4j.appender.E.File=/home/trunk-devel/sites/trunk-devel/webapp/log/events.log

Added: trunk/webapp/WEB-INF/lib/c3p0-0.9.1.1.jar
===================================================================
(Binary files differ)


Property changes on: trunk/webapp/WEB-INF/lib/c3p0-0.9.1.1.jar
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/webapp/WEB-INF/lib/crosswire.jar
===================================================================
(Binary files differ)

Modified: trunk/webapp/WEB-INF/lib/ils.jar
===================================================================
(Binary files differ)

Deleted: trunk/webapp/WEB-INF/lib/log4j-1.2.15.jar
===================================================================
(Binary files differ)

Added: trunk/webapp/WEB-INF/lib/log4j-1.2.16.jar
===================================================================
(Binary files differ)


Property changes on: trunk/webapp/WEB-INF/lib/log4j-1.2.16.jar
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

Added: trunk/webapp/WEB-INF/lib/quartz-2.2.3.jar
===================================================================
(Binary files differ)


Property changes on: trunk/webapp/WEB-INF/lib/quartz-2.2.3.jar
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

Deleted: trunk/webapp/WEB-INF/lib/quartz-all-1.8.3.jar
===================================================================
(Binary files differ)

Added: trunk/webapp/WEB-INF/lib/quartz-jobs-2.2.3.jar
===================================================================
(Binary files differ)


Property changes on: trunk/webapp/WEB-INF/lib/quartz-jobs-2.2.3.jar
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

Deleted: trunk/webapp/WEB-INF/lib/slf4j-api-1.5.10.jar
===================================================================
(Binary files differ)

Deleted: trunk/webapp/WEB-INF/lib/slf4j-log4j12-1.5.10.jar
===================================================================
(Binary files differ)

Added: trunk/webapp/WEB-INF/lib/slf4j-log4j12-1.7.7.jar
===================================================================
(Binary files differ)


Property changes on: trunk/webapp/WEB-INF/lib/slf4j-log4j12-1.7.7.jar
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream




More information about the Ils-source mailing list