[jboss-user] [JBoss Cache] - Clustered JBoss Cache and JDBCCacheLoader
valerio de minico
do-not-reply at jboss.com
Wed Jul 27 06:09:57 EDT 2011
valerio de minico [http://community.jboss.org/people/vdeminico] created the discussion
"Clustered JBoss Cache and JDBCCacheLoader"
To view the discussion, visit: http://community.jboss.org/message/617840#617840
--------------------------------------------------------------
Hi all,
I'm clustering an app which uses a jboss cache to cache data. For JBoss Cache I use a JDBCCacheLoader and mysql as DBMS. My question is how clusterize this scenario??? I should have a shared mysql instance or an instance on all machines????? I use JBoss Cache 3.1.0.GA (bundled in JBoss AS 5.1.0.GA).
Here my *-service.xml file:
<mbean code="org.jboss.cache.pojo.jmx.PojoCacheJmxWrapper"
name="jboss.cache:service=PojoCache">
<depends>jboss:service=TransactionManager</depends>
<!-- Configure the TransactionManager (test only!)-->
<!--
<attribute name="TransactionManagerLookupClass">
org.jboss.cache.transaction.DummyTransactionManagerLookup
</attribute>
-->
<!-- Isolation level : SERIALIZABLE
REPEATABLE_READ (default)
READ_COMMITTED
READ_UNCOMMITTED
NONE
-->
<attribute name="IsolationLevel">REPEATABLE_READ</attribute>
<!-- Valid modes are LOCAL, REPL_ASYNC and REPL_SYNC -->
<attribute name="CacheMode">REPL_SYNC</attribute>
<!-- Name of cluster. Needs to be the same for all caches,
in order for them to find each other
-->
<attribute name="ClusterName">PojoCacheCluster</attribute>
<!-- JGroups protocol stack properties. -->
<attribute name="ClusterConfig">
<config>
<!-- UDP: if you have a multihomed machine, set the bind_addr
attribute to the appropriate NIC IP address -->
<!-- UDP: On Windows machines, because of the media sense feature
being broken with multicast (even after disabling media sense)
set the loopback attribute to true -->
<UDP mcast_addr="228.1.2.3" mcast_port="48866"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false"/>
<PING timeout="2000" num_initial_members="3"/>
<MERGE2 min_interval="10000" max_interval="20000"/>
<FD shun="true"/>
<FD_SOCK/>
<VERIFY_SUSPECT timeout="1500"/>
<pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
max_xmit_size="8192"/>
<UNICAST timeout="600,1200,2400,4800"/>
<pbcast.STABLE desired_avg_gossip="400000"/>
<FC max_credits="2000000" min_threshold="0.10"/>
<FRAG2 frag_size="8192"/>
<pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
shun="true" print_local_addr="true"/>
<pbcast.STATE_TRANSFER/>
</config>
</attribute>
<attribute name="EvictionPolicyConfig">
<config>
<attribute name="wakeUpIntervalSeconds">5</attribute>
<attribute name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
<!-- Cache wide default -->
<region name="/profile">
<attribute name="maxNodes">5000</attribute>
<attribute name="timeToLiveSeconds">3</attribute>
</region>
</config>
</attribute>
<!-- CacheLoaderConfiguration -->
<attribute name="CacheLoaderConfig">
<config>
<passivation>true</passivation>
<preload>/profile</preload>
<shared>false</shared>
<!-- we can now have multiple cache loaders, which get chained -->
<cacheloader>
<class>org.jboss.cache.loader.JDBCCacheLoader</class>
<properties>
cache.jdbc.driver=com.mysql.jdbc.Driver
cache.jdbc.url=jdbc:mysql://localhost:3306/db_cache
cache.jdbc.user=root
cache.jdbc.password=admin
cache.jdbc.node.type=LONGBLOB
cache.jdbc.table.drop=false
cache.jdbc.table.create=false
</properties>
<!-- whether the cache loader writes are asynchronous -->
<async>false</async>
<!-- only one cache loader in the chain may set fetchPersistentState to true.
An exception is thrown if more than one cache loader sets this to true. -->
<fetchPersistentState>true</fetchPersistentState>
<!-- determines whether this cache loader ignores writes - defaults to false. -->
<ignoreModifications>false</ignoreModifications>
</cacheloader>
</config>
</attribute>
<!-- Whether or not to fetch state on joining a cluster -->
<attribute name="FetchInMemoryState">true</attribute>
<!-- The max amount of time (in milliseconds) we wait until the
initial state (ie. the contents of the cache) are retrieved from
existing members in a clustered environment
-->
<attribute name="InitialStateRetrievalTimeout">15000</attribute>
<!-- Number of milliseconds to wait until all responses for a
synchronous call have been received.
-->
<attribute name="SyncReplTimeout">15000</attribute>
<!-- Max number of milliseconds to wait for a lock acquisition -->
<attribute name="LockAcquisitionTimeout">10000</attribute>
</mbean>
</server>
Thanks,
Valerio.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/617840#617840]
Start a new discussion in JBoss Cache at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2052]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110727/93154c6b/attachment-0001.html
More information about the jboss-user
mailing list