Persistence not quite working
bossy Jan 30, 2007 12:31 PMHello,
I have two XMBeans which attributes I'd like to persist. My problem is that while the first MBean persists its attributes, the second doesn't. After couple of hours I found out that the difference between the two XMBeans is that the attributes for the first one( which is a configuration bean) are ?read-write? and when I press ?Apply Changes? button from the JMX console, the values are saved as per the ?xmbean.xml file. The attributes of the second one are ?read-only?, as I update them using a different mechanism. This results in the attribute values not being saved. I added a setter to one of the attributes( just to prove that this is indeed the reason) and once I updated this attribute by clicking on the ?Apply changes? button, the value was saved and the next time I re-started the server I was able to see the correct value.
My question is ? is this a bug and is there a way to work around this problem?
To illustrate the problem I added extracts from my code
stats-xmbean.xml
<!DOCTYPE mbean PUBLIC "-//JBoss//DTD JBOSS XMBEAN 1.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_0.dtd"> <mbean> <description></description> <descriptors> <persistence persistPolicy="OnUpdate" persistPeriod="10" persistLocation="${jboss.server.data.dir}" persistName="StatsJNDIMap.ser"/> <currencyTimeLimit value="10"/> <state-action-on-update value="keep-running"/> <persistence-manager value="org.jboss.mx.persistence.ObjectStreamPersistenceManager" /> </descriptors> <class>org.jboss.test.jmx.xmbean.JNDIMap</class> <constructor> <description>The default constructor</description> <name>JNDIMap</name> </constructor> <!-- Attributes --> <attribute access="read-write" getMethod="getStartDate" setMethod="setStartDate"> <description>Start Date</description> <name>Start Date</name> <type>java.lang.String</type> </attribute> <attribute access="read-only" getMethod="getInBoxReqCount" > <description>Number of requests</description> <name>Get Message Requests</name> <type>java.lang.String</type> </attribute> ... more
StatsXMBean.java
public class StatsXMBean extends ServiceMBeanSupport { ... more }