예제 #1
0
 /**
  * Inicia una transacción
  *
  * @throws ISPACException si ocurre algún error.
  */
 public void begin() throws ISPACException {
   try {
     previoustx = context.ongoingTX();
     if (!previoustx) {
       context.beginTX();
     }
     if (bpmAPI != null) {
       bpmAPI.initBPMSession();
     }
   } catch (ISPACException e) {
     throw e;
   } catch (Exception e) {
     throw new ISPACException("Error en TransactionContainer.begin() ", e);
   }
 }
예제 #2
0
  /**
   * Constructor
   *
   * @param context Contexto de cliente.
   */
  public TransactionContainer(IClientContext context) {
    this.context = context;
    this.previoustx = false;

    try {
      // Se obtiene el API del BPM el cual iniciara la sesion
      this.bpmAPI = context.getAPI().getBPMAPI();
    } catch (ISPACException e) {
      this.bpmAPI = null;
    }
  }
예제 #3
0
 /**
  * Libera la transacción
  *
  * @throws ISPACException si ocurre algún error.
  */
 public void release() throws ISPACException {
   try {
     if (!previoustx) {
       context.releaseTX();
     }
     if (error && (bpmAPI != null)) {
       bpmAPI.closeBPMSession(false);
     }
   } catch (ISPACException e) {
     throw e;
   } catch (Exception e) {
     throw new ISPACException("Error en TransactionContainer.release() ", e);
   }
 }
예제 #4
0
 /**
  * Realiza un commit de la transacción.
  *
  * @throws ISPACException si ocurre algún error.
  */
 public void commit() throws ISPACException {
   try {
     if (bpmAPI != null) {
       bpmAPI.closeBPMSession(true);
     }
     if (!previoustx) {
       context.endTX(true);
     }
   } catch (ISPACException e) {
     throw e;
   } catch (Exception e) {
     throw new ISPACException("Error en TransactionContainer.commit()", e);
   }
 }
예제 #5
0
 /**
  * Obtiene una conexión con la base de datos.
  *
  * @return Conexión con la base de datos.
  * @throws ISPACException si ocurre algún error.
  */
 public DbCnt getConnection() throws ISPACException {
   return context.getConnection();
 }