extensions/net.sf.basedb.opengrid/trunk/src/net/sf/basedb/opengrid/AbortJobIfTransactionFails.java

Code
Comments
Other
Rev Date Author Line
4203 02 Nov 16 nicklas 1 package net.sf.basedb.opengrid;
4203 02 Nov 16 nicklas 2
4203 02 Nov 16 nicklas 3 import org.slf4j.LoggerFactory;
4203 02 Nov 16 nicklas 4
4203 02 Nov 16 nicklas 5 import net.sf.basedb.core.TransactionalAction;
7075 27 Mar 23 nicklas 6 import net.sf.basedb.opengrid.service.OpenGridService;
7075 27 Mar 23 nicklas 7 import net.sf.basedb.util.extensions.logging.ExtensionsLog;
7075 27 Mar 23 nicklas 8 import net.sf.basedb.util.extensions.logging.ExtensionsLogger;
4203 02 Nov 16 nicklas 9
4203 02 Nov 16 nicklas 10 /**
4203 02 Nov 16 nicklas 11   When a job has been submitted to the cluster the job-id and
4203 02 Nov 16 nicklas 12   other information has to be registered in BASE. But if the
4203 02 Nov 16 nicklas 13   registration fails there is no need to keep the job in the
4203 02 Nov 16 nicklas 14   queue on the cluster so we try to delete it.
4203 02 Nov 16 nicklas 15   
4203 02 Nov 16 nicklas 16   @author nicklas
4203 02 Nov 16 nicklas 17   @since 1.0
4203 02 Nov 16 nicklas 18 */
4203 02 Nov 16 nicklas 19 public class AbortJobIfTransactionFails 
4203 02 Nov 16 nicklas 20   implements TransactionalAction
4203 02 Nov 16 nicklas 21 {
7075 27 Mar 23 nicklas 22   private static final ExtensionsLogger logger = 
7075 27 Mar 23 nicklas 23     ExtensionsLog.getLogger(OpenGridService.ID, true).wrap(LoggerFactory.getLogger(AbortJobIfTransactionFails.class));
4203 02 Nov 16 nicklas 24
4203 02 Nov 16 nicklas 25   private final JobIdentifier jobId;
4203 02 Nov 16 nicklas 26   
4203 02 Nov 16 nicklas 27   public AbortJobIfTransactionFails(JobIdentifier jobId)
4203 02 Nov 16 nicklas 28   {
4203 02 Nov 16 nicklas 29     this.jobId = jobId;
4203 02 Nov 16 nicklas 30   }
4203 02 Nov 16 nicklas 31   
4203 02 Nov 16 nicklas 32   @Override
4203 02 Nov 16 nicklas 33   public void onAfterCommit() 
4203 02 Nov 16 nicklas 34   {}
4203 02 Nov 16 nicklas 35
4203 02 Nov 16 nicklas 36   @Override
4203 02 Nov 16 nicklas 37   public void onBeforeCommit() 
4203 02 Nov 16 nicklas 38   {}
4203 02 Nov 16 nicklas 39
4203 02 Nov 16 nicklas 40   @Override
4203 02 Nov 16 nicklas 41   public void onRollback()
4203 02 Nov 16 nicklas 42   {
4203 02 Nov 16 nicklas 43     if (logger.isDebugEnabled())
4203 02 Nov 16 nicklas 44     {
4203 02 Nov 16 nicklas 45       logger.debug("Transaction rollback; requesting job abort: " + jobId); 
4203 02 Nov 16 nicklas 46     }
7075 27 Mar 23 nicklas 47     OpenGridService.getInstance().asyncJobAbort(jobId);
4203 02 Nov 16 nicklas 48   }
4203 02 Nov 16 nicklas 49
4203 02 Nov 16 nicklas 50 }