I'm trying to evaluate the JBossCache for our application I'm getting dirty read even though I rollback transaction. I tried this with EJB3 Stateless session bean BMT.
Could you please anyone help me on this problem, Am I making anything wrong? please let me know if you need additional info JBosscache : jbosscache-core-3.1.0.GA JBoss As: jboss-5.0.0.GA JDK: 1.5.0_07 Here is the code | public class TestEntity { | | private int array[] = new int[100000]; | | public void update(int value) { | | for (int i = 0; i < array.length; i++) { | array [ i ]=value; | } | | } | | public int[] getArray() { | return array; | } | } Stateless Bean1 code to modify cache Stateless Bean 1 | public void updateArray(int value) { | TransactionManager tm = cache.getConfiguration().getRuntimeConfig().getTransactionManager(); | try { | tm.begin(); | String key = node.getFqn().toString(); | TestEntity t = (TestEntity) node.get(key); | if(t != null) { | t.update(value); | node.put(key, t); | } | tm.rollback(); | } catch (Exception e) { | try { | tm.rollback(); | }catch(Exception ex1) { | ex1.printStackTrace(); | } | e.printStackTrace(); | } | } | Stateless Bean 2 to read and validating array | public boolean validateArray() { | TransactionManager tm = cache.getConfiguration().getRuntimeConfig().getTransactionManager(); | try { | tm.begin(); | int a[] = readArray(); | int value = a[0]; | for (int i = 0; i < a.length; i++) { | if(a != value) { | System.out.println(a+":"+value); | sctx.getUserTransaction().rollback(); | return false; | } | } | tm.commit(); | }catch(Exception ex) { | try { | tm.rollback(); | }catch(Exception ex1) { | ex1.printStackTrace(); | } | ex.printStackTrace(); | } | return true; | } Configuration file: I have used configuration file example for cache configuration | <locking isolationLevel="REPEATABLE_READ" | lockParentForChildInsertRemove="false" lockAcquisitionTimeout="50000" | nodeLockingScheme="mvcc" writeSkewCheck="true" concurrencyLevel="500" | useLockStriping="false" /> | | <transaction transactionManagerLookupClass="org.jboss.cache.transaction.DummyTransactionManagerLookup" | syncRollbackPhase="true" syncCommitPhase="true" /> | | <?xml version="1.0" encoding="UTF-8"?> | | <jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xmlns="urn:jboss:jbosscache-core:config:3.1"> | <locking isolationLevel="REPEATABLE_READ" | lockParentForChildInsertRemove="false" lockAcquisitionTimeout="50000" | nodeLockingScheme="mvcc" writeSkewCheck="true" concurrencyLevel="500" | useLockStriping="false" /> | | <transaction transactionManagerLookupClass="org.jboss.cache.transaction.DummyTransactionManagerLookup" | syncRollbackPhase="true" syncCommitPhase="true" /> | | <jmxStatistics enabled="true" /> | | <shutdown hookBehavior="REGISTER" /> | | <listeners asyncPoolSize="1" asyncQueueSize="1000000" /> | | <serialization objectInputStreamPoolSize="50" | objectOutputStreamPoolSize="50" version="3.0.0" | marshallerClass="org.jboss.cache.marshall.VersionAwareMarshaller" | useLazyDeserialization="false" useRegionBasedMarshalling="false" /> | | <loaders passivation="true" shared="false"> | <preload> | <node fqn="/" /> | </preload> | <loader class="org.jboss.cache.loader.bdbje.BdbjeCacheLoader" async="false" | fetchPersistentState="true" ignoreModifications="false" | purgeOnStartup="false"> | <properties>location=c:/JavaTools/tmp</properties> | </loader> | </loaders> | </jbosscache> View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4238854#4238854 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4238854 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user