public void updateBatch(List<RenewalEntry> entries, String month) {

		String strSqlUpdate = "";
		String strSqlInsertSuccess = "";
		String strSqlSubscriberUpdate = "";
		
		Statement stmt = null;
		
		int monthRecords = 0;
		int subscriberRecords = 0;
		int chargeProcessRecords = 0;
		
		try {
			
			stmt = this.db.getConnection().createStatement();
			
			
			long startTime = System.currentTimeMillis();				
			
			for(RenewalEntry entry : entries) {
				
				log.info("Inserting record into mim_history.charge_" + month + ": " + entry.getaParty());
				
				strSqlInsertSuccess = "INSERT IGNORE INTO mim_history.charge_01(a_party, amount, stat, charge_type, created, updated, retry_count, sub_type, ref_id, error_code) SELECT a_party, amount, 2, charge_type, created, NOW(), retry_count, sub_type, ref_id, error_code FROM mim_history.charge_process WHERE a_party = "
						+ "'" + entry.getaParty() + "'";
				
				monthRecords += stmt.executeUpdate(strSqlInsertSuccess);
				
				if(entry.getCos() == 2) {
					
					log.info("Updating subscriber table for Champion user: " + entry.getaParty());
					strSqlSubscriberUpdate = "UPDATE mim.subscriber SET next_renewal_date = DATE_ADD(CURDATE(), INTERVAL 15 DAY), last_success_charge = CURDATE(), updated = NOW(), last_activity = NOW() "
							+ "WHERE a_party = '" + entry.getaParty() + "'";
					
					try {
						subscriberRecords += stmt.executeUpdate(strSqlSubscriberUpdate); 
					} catch(Exception e) {
						log.error(e);
					}
					
				} else {
					
					log.info("Updating subscriber table for standard user: " + entry.getaParty());
					strSqlSubscriberUpdate = "UPDATE mim.subscriber SET next_renewal_date = DATE_ADD(CURDATE(), INTERVAL 7 DAY), last_success_charge = CURDATE(), updated = NOW(), last_activity = NOW() "
							+ "WHERE a_party = '" + entry.getaParty() + "'";
					
					try {
						subscriberRecords += stmt.executeUpdate(strSqlSubscriberUpdate);
					} catch(Exception e) {
						log.error(e);
					}
					
				}
				
				log.info("Updating charge_process table: " + entry.getaParty());
				
				strSqlUpdate = "UPDATE charge_process SET retry_count = " + entry.getRetryCount() + 
						", ref_id = '" + entry.getReferenceId() + "', updated = NOW(), error_code = '" + entry.getErrorCode() + "', " +
								"stat = " + entry.getStat() + " WHERE id = " + entry.getId();
				
				try {
					chargeProcessRecords += stmt.executeUpdate(strSqlUpdate);
				} catch(Exception e) {
					log.error(e);
				}
				
			}			
			
			long stopTime = System.currentTimeMillis();
			long elapsedTime = stopTime - startTime;
			
			if(log.isDebugEnabled())
				log.debug("Batch sql execution completed in (msec)" + elapsedTime);
			
		} catch (SQLException e) {
			log.error("getEligibleRenewal failed: " + e.getMessage(), e);
		} finally {
			try {
				if (stmt != null) stmt.close();
			} catch (SQLException ex) {
				log.error("failed to close db resources: " + ex.getMessage(), ex);
			}
			
			log.info("----------------------------------- Summary - " + new Date().toString() + " ---------------------------------");
			log.info("Month table: " + monthRecords + ", Subscriber table: " + subscriberRecords + ", Charge Process table: " + chargeProcessRecords);
			log.info("-------------------------------------------------------------------------------------------------------------");
		}
	}