You can define an optimistic, a pessimistic, or no
locking strategy on each BackingMap in the WebSphere® eXtreme Scale configuration.
About this task
You can specify a locking strategy programmatically or
with XML. For more information about locking, see Locking strategies.
- Configure an optimistic locking strategy
- Programmatically
specify optimistic strategy programmaticallyimport com.ibm.websphere.objectgrid.BackingMap;
import com.ibm.websphere.objectgrid.LockStrategy;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
...
ObjectGrid og =
ObjectGridManagerFactory.getObjectGridManager().createObjectGrid("test");
BackingMap bm = og.defineMap("optimisticMap");
bm.setLockStrategy( LockStrategy.OPTIMISTIC );
- Using XML
specify optimistic strategy using XML<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="test">
<backingMap name="optimisticMap"
lockStrategy="OPTIMISTIC"/>
</objectGrid>
</objectGrids>
</objectGridConfig>
- Configure a pessimistic locking strategy
- Programmatically
specify pessimistic strategy programmaticallyimport com.ibm.websphere.objectgrid.BackingMap;
import com.ibm.websphere.objectgrid.LockStrategy;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
...
ObjectGrid og =
ObjectGridManagerFactory.getObjectGridManager().createObjectGrid("test");
BackingMap bm = og.defineMap("pessimisticMap");
bm.setLockStrategy( LockStrategy.PESSIMISTIC);
- Using XML
specify pessimistic strategy using XML
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="test">
<backingMap name="pessimisticMap"
lockStrategy="PESSIMISTIC"/>
</objectGrid>
</objectGrids>
</objectGridConfig>
- Configure a no locking strategy
- Programmatically
specify a no-locking strategy programmatically
import com.ibm.websphere.objectgrid.BackingMap;
import com.ibm.websphere.objectgrid.LockStrategy;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
...
ObjectGrid og =
ObjectGridManagerFactory.getObjectGridManager().createObjectGrid("test");
BackingMap bm = og.defineMap("noLockingMap");
bm.setLockStrategy( LockStrategy.NONE);
- Using XML
specify a no-locking strategy with XML
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="test">
<backingMap name="noLockingMap"
lockStrategy="NONE"/>
</objectGrid>
</objectGrids>
</objectGridConfig>
What to do next
To avoid a java.lang.IllegalStateException exception,
you must call the setLockStrategy method before
calling the initialize or getSession methods
on the ObjectGrid instance.