import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
* immediately committed in the cache.
*
*/
- NON_TRANSACTIONAL;
+ NON_TRANSACTIONAL,
+ /**
+ * Set on a cache that can transfer the updates asynchronously from the
+ * calling thread. The caller when doing put/clear/remove cannot expect
+ * that the operation has happened clusterwide
+ */
+ ASYNC,
+ /**
+ * Set on a cache that transfer the updates synchronously to the calling
+ * thread so when getting back the operation is supposed to have
+ * completed on all the cluster nodes. Slow but safe.
+ */
+ SYNC;
}
/**
*/
void tbegin() throws NotSupportedException, SystemException;
+ /**
+ * tbegin with a timeout
+ * @see IClusterServices#tbegin
+ * @param timeout the transaction timeout
+ * @param unit TimeUnit for the timeout
+ * @throws NotSupportedException
+ * @throws SystemException
+ */
+ void tbegin(long timeout, TimeUnit unit) throws NotSupportedException, SystemException;
+
/**
* Commit a transaction covering all the data structures/HW updates.
*/
*
* @return true if the role is the one of standby, else false
*/
+ @Deprecated
boolean amIStandby();
/**
*
* @return Address of the active controller
*/
+ @Deprecated
InetAddress getActiveAddress();
/**
*
* @param i Interface that will be called when the Role Change happens
*/
+ @Deprecated
void listenRoleChange(IListenRoleChange i)
throws ListenRoleChangeAddException;
*
* @param i Interface that will be called when the Role Change happens
*/
+ @Deprecated
void unlistenRoleChange(IListenRoleChange i);
}