throws TransactionRolledBackException, UnknownTransactionException, SystemException
{
final AddressingContext addressingContext = AddressingContext.createRequestContext(_terminationParticipant, MessageId.getMessageId()) ;
final RequestCallback callback = new RequestCallback() ;
final TerminationParticipantProcessor terminatorCoordinatorProcessor = TerminationParticipantProcessor.getProcessor() ;
terminatorCoordinatorProcessor.registerCallback(_id, callback) ;
try
{
TerminationCoordinatorClient.getClient().sendClose(addressingContext, new InstanceIdentifier(_id)) ;
callback.waitUntilTriggered() ;
}
catch (final Throwable th)
{
throw new SystemException() ;
}
finally
{
terminatorCoordinatorProcessor.removeCallback(_id) ;
}
if (callback.hasTriggered())
{
if (callback.receivedClosed())