/**
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
package com.alipay.zdal.datasource.tm;
import com.alipay.zdal.datasource.transaction.RollbackException;
import com.alipay.zdal.datasource.transaction.SystemException;
/**
* The interface to implementated by a transaction manager
* that supports retrieving the current threads transaction timeout
*
* @author ����
* @version $Id: TransactionTimeoutConfiguration.java, v 0.1 2014-1-6 ����05:48:57 Exp $
*/
public interface TransactionTimeoutConfiguration {
/**
* Get the transaction timeout.
*
* @return the timeout in seconds associated with this thread
* @throws SystemException for any error
*/
int getTransactionTimeout() throws SystemException;
/**
* Get the time left before transaction timeout
*
* @param errorRollback throw an error if the transaction is marked for rollback
* @return the remaining in the current transaction or -1
* if there is no transaction
* @throws RollbackException if the transaction is marked for rollback and
* errorRollback is true
*/
long getTimeLeftBeforeTransactionTimeout(boolean errorRollback) throws RollbackException;
}