public List<RenewalEntry> getEligibleRenewal(double chargeAmount, int chargeType) {
		List<RenewalEntry> listRenewals = new ArrayList<RenewalEntry>();
		CallableStatement stmt = null;
		ResultSet rs = null;
		RenewalEntry entry = null;
		
		try {
			stmt = this.db.getConnection().prepareCall("{ call populateAndFetchEligibleRenewals(?, ?) }");
			stmt.setDouble("chargingAmount", chargeAmount);
			stmt.setInt("chargeType", chargeType);
			
			rs = stmt.executeQuery();
			
			while(rs.next()) {
				
				entry = new RenewalEntry();
				entry.setId(rs.getInt("id"));
				entry.setaParty(rs.getString("a_party"));
				entry.setAmount(rs.getDouble("amount"));
				entry.setStat(rs.getInt("stat"));
				entry.setChargeType(rs.getInt("charge_type"));
				entry.setCreated(rs.getDate("created"));
				entry.setUpdated(rs.getDate("updated"));
				entry.setRetryCount(rs.getInt("retry_count"));
				entry.setSubscriberType(rs.getInt("sub_type"));
				entry.setReferenceId(rs.getString("ref_id"));
				entry.setErrorCode(rs.getString("error_code"));
				
				listRenewals.add(entry);
			}
			
			
		} catch (SQLException e) {
			log.error("getEligibleRenewal failed: " + e.getMessage(), e);
		} finally {
			try {
				if(rs != null) rs.close();
				if (stmt != null) stmt.close();
			} catch (SQLException ex) {
				log.error("failed to close db resources: " + ex.getMessage(), ex);
			}
			
			log.info("Total renewl records fetch for processing: " + listRenewals.size());
			
		}
		
		return listRenewals;
	}