Hi, I am trying to use jbosscache in the simplest way, having readers and writers working
at the same time, with no transaction, just using the atomicity of operations replaceAll
(writers) and getData (readers) on Node.
In my test case, 100 writers replace each second (or less) the complete data of a node
using its own. Each second (or less) as well, 100 readers read that data, and verify its
consistency (each value in the map is equal to the map size).
replaceAll and getData being atomic, I shouldn't have any reader complaining about
consistencies, which is not what I found.
Here is my test case:
| package mytest;
|
| import java.util.HashMap;
| import java.util.Map;
| import java.util.Random;
|
| import junit.framework.TestCase;
|
| import org.jboss.cache.Cache;
| import org.jboss.cache.CacheFactory;
| import org.jboss.cache.DefaultCacheFactory;
| import org.jboss.cache.Fqn;
| import org.jboss.cache.Node;
|
| public class MyCacheTest extends TestCase {
|
| CacheFactory<Integer, Integer> factory;
|
| Cache<Integer, Integer> cache;
|
| Node<Integer, Integer> populations;
|
| int errors = 0;
|
| public void testCache() throws Exception {
| factory = new DefaultCacheFactory<Integer, Integer>();
| cache = factory.createCache();
| populations =
cache.getRoot().addChild(Fqn.fromString("populations"));
|
| final Random r = new Random();
|
| for (int i = 0; i < 100; i++) {
| final Map<Integer, Integer> map = new HashMap<Integer,
Integer>();
|
| for (int j = 0; j < i; j++) {
| map.put(j, i);
| }
|
| new Thread() {
| @Override
| public void run() {
| while (true) {
| populations.replaceAll(map);
| // System.out.println("replaceAll " + map.size());
| sleepRandom(r);
| }
| }
| }.start();
| }
|
| for (int i = 0; i < 100; i++) {
|
| new Thread() {
| @Override
| public void run() {
| while (true) {
| Map<Integer, Integer> map = populations.getData();
| int size = map.size();
|
| for (Integer value : map.values()) {
| if (value != size) {
| System.out.println("inconsistency in " +
map);
|
| synchronized (MyCacheTest.this) {
| errors++;
| }
|
| break;
| }
| }
|
| sleepRandom(r);
| }
| }
| }.start();
| }
|
| Thread.sleep(10000);
| System.out.println("errors: " + errors);
| assertEquals(0, errors);
| }
|
| void sleepRandom(final Random r) {
| long sleep = 0;
| synchronized (r) {
| sleep = (long) (1000 * r.nextFloat());
| }
| try {
| Thread.sleep(sleep);
| } catch (InterruptedException e) {
| e.printStackTrace();
| }
| }
| }
|
Some runs do exhibit some inconsistencies, like the following, and some don't:
anonymous wrote :
| <10:52:57,469> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.invocation.InvocationContextContainer that may have been injected from an
external source.>
| <10:52:57,547> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.factories.context.ContextFactory that may have been injected from an
external source.>
| <10:52:57,547> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external
source.>
| <10:52:57,625> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.transaction.TransactionTable that may have been injected from an external
source.>
| <10:52:57,625> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,625> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.RPCManager that
may have been injected from an external source.>
| <10:52:57,672> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.remoting.jgroups.ChannelMessageListener that may have been injected from
an external source.>
| <10:52:57,672> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.statetransfer.StateTransferManager that may have been injected from an
external source.>
| <10:52:57,688> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.marshall.Marshaller that may have been injected from an external
source.>
| <10:52:57,688> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.RegionManager that
may have been injected from an external source.>
| <10:52:57,719> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.lock.LockManager
that may have been injected from an external source.>
| <10:52:57,719> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.DataContainer that
may have been injected from an external source.>
| <10:52:57,734> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.NodeFactory that
may have been injected from an external source.>
| <10:52:57,750> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external
source.>
| <10:52:57,766> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,766> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.notifications.Notifier that may have been injected from an external
source.>
| <10:52:57,797> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.commands.CommandsFactory that may have been injected from an external
source.>
| <10:52:57,797> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external
source.>
| <10:52:57,812> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,812> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.buddyreplication.BuddyFqnTransformer that may have been injected from an
external source.>
| <10:52:57,844> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,859> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class org.jboss.cache.mvcc.MVCCNodeHelper
that may have been injected from an external source.>
| <10:52:57,875> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,875> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class org.jboss.cache.RegionRegistry that
may have been injected from an external source.>
| <10:52:57,891> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.loader.CacheLoaderManager that may have been injected from an external
source.>
| <10:52:57,891> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.statetransfer.StateTransferIntegrator that may have been injected from an
external source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.statetransfer.StateTransferGenerator that may have been injected from an
external source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external
source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class org.jboss.cache.batch.BatchContainer
that may have been injected from an external source.>
| <10:52:57,906> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,938> <App.CacheStatus> <
org.jboss.cache.CacheStatus.needCreateBeforeStart(CacheStatus.java:138) - start() called
while current state is INSTANTIATED -- call create() first>
| <10:52:57,938> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.statetransfer.StateTransferManager that may have been injected from an
external source.>
| <10:52:57,938> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.marshall.Marshaller that may have been injected from an external
source.>
| <10:52:57,938> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.RegionManager that
may have been injected from an external source.>
| <10:52:57,938> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.RPCManager that
may have been injected from an external source.>
| <10:52:57,938> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,938> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external
source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.factories.context.ContextFactory that may have been injected from an
external source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.commands.CommandsFactory that may have been injected from an external
source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external
source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.buddyreplication.BuddyFqnTransformer that may have been injected from an
external source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.lock.LockManager
that may have been injected from an external source.>
| <10:52:57,953> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.loader.CacheLoaderManager that may have been injected from an external
source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.statetransfer.StateTransferIntegrator that may have been injected from an
external source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
org.jboss.cache.statetransfer.StateTransferGenerator that may have been injected from an
external source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface org.jboss.cache.NodeFactory that
may have been injected from an external source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class
org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external
source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of class org.jboss.cache.batch.BatchContainer
that may have been injected from an external source.>
| <10:52:57,969> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.getFromConfiguration(ComponentRegistry.java:420)
- Looking in configuration for an instance of interface
javax.transaction.TransactionManager that may have been injected from an external
source.>
| <10:52:57,969> <App.DataContainerImpl> <
org.jboss.cache.DataContainerImpl.setRoot(DataContainerImpl.java:161) - Setting
rootInternal to NodeReference{delegate=UnversionedNode[ /]}>
| <10:52:58,016> <App.InterceptorChain> <
org.jboss.cache.interceptors.InterceptorChain.printChainInfo(InterceptorChain.java:78) -
Interceptor chain is: InterceptorChain{
| >> org.jboss.cache.interceptors.CallInterceptor
| >> org.jboss.cache.interceptors.MVCCLockingInterceptor
| >> org.jboss.cache.interceptors.NotificationInterceptor
| >> org.jboss.cache.interceptors.TxInterceptor
| >> org.jboss.cache.interceptors.CacheMgmtInterceptor
| >> org.jboss.cache.interceptors.InvocationContextInterceptor
| }>
| <10:52:58,016> <App.RegionManagerImpl> <
org.jboss.cache.RegionManagerImpl.start(RegionManagerImpl.java:138) - Not using an
EvictionPolicy>
| <10:52:58,062> <App.VersionAwareMarshaller> <
org.jboss.cache.marshall.VersionAwareMarshaller.initReplicationVersions(VersionAwareMarshaller.java:116)
- Started with version 3.0.1 and versionInt 30>
| <10:52:58,062> <App.VersionAwareMarshaller> <
org.jboss.cache.marshall.VersionAwareMarshaller.initReplicationVersions(VersionAwareMarshaller.java:117)
- Using default marshaller class class org.jboss.cache.marshall.CacheMarshaller300>
| <10:52:58,062> <App.DataContainerImpl> <
org.jboss.cache.DataContainerImpl.setRoot(DataContainerImpl.java:161) - Setting
rootInternal to UnversionedNode[ /]>
| <10:52:58,328> <App.PlatformMBeanServerRegistration> <
org.jboss.cache.jmx.PlatformMBeanServerRegistration.registerToPlatformMBeanServer(PlatformMBeanServerRegistration.java:71)
- JBossCache MBeans were successfully registered to the platform mbean server.>
| <10:52:58,328> <App.RPCManagerImpl> <
org.jboss.cache.RPCManagerImpl.start(RPCManagerImpl.java:154) - cache mode is local, will
not create the channel>
| <10:52:58,344> <App.ComponentRegistry> <
org.jboss.cache.factories.ComponentRegistry.internalStart(ComponentRegistry.java:750) -
JBoss Cache version: JBossCache 'Naga' 3.0.1.GA>
| inconsistency in {0=3, 1=3, 2=3, 3=92, 4=92, 5=92, 6=92, 7=92, 8=92, 9=92, 10=92,
11=92, 12=92, 13=92, 14=92, 15=92, 17=92, 16=92, 19=92, 18=92, 21=92, 20=92, 23=92, 22=92,
25=92, 24=92, 27=92, 26=92, 29=92, 28=92, 31=92, 30=92, 34=92, 35=92, 32=92, 33=92, 38=92,
39=92, 36=92, 37=92, 42=92, 43=92, 40=92, 41=92, 46=92, 47=92, 44=92, 45=92, 51=92, 50=92,
49=92, 48=92, 55=92, 54=92, 53=92, 52=92, 59=92, 58=92, 57=92, 56=92, 63=92, 62=92, 61=92,
60=92, 68=92, 69=92, 70=92, 71=92, 64=92, 65=92, 66=92, 67=92, 76=92, 77=92, 78=92, 79=92,
72=92, 73=92, 74=92, 75=92, 85=92, 84=92, 87=92, 86=92, 81=92, 80=92, 83=92, 82=92, 89=92,
88=92, 91=92, 90=92}
| inconsistency in {0=3, 1=3, 2=3, 3=92, 4=92, 5=92, 6=92, 7=92, 8=92, 9=92, 10=92,
11=92, 12=92, 13=92, 14=92, 15=92, 17=92, 16=92, 19=92, 18=92, 21=92, 20=92, 23=92, 22=92,
25=92, 24=92, 27=92, 26=92, 29=92, 28=92, 31=92, 30=92, 34=92, 35=92, 32=92, 33=92, 38=92,
39=92, 36=92, 37=92, 42=92, 43=92, 40=92, 41=92, 46=92, 47=92, 44=92, 45=92, 51=92, 50=92,
49=92, 48=92, 55=92, 54=92, 53=92, 52=92, 59=92, 58=92, 57=92, 56=92, 63=92, 62=92, 61=92,
60=92, 68=92, 69=92, 70=92, 71=92, 64=92, 65=92, 66=92, 67=92, 76=92, 77=92, 78=92, 79=92,
72=92, 73=92, 74=92, 75=92, 85=92, 84=92, 87=92, 86=92, 81=92, 80=92, 83=92, 82=92, 89=92,
88=92, 91=92, 90=92}
| inconsistency in {0=13, 1=13, 2=13, 3=13, 4=13, 5=13, 6=13, 7=13, 8=13, 9=13, 10=13,
11=13, 12=13, 13=75, 14=75, 15=75, 17=75, 16=75, 19=75, 18=75, 21=75, 20=75, 23=75, 22=75,
25=75, 24=75, 27=75, 26=75, 29=75, 28=75, 31=75, 30=75, 34=75, 35=75, 32=75, 33=75, 38=75,
39=75, 36=75, 37=75, 42=75, 43=75, 40=75, 41=75, 46=75, 47=75, 44=75, 45=75, 51=75, 50=75,
49=75, 48=75, 55=75, 54=75, 53=75, 52=75, 59=75, 58=75, 57=75, 56=75, 63=75, 62=75, 61=75,
60=75, 68=75, 69=75, 70=75, 71=75, 64=75, 65=75, 66=75, 67=75, 72=75, 73=75, 74=75}
| inconsistency in {0=13, 1=13, 2=13, 3=13, 4=13, 5=13, 6=13, 7=13, 8=13, 9=13, 10=13,
11=13, 12=13, 13=75, 14=75, 15=75, 17=75, 16=75, 19=75, 18=75, 21=75, 20=75, 23=75, 22=75,
25=75, 24=75, 27=75, 26=75, 29=75, 28=75, 31=75, 30=75, 34=75, 35=75, 32=75, 33=75, 38=75,
39=75, 36=75, 37=75, 42=75, 43=75, 40=75, 41=75, 46=75, 47=75, 44=75, 45=75, 51=75, 50=75,
49=75, 48=75, 55=75, 54=75, 53=75, 52=75, 59=75, 58=75, 57=75, 56=75, 63=75, 62=75, 61=75,
60=75, 68=75, 69=75, 70=75, 71=75, 64=75, 65=75, 66=75, 67=75, 72=75, 73=75, 74=75}
| errors: 4
|
Did I misunderstand the atomicity of operations replaceAll and getData? Is that only
limited to a context where JTA is being used?
Thanks,
vs
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4198230#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...