public void setTransactionTimeout(final int seconds) throws SystemException { checkTransactionStateAvailability(); ContextTransactionManager.getInstance().setTransactionTimeout(seconds); }
protected Object required(final InterceptorContext invocation, final EJBComponent component, final int timeout) throws Exception { final ContextTransactionManager tm = ContextTransactionManager.getInstance(); if (timeout != -1) { tm.setTransactionTimeout(timeout); } final Transaction tx = tm.getTransaction(); if (tx == null) { if (invocation.hasTransaction()) { return invokeInImportedTx(invocation, component); } return invokeInOurTx(invocation, component); } else { return invokeInCallerTx(invocation, tx, component); } }
protected Object requiresNew(InterceptorContext invocation, final EJBComponent component, final int timeout) throws Exception { final ContextTransactionManager tm = ContextTransactionManager.getInstance(); if (timeout != -1) { tm.setTransactionTimeout(timeout); } Transaction tx = tm.getTransaction(); if (tx != null) { safeSuspend(); final Object result; try { result = invokeInOurTx(invocation, component); } catch (Throwable t) { safeResume(tx, t); throw t; } safeResume(tx); return result; } else { return invokeInOurTx(invocation, component); } }
public Object processInvocation(InterceptorContext invocation) throws Exception { final EJBComponent component = (EJBComponent) invocation.getPrivateData(Component.class); final ContextTransactionManager tm = ContextTransactionManager.getInstance(); final int oldTimeout = tm.getTransactionTimeout(); try { final MethodIntf methodIntf = MethodIntfHelper.of(invocation); final TransactionAttributeType attr = component.getTransactionAttributeType(methodIntf, invocation.getMethod()); final int timeoutInSeconds = component.getTransactionTimeout(methodIntf, invocation.getMethod()); switch (attr) { case MANDATORY: return mandatory(invocation, component); case NEVER: return never(invocation, component); case NOT_SUPPORTED: return notSupported(invocation, component); case REQUIRED: return required(invocation, component, timeoutInSeconds); case REQUIRES_NEW: return requiresNew(invocation, component, timeoutInSeconds); case SUPPORTS: return supports(invocation, component); default: throw EjbLogger.ROOT_LOGGER.unknownTxAttributeOnInvocation(attr, invocation); } } finally { // See also https://issues.jboss.org/browse/WFTC-44 tm.setTransactionTimeout(oldTimeout == ContextTransactionManager.getGlobalDefaultTransactionTimeout() ? 0 : oldTimeout); } }
public void setTransactionTimeout(final int seconds) throws SystemException { checkTransactionStateAvailability(); ContextTransactionManager.getInstance().setTransactionTimeout(seconds); }
public void setTransactionTimeout(final int seconds) throws SystemException { checkTransactionStateAvailability(); ContextTransactionManager.getInstance().setTransactionTimeout(seconds); }