azkaban-uncached

fix scheduler use too many connections remove annoying sla

3/12/2013 7:08:16 PM

Details

diff --git a/src/java/azkaban/scheduler/JdbcScheduleLoader.java b/src/java/azkaban/scheduler/JdbcScheduleLoader.java
index ee9c812..c58c5ea 100644
--- a/src/java/azkaban/scheduler/JdbcScheduleLoader.java
+++ b/src/java/azkaban/scheduler/JdbcScheduleLoader.java
@@ -150,8 +150,12 @@ public class JdbcScheduleLoader implements ScheduleLoader {
 
 			DbUtils.closeQuietly(connection);
 			throw new ScheduleManagerException("Loading schedules from db failed. ", e);
+		} finally {
+			DbUtils.closeQuietly(connection);
 		}
 		
+		logger.info("Now trying to update the schedules");
+		
 		// filter the schedules
 		for(Schedule sched : schedules) {
 			if(!sched.updateTime()) {
@@ -160,17 +164,18 @@ public class JdbcScheduleLoader implements ScheduleLoader {
 				removeSchedule(sched);
 			}
 			else {
+				logger.info("Recurring schedule, need to update next exec time");
 				try {
 					updateNextExecTime(sched);
 				} catch (Exception e) {
-					DbUtils.closeQuietly(connection);
+					e.printStackTrace();
 					throw new ScheduleManagerException("Update next execution time failed.", e);
-				}
+				} 
 				logger.info("Schedule " + sched.getScheduleName() + " loaded and updated.");
 			}
 		}
 		
-		DbUtils.closeQuietly(connection);
+		
 				
 		logger.info("Loaded " + schedules.size() + " schedules.");
 		
@@ -246,13 +251,18 @@ public class JdbcScheduleLoader implements ScheduleLoader {
 	@Override
 	public void updateNextExecTime(Schedule s) throws ScheduleManagerException 
 	{
+		logger.info("Update schedule " + s.getScheduleName() + " into db. ");
 		Connection connection = getConnection();
 		QueryRunner runner = new QueryRunner();
 		try {
+			
 			runner.update(connection, UPDATE_NEXT_EXEC_TIME, s.getNextExecTime(), s.getProjectId(), s.getFlowName()); 
 		} catch (SQLException e) {
-			logger.error(UPDATE_NEXT_EXEC_TIME + " failed.");
+			e.printStackTrace();
+			logger.error(UPDATE_NEXT_EXEC_TIME + " failed.", e);
 			throw new ScheduleManagerException("Update schedule " + s.getScheduleName() + " into db failed. ", e);
+		} finally {
+			DbUtils.closeQuietly(connection);
 		}
 	}
 	
diff --git a/src/java/azkaban/scheduler/ScheduleManager.java b/src/java/azkaban/scheduler/ScheduleManager.java
index cae4fa5..f075494 100644
--- a/src/java/azkaban/scheduler/ScheduleManager.java
+++ b/src/java/azkaban/scheduler/ScheduleManager.java
@@ -93,6 +93,7 @@ public class ScheduleManager {
 			scheduleList = loader.loadSchedules();
 		} catch (ScheduleManagerException e) {
 			// TODO Auto-generated catch block
+			logger.error("Failed to load schedules" + e.getCause() + e.getMessage());
 			e.printStackTrace();
 		}
 
diff --git a/src/java/azkaban/sla/SLAManager.java b/src/java/azkaban/sla/SLAManager.java
index 4e04528..032d038 100644
--- a/src/java/azkaban/sla/SLAManager.java
+++ b/src/java/azkaban/sla/SLAManager.java
@@ -342,7 +342,7 @@ public class SLAManager {
 	}
 	
 	private void takeSLASuccessActions(SLA s, ExecutableFlow exflow) {
-		sendSlaSuccessEmail(s, exflow);
+		//sendSlaSuccessEmail(s, exflow);
 		
 	}