public void startSoftTrans(String busCode,long trxId){
		
		if(isSoftTransBegon()) {
			throw new RuntimeException("transaction already started,but try to start again." + busCode + "," + trxId);
		}
		
		//hook to TransactionSynchronizer
		TransactionSynchronizationManager.registerSynchronization(new TransactionHook());
		LogProcessContext logProcessContext = new LogProcessContext(applicationName, busCode, trxId, writer,transStatusLogger);
		TransactionSynchronizationManager.bindResource(LOG_PROCESS_CONTEXT,logProcessContext);
		
		//check whether is a parent transaction
		TransactionId pTrxId = getParentTransactionId();
		if(pTrxId == null){
			
			//if this transaction is roll back, this record is will disappear
			//transStatusLogger.writeExecuteFlag(applicationName, busCode, trxId, null, null, null, TransactionStatus.COMMITTED);
			
			// since introduced SAGA, Global-transaction status can not be determined by master transaction commit 
			transStatusLogger.writeExecuteFlag(applicationName, busCode, trxId, null, null, null, TransactionStatus.UNKNOWN);
		} else {
			//a transaction with parent transaction,it's status depends on parent
			//check whether the parent transaction status is determined
			Integer pTransStatus = MetaDataFilter.getMetaData(EasytransConstant.CallHeadKeys.PARENT_TRANSACTION_STATUS);
			if(pTransStatus == null){
				pTransStatus = TransactionStatus.UNKNOWN;
			} 
			transStatusLogger.writeExecuteFlag(applicationName, busCode, trxId, pTrxId.getAppId(), pTrxId.getBusCode(), pTrxId.getTrxId(), pTransStatus);
		}
	}
public void startSoftTrans ( String busCode , long trxId ) { if ( isSoftTransBegon ( ) ) { throw new RuntimeException ( "transaction already started,but try to start again." + busCode + "," + trxId ) ; } TransactionSynchronizationManager . registerSynchronization ( new TransactionHook ( ) ) ; LogProcessContext logProcessContext = new LogProcessContext ( applicationName , busCode , trxId , writer , transStatusLogger ) ; TransactionSynchronizationManager . bindResource ( LOG_PROCESS_CONTEXT , logProcessContext ) ; TransactionId pTrxId = getParentTransactionId ( ) ; if ( pTrxId == null ) { transStatusLogger . writeExecuteFlag ( applicationName , busCode , trxId , null , null , null , TransactionStatus . UNKNOWN ) ; } else { Integer pTransStatus = MetaDataFilter . getMetaData ( EasytransConstant . CallHeadKeys . PARENT_TRANSACTION_STATUS ) ; if ( pTransStatus == null ) { pTransStatus = TransactionStatus . UNKNOWN ; } transStatusLogger . writeExecuteFlag ( applicationName , busCode , trxId , pTrxId . getAppId ( ) , pTrxId . getBusCode ( ) , pTrxId . getTrxId ( ) , pTransStatus ) ; } }
create LogContext.<br>
pass in busCode and trxId will help about the execute efficient and the debug and statistics<br>
so I demand to pass in busCode and trxId to generate a global unique bus key
@param busCode the unique busCode in AppId
@param trxId the unique trxId in appId+busCode