Interface TransactionalMap<K,V>
-
- Type Parameters:
K
- type of the map keyV
- type of the map value
- All Superinterfaces:
BaseMap<K,V>
,DistributedObject
,TransactionalObject
public interface TransactionalMap<K,V> extends TransactionalObject, BaseMap<K,V>
Transactional implementation ofBaseMap
.MapStore Interaction
When using MapStore, the call to any MapStore method is outside the transactional boundary. If you need to have an XATransaction spanning Hazelcast operations and one more other XAResources (such as a database), you should not use MapStore. Instead, enlist both resources in a transaction as shown below:HazelcastInstance client = HazelcastClient.newHazelcastClient(); UserTransactionManager tm = new UserTransactionManager(); tm.setTransactionTimeout(60); tm.begin(); HazelcastXAResource xaResource = client.getXAResource(); Transaction transaction = tm.getTransaction(); transaction.enlistResource(xaResource); // you can enlist more resources here like a database XAResource try { TransactionContext context = xaResource.getTransactionContext() TransactionalMap map = context.getMap("map"); map.put("key", "value"); final TransactionalQueue queue = context.getQueue("queue"); queue.offer("item"); // you can do other resource operations like store/delete to a database transaction.delistResource(xaResource, XAResource.TMSUCCESS); tm.commit(); } catch (TransactionException t) { t.printStackTrace(); transaction.delistResource(xaResource, XAResource.TMFAIL); tm.rollback(); }
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
containsKey(java.lang.Object key)
Transactional implementation ofIMap.containsKey(Object)
.void
delete(java.lang.Object key)
Transactional implementation ofIMap.delete(Object)
.V
get(java.lang.Object key)
Transactional implementation ofIMap.get(Object)
.V
getForUpdate(java.lang.Object key)
Locks the key and then gets and returns the value to which the specified key is mapped.boolean
isEmpty()
Transactional implementation ofMap.isEmpty()
.java.util.Set<K>
keySet()
Transactional implementation ofIMap.keySet()
.java.util.Set<K>
keySet(Predicate<K,V> predicate)
Transactional implementation ofIMap.keySet(com.hazelcast.query.Predicate)
.V
put(K key, V value)
Transactional implementation ofIMap.put(Object, Object)
.V
put(K key, V value, long ttl, java.util.concurrent.TimeUnit timeunit)
Transactional implementation ofIMap.put(Object, Object, long, TimeUnit)
.V
putIfAbsent(K key, V value)
Transactional implementation ofIMap.putIfAbsent(Object, Object)
.V
remove(java.lang.Object key)
Transactional implementation ofIMap.remove(Object)
.boolean
remove(java.lang.Object key, java.lang.Object value)
Transactional implementation ofIMap.remove(Object, Object)
.V
replace(K key, V value)
Transactional implementation ofIMap.replace(Object, Object)
.boolean
replace(K key, V oldValue, V newValue)
Transactional implementation ofIMap.replace(Object, Object, Object)
.void
set(K key, V value)
Transactional implementation ofIMap.set(Object, Object)
.int
size()
Transactional implementation ofMap.size()
.java.util.Collection<V>
values()
Transactional implementation ofIMap.values()
.java.util.Collection<V>
values(Predicate<K,V> predicate)
Transactional implementation ofIMap.values(com.hazelcast.query.Predicate)
.-
Methods inherited from interface com.hazelcast.core.DistributedObject
destroy, getDestroyContextForTenant, getName, getPartitionKey, getServiceName
-
-
-
-
Method Detail
-
containsKey
boolean containsKey(java.lang.Object key)
Transactional implementation ofIMap.containsKey(Object)
.- Specified by:
containsKey
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.- Returns:
true
if this map contains an entry for the specified key.- Throws:
java.lang.NullPointerException
- if the specified key isnull
- See Also:
IMap.containsKey(Object)
-
get
V get(java.lang.Object key)
Transactional implementation ofIMap.get(Object)
.- Specified by:
get
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.- Returns:
- The value for the specified key.
- Throws:
java.lang.NullPointerException
- if the specified key isnull
- See Also:
IMap.get(Object)
-
getForUpdate
V getForUpdate(java.lang.Object key)
Locks the key and then gets and returns the value to which the specified key is mapped. The lock will be released at the end of the transaction (either commit or rollback).- Throws:
java.lang.NullPointerException
- if the specified key isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.get(Object)
-
size
int size()
Transactional implementation ofMap.size()
.
-
isEmpty
boolean isEmpty()
Transactional implementation ofMap.isEmpty()
.
-
put
V put(K key, V value)
Transactional implementation ofIMap.put(Object, Object)
.The object to be put will be accessible only in the current transaction context till transaction is committed.
- Specified by:
put
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.value
- The value to associate with the key.- Returns:
- Previous value associated with
key
ornull
if there was no mapping forkey
. - Throws:
java.lang.NullPointerException
- if the specified key or value isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.put(Object, Object)
-
put
V put(K key, V value, long ttl, java.util.concurrent.TimeUnit timeunit)
Transactional implementation ofIMap.put(Object, Object, long, TimeUnit)
.The object to be put will be accessible only in the current transaction context till transaction is committed.
- Specified by:
put
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.value
- The value to associate with the key.ttl
- maximum time for this entry to stay in the map 0 means infinite.timeunit
- time unit for the ttl- Returns:
- Previous value associated with
key
ornull
if there was no mapping forkey
. - Throws:
java.lang.NullPointerException
- if the specified key, value or timeunit isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.put(Object, Object, long, TimeUnit)
-
set
void set(K key, V value)
Transactional implementation ofIMap.set(Object, Object)
.The object to be set will be accessible only in the current transaction context till transaction is committed.
- Specified by:
set
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.value
- The value to associate with the key.- Throws:
java.lang.NullPointerException
- if the specified key or value isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.set(Object, Object)
-
putIfAbsent
V putIfAbsent(K key, V value)
Transactional implementation ofIMap.putIfAbsent(Object, Object)
.The object to be put will be accessible only in the current transaction context until the transaction is committed.
- Specified by:
putIfAbsent
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.value
- The value to associate with the key when there is no previous value.- Returns:
- The previous value associated with
key
, ornull
if there was no mapping forkey
. - Throws:
java.lang.NullPointerException
- if the specified key or value isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.putIfAbsent(Object, Object)
-
replace
V replace(K key, V value)
Transactional implementation ofIMap.replace(Object, Object)
.The object to be replaced will be accessible only in the current transaction context until the transaction is committed.
- Specified by:
replace
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.value
- The value to replace the previous value.- Returns:
- The previous value associated with
key
, ornull
if there was no mapping forkey
. - Throws:
java.lang.NullPointerException
- if the specified key ornull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.replace(Object, Object)
-
replace
boolean replace(K key, V oldValue, V newValue)
Transactional implementation ofIMap.replace(Object, Object, Object)
.The object to be replaced will be accessible only in the current transaction context until the transaction is committed.
- Specified by:
replace
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.oldValue
- Replace the key value if it is the old value.newValue
- The new value to replace the old value.- Returns:
true
if the value was replaced.- Throws:
java.lang.NullPointerException
- if the specified key, oldValue or newValue isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.replace(Object, Object, Object)
-
remove
V remove(java.lang.Object key)
Transactional implementation ofIMap.remove(Object)
.The object to be removed will be removed from only the current transaction context until the transaction is committed.
- Specified by:
remove
in interfaceBaseMap<K,V>
- Parameters:
key
- Remove the mapping for this key.- Returns:
- The previous value associated with
key
, ornull
if there was no mapping forkey
. - Throws:
java.lang.NullPointerException
- if the specified key isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.remove(Object)
-
delete
void delete(java.lang.Object key)
Transactional implementation ofIMap.delete(Object)
.The object to be deleted will be removed from only the current transaction context until the transaction is committed.
- Specified by:
delete
in interfaceBaseMap<K,V>
- Parameters:
key
- Remove the mapping for this key.- Throws:
java.lang.NullPointerException
- if the specified key isnull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.delete(Object)
-
remove
boolean remove(java.lang.Object key, java.lang.Object value)
Transactional implementation ofIMap.remove(Object, Object)
.The object to be removed will be removed from only the current transaction context until the transaction is committed.
- Specified by:
remove
in interfaceBaseMap<K,V>
- Parameters:
key
- The specified key.value
- Remove the key if it has this value.- Returns:
true
if the value was removed.- Throws:
java.lang.NullPointerException
- if the specified key or valuenull
TransactionTimedOutException
- if the key could not be locked for update in the transaction timeout- See Also:
IMap.remove(Object, Object)
-
keySet
java.util.Set<K> keySet()
Transactional implementation ofIMap.keySet()
.- Specified by:
keySet
in interfaceBaseMap<K,V>
- Returns:
- a set clone of the keys contained in this map.
- See Also:
IMap.keySet()
-
keySet
java.util.Set<K> keySet(Predicate<K,V> predicate)
Transactional implementation ofIMap.keySet(com.hazelcast.query.Predicate)
.- Specified by:
keySet
in interfaceBaseMap<K,V>
- Parameters:
predicate
- specified query criteria.- Returns:
- result key set of the query.
- Throws:
java.lang.NullPointerException
- if the specified predicate isnull
- See Also:
IMap.keySet(com.hazelcast.query.Predicate)
-
values
java.util.Collection<V> values()
Transactional implementation ofIMap.values()
.- Specified by:
values
in interfaceBaseMap<K,V>
- Returns:
- a collection clone of the values contained in this map
- See Also:
IMap.values()
-
values
java.util.Collection<V> values(Predicate<K,V> predicate)
Transactional implementation ofIMap.values(com.hazelcast.query.Predicate)
.- Specified by:
values
in interfaceBaseMap<K,V>
- Parameters:
predicate
- specified query criteria.- Returns:
- result value collection of the query.
- Throws:
java.lang.NullPointerException
- if the specified predicate isnull
- See Also:
IMap.values(com.hazelcast.query.Predicate)
-
-