/** * 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); } }
/** * 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; } }
/** * 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); } }
/** * 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); } }
/** * 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(); }