public void notifyGroup(String groupId, String unitId, String transactionType, int state) {
        try {
            txLogger.txTrace(
                    groupId, unitId, "notify group > transaction type: {}, state: {}.", transactionType, state);
            if (globalContext.isDTXTimeout()) {
                throw new LcnBusinessException("dtx timeout.");
            }
            state = reliableMessenger.notifyGroup(groupId, state);
            transactionCleanTemplate.clean(groupId, unitId, transactionType, state);
        } catch (TransactionClearException e) {
            txLogger.trace(groupId, unitId, Transactions.TE, "clean transaction fail.");
        } catch (RpcException e) {
            dtxExceptionHandler.handleNotifyGroupMessageException(Arrays.asList(groupId, state, unitId, transactionType), e);
        } catch (LcnBusinessException e) {
            // 关闭事务组失败
            dtxExceptionHandler.handleNotifyGroupBusinessException(Arrays.asList(groupId, state, unitId, transactionType), e.getCause());
        }
        txLogger.txTrace(groupId, unitId, "notify group exception state {}.", state);
    }
public void notifyGroup(String groupId, String unitId, String transactionType, int state) {
        try {
            txLogger.txTrace(
                    groupId, unitId, "notify group > transaction type: {}, state: {}.", transactionType, state);
            if (globalContext.isDTXTimeout()) {
                throw new LcnBusinessException("dtx timeout.");
            }
            state = reliableMessenger.notifyGroup(groupId, state);
            transactionCleanTemplate.clean(groupId, unitId, transactionType, state);
        } catch (TransactionClearException e) {
            txLogger.trace(groupId, unitId, Transactions.TE, "clean transaction fail.");
        } catch (RpcException e) {
            dtxExceptionHandler.handleNotifyGroupMessageException(Arrays.asList(groupId, state, unitId, transactionType), e);
        } catch (LcnBusinessException e) {
            
            dtxExceptionHandler.handleNotifyGroupBusinessException(Arrays.asList(groupId, state, unitId, transactionType), e.getCause());
        }
        txLogger.txTrace(groupId, unitId, "notify group exception state {}.", state);
    }
public void notifyGroup ( String groupId , String unitId , String transactionType , int state ) { try { txLogger . txTrace ( groupId , unitId , "notify group > transaction type: {}, state: {}." , transactionType , state ) ; if ( globalContext . isDTXTimeout ( ) ) { throw new LcnBusinessException ( "dtx timeout." ) ; } state = reliableMessenger . notifyGroup ( groupId , state ) ; transactionCleanTemplate . clean ( groupId , unitId , transactionType , state ) ; } catch ( TransactionClearException e ) { txLogger . trace ( groupId , unitId , Transactions . TE , "clean transaction fail." ) ; } catch ( RpcException e ) { dtxExceptionHandler . handleNotifyGroupMessageException ( Arrays . asList ( groupId , state , unitId , transactionType ) , e ) ; } catch ( LcnBusinessException e ) { // 关闭事务组失败 dtxExceptionHandler . handleNotifyGroupBusinessException ( Arrays . asList ( groupId , state , unitId , transactionType ) , e . getCause ( ) ) ; } txLogger . txTrace ( groupId , unitId , "notify group exception state {}." , state ) ; }
Client通知事务组操作集合

@param groupId         groupId
@param unitId          unitId
@param transactionType transactionType
@param state           transactionState
Client通知事务组操作集合