{
destroyResource();
return;
}
ServerTransaction theTransaction = (ServerTransaction) _theControl.getImplHandle();
// ThreadActionData.pushAction(theTransaction);
int actionStatus = theTransaction.status();
if (actionStatus == ActionStatus.PREPARED)
{
/*
* This will also call any after_completions on
* registered synchronizations.
*/
actionStatus = theTransaction.doPhase2Abort();
}
else
{
if ((actionStatus == ActionStatus.RUNNING) ||
(actionStatus == ActionStatus.ABORT_ONLY))
{
try
{
/*
* Have to do this because of the way PI works
* with thread-context association.
*/
if (!valid())
theTransaction.doPhase2Abort(); // must rollback
else
theTransaction.rollback();
actionStatus = ActionStatus.ABORTED;
}
catch (SystemException ex)
{