[JBoss-user] [JBossCache] - Re: Clustered Transactional Replicated TreeCache with single
Hi Bela, sorry for not getting back to you sooner on this. We have been busy figuring out what's going on. Firstly, the application we ran is on a two node JBoss cluster where each node has an Updater task and a Reader task which both update or read the same 1000 entries in the same database table (in oracle). We set the transaction isolation level to be Serializable. We configured the TreeCache to be the second level cache of hibernate. Firstly the problem that we encountered is as follows: One updater task managed to update the entries inside a transaction, however the other one periodically failed with an Oracle cannot serialize transaction exception. We think the reason for this is as follows: Given two transactions A and B as below transactin A transaction B start A |---| start B |---| When A commits, B may or may not fail (depending on the common data) due to state change. In our case transaction B consistently failed as it was working on the same rows. So I think we now understand what's happening. Thanks for your help. View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3885671#3885671 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3885671 --- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBossCache] - Re: Clustered Transactional Replicated TreeCache with single
Hi Guys, I used JOTM and it works fine. Also considering that I used it in a web services context with Jetty being the HTTP Server We have synchronous replication...and no problems till now... I assume you are still on with the JDBCCacheLoader and there is always going to be one node writing to the DB. This node will have to be the serving node. Hence I do not see why you need to more than local transactions. Hope that Bela will help with that elusive SharedClassLoader by having that in the next release cheers, Swami View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3885744#3885744 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3885744 --- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBossCache] - Re: Clustered Transactional Replicated TreeCache with single
Hi Bela, thanks so much for the reply! Your two answers should make our life much simpler if we can get them working as expected then! The strange thing is, we have already tried to configure TreeCache with the JBoss transaction manager. We set the isolation level to be serializable but it didn't seem to work as expected. We would have thought that the transactions would be ordered contiguously across the cluster. Unfortunately we got lots of errors. Just to clarify, our treecache xml file looks as follows: | ?xml version='1.0' encoding='utf-8'? | !DOCTYPE hibernate-configuration PUBLIC -//Hibernate/Hibernate Configuration DTD//EN http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd; | hibernate-configuration | session-factory | | property name=query.substitutionstrue 1, false 0, yes 'Y', no 'N'/property | | !-- | property name=dialectnet.sf.hibernate.dialect.OracleDialect/property | property name=connection.driver_classcom.inet.ora.OraDriver/property | property name=connection.usernamerevo_ph/property | property name=connection.passwordrevo_ph/property | property name=connection.urljdbc:inetora:toronto:1521:toronto?sduSize=32767amp;streamstolob=true/property | -- | | !-- | property name=dialectnet.sf.hibernate.dialect.MySQLDialect/property | property name=connection.driver_classcom.mysql.jdbc.Driver/property | property name=connection.usernameroot/property | property name=connection.password/property | property name=connection.urljdbc:mysql://Kilcormac/test/property | property name=connection.provider_classnet.sf.hibernate.connection.DriverManagerConnectionProvider/property | -- | | | property name=dialectnet.sf.hibernate.dialect.OracleDialect/property | property name=connection.datasourcejava:/jdbc/inetdriver/property | | property name=connection.pool_size10/property | property name=statement_cache.size100/property | | !-- Use JDBC Transaction factory for a local (per-JVM) application | property name=transaction.factory_classnet.sf.hibernate.transaction.JDBCTransactionFactory/property | -- | !-- Use JTA Trancation factory for a distributed (inter-JVM) application -- | property name=transaction.factory_classnet.sf.hibernate.transaction.JTATransactionFactory/property | | !-- Added the JBoss Transaction Manager Lookup class (PH) for the distributed (inter-JVM) application -- | property name=transaction.manager_lookup_classnet.sf.hibernate.transaction.JBossTransactionManagerLookup/property | | !-- The EHCache is a per-JVM (local) second-level cache | property name=cache.provider_classnet.sf.ehcache.hibernate.Provider/property | -- | !-- JBoss TreeCache is a distributed (inter-JVM) transactional cache with replication -- | property name=cache.provider_classnet.sf.hibernate.cache.TreeCacheProvider/property | | property name=cache.use_query_cachefalse/property | property name=cache.use_minimal_putstrue/property | | !-- Magic number 8 is serializable, 2 is read_committed. NOTE: this doesn't work if JBoss is managing the JDBC datasource - | in that case you need to set it in the Oracle-ds.xml file, so the below doesn't work. -- | property name=connection.isolation1/property | | property name=show_sqlfalse/property | property name=jdbc.fetch_size5000/property | property name=max_fetch_depth8/property | property name=jdbc.use_get_generated_keystrue/property | property name=jdbc.batch_size1000/property | property name=jdbc.use_scrollable_resultsettrue/property | property name=jdbc.use_streams_for_binarytrue/property | property name=use_outer_jointrue/property | property name=cglib.use_reflection_optimizertrue/property | | !-- mapping files -- | mapping resource=com/capetechnologies/inetdriver/domain/Archive.hbm.xml/ | mapping resource=com/capetechnologies/inetdriver/domain/DataPoint.hbm.xml/ | mapping resource=com/capetechnologies/inetdriver/domain/MonitoredProperty.hbm.xml/ | /session-factory | /hibernate-configuration and our hibernate.cfg.xml file is as follows: | ?xml version='1.0' encoding='utf-8'? | !DOCTYPE hibernate-configuration PUBLIC -//Hibernate/Hibernate Configuration DTD//EN http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd; | hibernate-configuration | session-factory | | property name=query.substitutionstrue 1, false 0, yes 'Y', no 'N'/property | | !-- | property name=dialectnet.sf.hibernate.dialect.OracleDialect/property | property name=connection.driver_classcom.inet.ora.OraDriver/property | property name=connection.usernamerevo_ph/property | property
[JBoss-user] [JBossCache] - Re: Clustered Transactional Replicated TreeCache with single
Sorry Bela, I made one mistake above, we actually DO have the default JBoss transaction manager service deployed (not the tyrex one that I posted above). We have the following in our jboss-service as the mbean. |!-- | | The fast in-memory transaction manager. | -- |mbean code=org.jboss.tm.TransactionManagerService | name=jboss:service=TransactionManager | xmbean-dd=resource:xmdesc/TransactionManagerService-xmbean.xml | attribute name=TransactionTimeout300/attribute | | depends optional-attribute-name=XidFactoryjboss:service=XidFactory/depends |/mbean | thanks for your help! regards, Brian View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3884678#3884678 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3884678 --- This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual core and dual graphics technology at this free one hour event hosted by HP, AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBossCache] - Re: Clustered Transactional Replicated TreeCache with single
You didn't describe *what* actually fails. A use case would be helpful View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3884719#3884719 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3884719 --- This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual core and dual graphics technology at this free one hour event hosted by HP, AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBossCache] - Re: Clustered Transactional Replicated TreeCache with single
1) The JBoss TransactionManager is good enough, as you're only accessing 1 DB. 2PN across a cluster is done by JBossCache, and its state is memory-only, so it can always be reloaded from the DB. 2) No, but of course if your driver supports XA that's fine too. View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3884587#3884587 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3884587 --- This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual core and dual graphics technology at this free one hour event hosted by HP, AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user