Tu scheduli una nuova istanza della classe BatchsyncroAlert ogni 5 secondi.
Ecco perchè saturi lo heap.
Prova a gestire un singleton di questa classe.
codice:
.........
timer.scheduleAtFixedRate(BatchSyncroAlert.getSingleton(), new Date(), millis);
.........
public class BatchSyncroAlert {
// un oggetto di tipo BatchSyncroAlert
private static BatchSyncroAlert singleton;
private BatchSyncroAlert() {
}
public static BatchSyncroAlert getSingleton() {
if (singleton == null) {
singleton = new BatchSyncroAlert();
}
return singleton;
}
public void run() {
..........
}
}