private void needsLPSHeuristicCompletion() throws SystemException, HeuristicMixedException, HeuristicHazardException, HeuristicRollbackException, HeuristicCommitException {
        if (tc.isEntryEnabled())
            Tr.entry(tc, "needsLPSHeuristicCompletion");

        try {
            switch (_configProvider.getHeuristicCompletionDirection()) {
                case ConfigurationProvider.HEURISTIC_COMPLETION_DIRECTION_COMMIT:
                    Tr.error(tc, "WTRN0096_HEURISTIC_MAY_HAVE_OCCURED", getTranName());
                    _status.setState(TransactionState.STATE_COMMITTING);
                    internalCommit();
                    break;
                case ConfigurationProvider.HEURISTIC_COMPLETION_DIRECTION_MANUAL:
                    _needsManualCompletion = true;
                    Tr.info(tc, "WTRN0097_HEURISTIC_MANUAL_COMPLETION", getTranName());
                    distributeAfter(Status.STATUS_COMMITTED);
                    prolongFinish();
                    break;
                default:
                    Tr.error(tc, "WTRN0102_HEURISTIC_MAY_HAVE_OCCURED", getTranName());
                    _status.setState(TransactionState.STATE_ROLLING_BACK);
                    internalRollback();
                    break;
            }

            throw new HeuristicHazardException();
        } finally {
            if (tc.isEntryEnabled())
                Tr.exit(tc, "needsLPSHeuristicCompletion");
        }
    }
private void needsLPSHeuristicCompletion ( ) throws SystemException , HeuristicMixedException , HeuristicHazardException , HeuristicRollbackException , HeuristicCommitException { if ( tc . isEntryEnabled ( ) ) Tr . entry ( tc , "needsLPSHeuristicCompletion" ) ; try { switch ( _configProvider . getHeuristicCompletionDirection ( ) ) { case ConfigurationProvider . HEURISTIC_COMPLETION_DIRECTION_COMMIT : Tr . error ( tc , "WTRN0096_HEURISTIC_MAY_HAVE_OCCURED" , getTranName ( ) ) ; _status . setState ( TransactionState . STATE_COMMITTING ) ; internalCommit ( ) ; break ; case ConfigurationProvider . HEURISTIC_COMPLETION_DIRECTION_MANUAL : _needsManualCompletion = true ; Tr . info ( tc , "WTRN0097_HEURISTIC_MANUAL_COMPLETION" , getTranName ( ) ) ; distributeAfter ( Status . STATUS_COMMITTED ) ; prolongFinish ( ) ; break ; default : Tr . error ( tc , "WTRN0102_HEURISTIC_MAY_HAVE_OCCURED" , getTranName ( ) ) ; _status . setState ( TransactionState . STATE_ROLLING_BACK ) ; internalRollback ( ) ; break ; } throw new HeuristicHazardException ( ) ; } finally { if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "needsLPSHeuristicCompletion" ) ; } }
@throws SystemException
@throws HeuristicMixedException
@throws HeuristicHazardException
@throws HeuristicRollbackException
@throws HeuristicCommitException