onFailure we log the stacktrace exception as an error and rollback the transaction (w/o closing the connection); we expect that the executors will un-hang when the transactions is unrolled and the job will eventually end along with the JDBC connection (onJobEnd the JDBC connection is closed)
synchronizing rollback and close methods in order to eliminate race conditions while trying use these calls (e.g. the JDBC connection may be closed already while we're trying to rollback)
@note: when rolling back the transaction Vector must close the datastream connections (which I don't think it does for now)
@note: when rolling back the transaction Vector must close the datastream connections (which I don't think it does for now)