@Override public void terminateTransaction(String threadId) throws AdminException { if (threadId == null) { return; } try { cancelTransactions(threadId, false); } catch (XATransactionException e) { throw new AdminProcessingException(QueryPlugin.Event.TEIID30542, e); } }
@Override public void terminateTransaction(String threadId) throws AdminException { if (threadId == null) { return; } try { cancelTransactions(threadId, false); } catch (XATransactionException e) { throw new AdminProcessingException(QueryPlugin.Event.TEIID30542, e); } }
@Override public void terminateTransaction(String threadId) throws AdminException { if (threadId == null) { return; } try { cancelTransactions(threadId, false); } catch (XATransactionException e) { throw new AdminProcessingException(QueryPlugin.Event.TEIID30542, e); } }
@Test public void testLocalCancel() throws Exception { server.begin(THREAD1); server.cancelTransactions(THREAD1, false); Mockito.verify(txn).setRollbackOnly(); }
/** * Global Transaction */ public void end(final String threadId, XidImpl xid, int flags, boolean singleTM) throws XATransactionException { TransactionContext tc = checkXAState(threadId, xid, true, true); try { switch (flags) { case XAResource.TMSUSPEND: { tc.getSuspendedBy().add(threadId); break; } case XAResource.TMSUCCESS: { //TODO: should close all statements break; } case XAResource.TMFAIL: { cancelTransactions(threadId, false); break; } default: throw new XATransactionException(QueryPlugin.Event.TEIID30520, XAException.XAER_INVAL, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30520)); } } finally { tc.setThreadId(null); transactions.removeTransactionContext(threadId); } }
/** * Global Transaction */ public void end(final String threadId, XidImpl xid, int flags, boolean singleTM) throws XATransactionException { TransactionContext tc = checkXAState(threadId, xid, true, true); try { switch (flags) { case XAResource.TMSUSPEND: { tc.getSuspendedBy().add(threadId); break; } case XAResource.TMSUCCESS: { //TODO: should close all statements break; } case XAResource.TMFAIL: { cancelTransactions(threadId, false); break; } default: throw new XATransactionException(QueryPlugin.Event.TEIID30520, XAException.XAER_INVAL, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30520)); } } finally { tc.setThreadId(null); transactions.removeTransactionContext(threadId); } }
/** * Global Transaction */ public void end(final String threadId, XidImpl xid, int flags, boolean singleTM) throws XATransactionException { TransactionContext tc = checkXAState(threadId, xid, true, true); try { switch (flags) { case XAResource.TMSUSPEND: { tc.getSuspendedBy().add(threadId); break; } case XAResource.TMSUCCESS: { //TODO: should close all statements break; } case XAResource.TMFAIL: { cancelTransactions(threadId, false); break; } default: throw new XATransactionException(QueryPlugin.Event.TEIID30520, XAException.XAER_INVAL, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30520)); } } finally { tc.setThreadId(null); transactions.removeTransactionContext(threadId); } }
@Test public void testRequestCancel() throws Exception{ TransactionContext tc = server.getOrCreateTransactionContext(THREAD1); server.begin(tc); server.cancelTransactions(THREAD1, true); Mockito.verify(txn).setRollbackOnly(); } }