use of com.arjuna.wst.CompletionCoordinatorParticipant in project narayana by jbosstm.
the class Sc007TestCase method test3_8.
/**
* test3_8 - 3.8 RetryPreparedAbort
* Tests recovery from a communication failure during the prepare phase. Transaction times out.
* @throws Exception on failure.
*/
public void test3_8() throws Exception {
final String conversationId = getConversationId();
final Sc007RetryPreparedAbortState state = new Sc007RetryPreparedAbortState();
ProxyConversation.setConversationState(conversationId, state);
try {
final String serviceURI = ProxyURIRewriting.rewriteURI(conversationId, getParticipantURI());
final CoordinationContextType context = InteropUtil.createCoordinationContext(getSourceCoordinatorURI());
getParticipantStub().retryPreparedAbort(serviceURI, context);
final CompletionCoordinatorParticipant participant = InteropUtil.registerCompletion(context, context.getIdentifier().getValue());
participant.commit();
fail("Transaction rollback expected");
} catch (final TransactionRolledBackException trbe) {
state.waitForCompletion(getTestTimeout());
} finally {
ProxyConversation.clearConversationState(conversationId);
}
assertTrue("Conversation did not complete successfully", state.isSuccessful());
}
use of com.arjuna.wst.CompletionCoordinatorParticipant in project narayana by jbosstm.
the class Sc007TestCase method test3_10.
/**
* test3_10 - 3.10 PreparedAfterTimeout
* Tests recovery from a communication failure during the prepare phase. Transaction times out. Two participants, volatile and durable.
* @throws Exception on failure.
*/
public void test3_10() throws Exception {
final String conversationId = getConversationId();
final Sc007PreparedAfterTimeoutState state = new Sc007PreparedAfterTimeoutState();
ProxyConversation.setConversationState(conversationId, state);
try {
final String serviceURI = ProxyURIRewriting.rewriteURI(conversationId, getParticipantURI());
final CoordinationContextType context = InteropUtil.createCoordinationContext(getSourceCoordinatorURI());
getParticipantStub().preparedAfterTimeout(serviceURI, context);
final CompletionCoordinatorParticipant participant = InteropUtil.registerCompletion(context, context.getIdentifier().getValue());
participant.commit();
fail("Transaction rollback expected");
} catch (final TransactionRolledBackException trbe) {
state.waitForCompletion(getTestTimeout());
} finally {
ProxyConversation.clearConversationState(conversationId);
}
assertTrue("Conversation did not complete successfully", state.isSuccessful());
}
use of com.arjuna.wst.CompletionCoordinatorParticipant in project narayana by jbosstm.
the class Sc007TestCase method test3_6.
/**
* test3_6 - 3.6 ReplayCommit
* Participant registers for Durable2PC, initator initiates commit, participant fails after prepared, recovers and resends prepared. Transaction commits normally.
* @throws Exception on failure.
*/
public void test3_6() throws Exception {
final String conversationId = getConversationId();
final InteropWaitState state = new InteropWaitState(AtomicTransactionConstants.WSAT_ACTION_COMMITTED);
ProxyConversation.setConversationState(conversationId, state);
try {
final String serviceURI = ProxyURIRewriting.rewriteURI(conversationId, getParticipantURI());
final CoordinationContextType context = InteropUtil.createCoordinationContext(getSourceCoordinatorURI());
getParticipantStub().replayCommit(serviceURI, context);
final CompletionCoordinatorParticipant participant = InteropUtil.registerCompletion(context, context.getIdentifier().getValue());
participant.commit();
state.waitForCompletion(0);
} finally {
ProxyConversation.clearConversationState(conversationId);
}
assertTrue("Conversation did not complete successfully", state.isSuccessful());
}
use of com.arjuna.wst.CompletionCoordinatorParticipant in project narayana by jbosstm.
the class ATParticipantProcessor method completionRollback.
/**
* Execute the CompletionRollback
* @param coordinatorURI The address of the coordinator to employ.
* @param map The current addressing context.
*
* @throws SoapFault11 for errors during processing
*/
public void completionRollback(final String coordinatorURI, final MAP map) throws SoapFault11 {
try {
final CoordinationContextType context = ATInteropUtil.createCoordinationContext(coordinatorURI);
final CompletionCoordinatorParticipant participant = ATInteropUtil.registerCompletion(context, context.getIdentifier().getValue());
participant.rollback();
} catch (final Throwable th) {
throw new SoapFault11(th);
}
}
use of com.arjuna.wst.CompletionCoordinatorParticipant in project narayana by jbosstm.
the class ATParticipantProcessor method completionCommit.
/**
* Execute the CompletionCommit
* @param coordinatorURI The address of the coordinator to employ
* @param map The current addressing context.
* @throws SoapFault11 for errors during processing
*/
public void completionCommit(final String coordinatorURI, final MAP map) throws SoapFault11 {
try {
final CoordinationContextType context = ATInteropUtil.createCoordinationContext(coordinatorURI);
final CompletionCoordinatorParticipant participant = ATInteropUtil.registerCompletion(context, context.getIdentifier().getValue());
participant.commit();
} catch (final Throwable th) {
throw new SoapFault11(th);
}
}
Aggregations