Still Persistence
jarva55 Jan 31, 2005 3:10 AMWell, i've obtained jbosscache persistence, but with some problems. The modifications are saved on the corresponding file "jboss.cache@3Aservice@3DTreeCache.xml", but i've several problems with CacheLoaderConfig; when i modify one property, not cacheloaderconfig neccesary, the cacheloaderconfig attribute becames to be like "{" previous value "}". If i do another modify, it becames to be like "{{" previos value "}}", so each modify i do in the class, the cacheloaderconfig value takens two news "{", WHYYYYYYY???
I give you my code:
"treecache-xmbean.xml"=>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mbean PUBLIC "-//JBoss//DTD JBOSS XMBEAN 1.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_0.dtd"> <mbean> <description>Qnecta TreeCache XmBean</description> <descriptors> <persistence persistPolicy="OnUpdate"/> <persistence-manager value="org.jboss.mx.persistence.DelegatingPersistenceManager"/> <descriptor name="attribute-persistence-service" value="jboss:service=AttributePersistenceService"/> <descriptor name="attribute-persistence-operation" value="apmCreate"/> </descriptors> <class>org.jboss.cache.TreeCache</class> <!-- Constructor --> <constructor> <description>El constructor por defecto de TreeCache</description> <name>TreeCache</name> </constructor> <!-- Atributos --> <attribute access="read-only" getMethod="getMembers"> <name>Members</name> <type>java.util.Vector</type> </attribute> <attribute access="read-write" getMethod="getSyncReplTimeout" setMethod="setSyncReplTimeout"> <name>SyncReplTimeout</name> <type>long</type> </attribute> <attribute access="read-write" getMethod="getCacheLoaderConfig" setMethod="setCacheLoaderConfig"> <name>CacheLoaderConfig</name> <type>java.util.Properties</type> <descriptors> <descriptor name="persistPolicy" value="Never"/> </descriptors> </attribute> <attribute access="read-write" getMethod="getIsolationLevel" setMethod="setIsolationLevel"> <name>IsolationLevel</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getLockAcquisitionTimeout" setMethod="setLockAcquisitionTimeout"> <name>LockAcquisitionTimeout</name> <type>long</type> </attribute> <attribute access="read-only" getMethod="getInterceptors"> <name>Interceptors</name> <type>java.util.List</type> </attribute> <attribute access="read-only" getMethod="getNumberOfLocksHeld"> <name>NumberOfLocksHeld</name> <type>int</type> </attribute> <attribute access="read-write" getMethod="getTransactionManagerLookupClass" setMethod="setTransactionManagerLookupClass"> <name>TransactionManagerLookupClass</name> <type>java.lang.String</type> </attribute> <attribute access="read-write"> <name>JndiName</name> <type>java.util.Properties</type> </attribute> <attribute access="read-only" getMethod="getNumberOfAttributes"> <name>NumberOfAttributes</name> <type>int</type> </attribute> <attribute access="read-write" getMethod="getReplQueueMaxElements" setMethod="setReplQueueMaxElements"> <name>ReplQueueMaxElements</name> <type>int</type> </attribute> <attribute access="read-write" getMethod="getClusterProperties" setMethod="setClusterProperties"> <name>ClusterProperties</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getReplQueueInterval" setMethod="setReplQueueInterval"> <name>ReplQueueInterval</name> <type>long</type> </attribute> <attribute access="read-write" getMethod="getUseReplQueue" setMethod="setUseReplQueue"> <name>UseReplQueue</name> <type>boolean</type> </attribute> <attribute access="read-only" getMethod="getTransactionManager"> <name>TransactionManager</name> <type>javax.transaction.TransactionManager</type> </attribute> <attribute access="read-write" getMethod="getCacheLoaderClass" setMethod="setCacheLoaderClass"> <name>CacheLoaderClass</name> <type>java.lang.String</type> </attribute> <attribute access="read-only" getMethod="getName"> <name>Name</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getCacheLoaderFetchPersistentState" setMethod="setCacheLoaderFetchPersistentState"> <name>CacheLoaderFetchPersistentState</name> <type>boolean</type> </attribute> <attribute access="read-write" getMethod="getCacheLoaderShared" setMethod="setCacheLoaderShared"> <name>CacheLoaderShared</name> <type>boolean</type> </attribute> <attribute access="read-only" getMethod="getEvictionThreadWakeupIntervalSeconds"> <name>EvictionThreadWakeupIntervalSeconds</name> <type>int</type> </attribute> <attribute access="read-only"> <name>Coordinator</name> <type>boolean</type> </attribute> <attribute access="read-write" getMethod="getEvictionPolicyClass" setMethod="setEvictionPolicyClass"> <name>EvictionPolicyClass</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getInitialStateRetrievalTimeout" setMethod="setInitialStateRetrievalTimeout"> <name>InitialStateRetrievalTimeout</name> <type>long</type> </attribute> <attribute access="read-only" getMethod="getState"> <name>State</name> <type>int</type> </attribute> <attribute access="read-write" getMethod="getCacheMode" setMethod="setCacheMode"> <name>CacheMode</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getCacheLoader" setMethod="setCacheLoader"> <name>CacheLoader</name> <type>org.jboss.cache.loader.CacheLoader</type> </attribute> <attribute access="read-only" getMethod="getLocalAddress"> <name>LocalAddress</name> <type>java.lang.Object</type> </attribute> <attribute access="read-only" getMethod="getNumberOfNodes"> <name>NumberOfNodes</name> <type>int</type> </attribute> <attribute access="read-write" getMethod="getFetchStateOnStartup" setMethod="setFetchStateOnStartup"> <name>FetchStateOnStartup</name> <type>boolean</type> </attribute> <attribute access="read-write" getMethod="getSyncRollbackPhase" setMethod="setSyncRollbackPhase"> <name>SyncRollbackPhase</name> <type>boolean</type> </attribute> <attribute access="read-only"> <name>StateString</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getCacheLoaderPreload" setMethod="setCacheLoaderPreload"> <name>CacheLoaderPreload</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getCacheLoaderFetchTransientState" setMethod="setCacheLoaderFetchTransientState"> <name>CacheLoaderFetchTransientState</name> <type>boolean</type> </attribute> <attribute access="read-only" getMethod="getInterceptorChain"> <name>InterceptorChain</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getClusterName" setMethod="setClusterName"> <name>ClusterName</name> <type>java.lang.String</type> </attribute> <attribute access="read-write" getMethod="getSyncCommitPhase" setMethod="setSyncCommitPhase"> <name>SyncCommitPhase</name> <type>boolean</type> </attribute> <attribute access="write-only" setMethod="setTransactionManagerLookup"> <name>TransactionManagerLookup</name> <type>org.jboss.cache.TransactionManagerLookup</type> </attribute> <attribute access="write-only" getMethod="getEvictionPolicyConfig" setMethod="setEvictionPolicyConfig"> <name>EvictionPolicyConfig</name> <type>org.w3c.dom.Element</type> </attribute> <attribute access="write-only" setMethod="setClusterConfig"> <name>ClusterConfig</name> <type>org.w3c.dom.Element</type> </attribute> <!-- Operations --> <operation> <name>start</name> <return-type>void</return-type> </operation> <operation> <name>exists</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>boolean</return-type> </operation> <operation> <name>jbossInternalLifecycle</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>remove</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>create</name> <return-type>void</return-type> </operation> <operation> <name>printDetails</name> <return-type>java.lang.String</return-type> </operation> <operation> <name>put</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg2</name> <type>java.lang.Object</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>startService</name> <return-type>void</return-type> </operation> <operation> <name>fetchState</name> <parameter> <name>arg0</name> <type>long</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>put</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg1</name> <type>java.util.Map</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>print</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>java.lang.String</return-type> </operation> <operation> <name>releaseAllLocks</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>_remove</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg2</name> <type>boolean</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>get</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>exists</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>boolean</return-type> </operation> <operation> <name>createService</name> <return-type>void</return-type> </operation> <operation> <name>print</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>java.lang.String</return-type> </operation> <operation> <name>_put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg2</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg3</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg4</name> <type>boolean</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>remove</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>_remove</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg2</name> <type>boolean</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>toString</name> <return-type>java.lang.String</return-type> </operation> <operation> <name>exists</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>boolean</return-type> </operation> <operation> <name>stop</name> <return-type>void</return-type> </operation> <operation> <name>load</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>_remove</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg2</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg3</name> <type>boolean</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>TreeCacheListener</name> <parameter> <name>arg0</name> <type>org.jboss.cache.TreeCacheListener</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>callRemoteMethods</name> <parameter> <name>arg0</name> <type>java.util.Vector</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.reflect.Method</type> </parameter> <parameter> <name>arg2</name> <type>[Ljava.lang.Object;</type> </parameter> <parameter> <name>arg3</name> <type>boolean</type> </parameter> <parameter> <name>arg4</name> <type>boolean</type> </parameter> <parameter> <name>arg5</name> <type>long</type> </parameter> <return-type>java.util.List</return-type> </operation> <operation> <name>_put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg2</name> <type>java.util.Map</type> </parameter> <parameter> <name>arg3</name> <type>boolean</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>_put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg2</name> <type>java.util.Map</type> </parameter> <parameter> <name>arg3</name> <type>boolean</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>evict</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg2</name> <type>java.lang.Object</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg1</name> <type>java.util.Map</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>_put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg2</name> <type>java.util.Map</type> </parameter> <parameter> <name>arg3</name> <type>boolean</type> </parameter> <parameter> <name>arg4</name> <type>boolean</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>_remove</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg2</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg3</name> <type>boolean</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>remove</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>dumpTransactionTable</name> <return-type>java.lang.String</return-type> </operation> <operation> <name>remove</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>get</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.Object</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>callRemoteMethods</name> <parameter> <name>arg0</name> <type>java.util.Vector</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg2</name> <type>[Ljava.lang.Class;</type> </parameter> <parameter> <name>arg3</name> <type>[Ljava.lang.Object;</type> </parameter> <parameter> <name>arg4</name> <type>boolean</type> </parameter> <parameter> <name>arg5</name> <type>boolean</type> </parameter> <parameter> <name>arg6</name> <type>long</type> </parameter> <return-type>java.util.List</return-type> </operation> <operation> <name>getKeys</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>java.util.Set</return-type> </operation> <operation> <name>getKeys</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>java.util.Set</return-type> </operation> <operation> <name>removeData</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>stopService</name> <return-type>void</return-type> </operation> <operation> <name>destroyService</name> <return-type>void</return-type> </operation> <operation> <name>releaseAllLocks</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>exists</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>boolean</return-type> </operation> <operation> <name>evict</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>_put</name> <parameter> <name>arg0</name> <type>org.jboss.cache.GlobalTransaction</type> </parameter> <parameter> <name>arg1</name> <type>java.lang.String</type> </parameter> <parameter> <name>arg2</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg3</name> <type>java.lang.Object</type> </parameter> <parameter> <name>arg4</name> <type>boolean</type> </parameter> <return-type>java.lang.Object</return-type> </operation> <operation> <name>printLockInfo</name> <return-type>java.lang.String</return-type> </operation> <operation> <name>getChildrenNames</name> <parameter> <name>arg0</name> <type>java.lang.String</type> </parameter> <return-type>java.util.Set</return-type> </operation> <operation> <name>removeData</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>destroy</name> <return-type>void</return-type> </operation> <operation> <name>addTreeCacheListener</name> <parameter> <name>arg0</name> <type>org.jboss.cache.TreeCacheListener</type> </parameter> <return-type>void</return-type> </operation> <operation> <name>getChildrenNames</name> <parameter> <name>arg0</name> <type>org.jboss.cache.Fqn</type> </parameter> <return-type>java.util.Set</return-type> </operation> </mbean>
"tree-cache-service.xml"=>
<?xml version="1.0" encoding="UTF-8"?> <!-- ===================================================================== --> <!-- --> <!-- Sample TreeCache Service Configuration --> <!-- --> <!-- ===================================================================== --> <server> <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/> <!-- ==================================================================== --> <!-- Defines TreeCache configuration --> <!-- ==================================================================== --> <mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=TreeCache" xmbean-dd="resource:xmdesc/qnecta-treecache-xmbean.xml"> <depends>jboss:service=Naming</depends> <depends>jboss:service=TransactionManager</depends> <attribute name="JndiName">qnecta/servicio/treecache/TreeCache</attribute> <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute> <attribute name="IsolationLevel">SERIALIZABLE</attribute> <attribute name="CacheMode">LOCAL</attribute> <attribute name="UseReplQueue">false</attribute> <attribute name="ReplQueueInterval">60000</attribute> <attribute name="ReplQueueMaxElements">100</attribute> <attribute name="InitialStateRetrievalTimeout">5000</attribute> <attribute name="SyncReplTimeout">10000</attribute> <attribute name="LockAcquisitionTimeout">30000</attribute> <attribute name="CacheLoaderClass">org.jboss.cache.loader.FileCacheLoader</attribute> <attribute name="CacheLoaderConfig"> <configuration> <property name="location" value="C:\\proyectos\\resources\\cachestore\\storeA"/> </configuration> </attribute> <attribute name="CacheLoaderShared">false</attribute> <attribute name="CacheLoaderFetchTransientState">false</attribute> <attribute name="CacheLoaderFetchPersistentState">true</attribute> </mbean> <!-- Uncomment to get a graphical view of the TreeCache MBean above --> <!-- <mbean code="org.jboss.cache.TreeCacheView" name="jboss.cache:service=TreeCacheView">--> <!-- <depends>jboss.cache:service=TreeCache</depends>--> <!-- <attribute name="CacheService">jboss.cache:service=TreeCache</attribute>--> <!-- </mbean>--> </server>
"jboss.cache@3Aservice@3DTreeCache.xml"=>
<?xml version="1.0" encoding="UTF-8"?> <!-- automatically produced by XMLAttributePersistenceManager --> <attribute-list date="20050128145934" id="jboss.cache:service=TreeCache"> <attribute name="SyncReplTimeout" type="java.lang.Long">10000</attribute> <attribute name="IsolationLevel" type="java.lang.String">SERIALIZABLE</attribute> <attribute name="LockAcquisitionTimeout" type="java.lang.Long">30000</attribute> <attribute name="TransactionManagerLookupClass" type="java.lang.String">org.jboss.cache.JBossTransactionManagerLookup</attribute> <attribute name="JndiName" type="java.util.Properties">{qnecta/servicio/treecache/TreeCache=}</attribute> <attribute name="ReplQueueMaxElements" type="java.lang.Integer">100</attribute> <attribute name="ReplQueueInterval" type="java.lang.Long">60000</attribute> <attribute name="UseReplQueue" type="java.lang.Boolean">false</attribute> <attribute name="CacheLoaderClass" type="java.lang.String">org.jboss.cache.loader.FileCacheLoader</attribute> <attribute name="CacheLoaderFetchPersistentState" type="java.lang.Boolean">true</attribute> <attribute name="CacheLoaderShared" type="java.lang.Boolean">false</attribute> <attribute name="InitialStateRetrievalTimeout" type="java.lang.Long">5000</attribute> <attribute name="CacheMode" type="java.lang.String">LOCAL</attribute> <attribute name="FetchStateOnStartup" type="java.lang.Boolean">true</attribute> <attribute name="SyncRollbackPhase" type="java.lang.Boolean">false</attribute> <attribute name="CacheLoaderFetchTransientState" type="java.lang.Boolean">false</attribute> <attribute name="ClusterName" type="java.lang.String">TreeCache-Group</attribute> <attribute name="SyncCommitPhase" type="java.lang.Boolean">false</attribute> </attribute-list>