Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
JSP - A mailing list about Java Server Pages specification and reference
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
- JBossCache, PojoCache & Serialization

- JBossCache, PojoCache & Serialization

2007-06-12       - By IT2Be

 Back
Hi,

I have started implementing JBossCache/PojoCache and stumble to the following:

I (basically) use the config files as provided through the samples. I also play
with PojoCache 2.0. Java 1.5

The Config files are below and I use the annotations as described.

The issue is the following: I have an application that is very memory consuming
so I try to cache the overflow of objects to disk.
As you can see I set the cache mode to be LOCAL, cacheloader is JdbmCacheLoader
is and marshallNonSerializable = true.

1. After closing the app I expect the table to be cleared but somehow this does
not happen.
2. From what I understand my objects don't need to be serialized but when I don
't do this jboss complains: Jun 12, 2007 4:40:42 PM org.jboss.cache.eviction
.BaseEvictionAlgorithm evictCacheNode
 | SEVERE: Eviction of /__JBossInternal__/9e13ccf9-0908-4234-bd1f-cf0f1deea048
/1426servoy_sample_auto_pdf-1 (See http://pdf-1.ora-code.com)/_ID_/5c4o16-rj0vpp-f2uhehnn-1 (See http://hnn-1.ora-code.com)-f2uhehq1-3 failed
 | java.lang.RuntimeException Source code of java.lang.RuntimeException: java.io.NotSerializableException Source code of java.io.NotSerializableException: com.it2be
.analyzer.repository.Style
 |   at org.jboss.cache.CacheImpl.invokeMethod(CacheImpl.java:3860)
 | .....
3. Serializing then is not the solution either. After a while (I guess when
caching to disk really takes place) I see the following error:Jun 12, 2007 5:01
:42 PM org.jboss.cache.eviction.BaseEvictionAlgorithm evictCacheNode
 | WARNING: Eviction of /e9737027-7423-45ad-b3d7-87a5f5be2174 timed out,
retrying laterand ultimately, out of the blue, I receive the next error where
the class is exactly the same as the ones before:Jun 12, 2007 5:02:46 PM org
.jboss.cache.pojo.interceptors.PojoTxInterceptor invoke
 | WARNING: attach: exception occurred: java.lang.RuntimeException Source code of java.lang.RuntimeException: java.io
.InvalidClassException: com.it2be.analyzer.repository.Method; no valid
constructor

I am new to caching so I hope you forgive me my ignorance and hope you can help
me to solve these issues.

Thanks,

Marcel

--- cluster
<?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)"?>
 |
 | <server>
 |   <mbean code="org.jboss.cache.aop.PojoCache"
 |     name="jboss.cache:service=PojoCache">
 |     <depends>jboss:service=TransactionManager</depends>
 |    
 |     <!--         Configure the TransactionManager -->
 |     <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">LOCAL</attribute>
 |    
 |     <!-- Just used for async repl: use a replication queue -->
 |     <attribute name="UseReplQueue">false</attribute>
 |    
 |     <!-- Replication interval for replication queue (in ms) -->
 |     <attribute name="ReplQueueInterval">0</attribute>
 |    
 |     <!-- Max number of elements which trigger replication -->
 |     <attribute name="ReplQueueMaxElements">0</attribute>
 |    
 |     <!--  Name of cluster. Needs to be the same for all clusters, in order
 |     to find each other
 |     -->
 |     <attribute name="ClusterName">Analyzer</attribute>
 |        
 |     <!--         Whether or not to fetch state on joining a cluster -->
 |     <attribute name="FetchStateOnStartup">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">5000</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>
 |    
 |     <!--  Name of the eviction policy class. -->
 |     <attribute name="EvictionPolicyClass"/>
 |    
 |     <attribute name="EvictionPolicyConfig">
 |       <config>
 |          <attribute name="wakeUpIntervalSeconds">1</attribute>
 |
 |          <!-- This defaults to 200000 if not specified -->
 |          <attribute name="eventQueueSize">200000</attribute>
 |
 |          <!-- Name of the DEFAULT eviction policy class. -->
 |          <attribute name="policyClass">org.jboss.cache.eviction.LFUPolicy<
/attribute>
 |         <attribute name="timeToLiveSeconds">60</attribute>
 |
 |          <!-- Cache wide default -->
 |          <region name="/_default_">
 |             <attribute name="maxNodes">10</attribute>
 |          </region>
 |       </config>
 |    </attribute>
 |    
 |     <!-- New 1.3.x cache loader config block -->
 |     <attribute name="CacheLoaderConfig">
 |       <config>
 |        
 |         <!-- if passivation is true, only the first cache loader is used; the
rest are ignored -->
 |         <passivation>true</passivation>
 |         <preload>/</preload>
 |         <shared>false</shared>
 |        
 |         <!-- we can now have multiple cache loaders, which get chained -->
 |         <cacheloader>
 |           <class>org.jboss.cache.loader.jdbm.JdbmCacheLoader</class>
 |           <!-- same as the old CacheLoaderConfig attribute
 |           location=/tmp this can be part of the properties.
 |           location=/tmp/JBossCacheFileCacheLoader
 |           -->
 |           <properties>location=/Users/marceltrapman/Desktop/cache</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>
 |    
 |   </mbean>
 |  
 | </server>

--- cluster pojo
<?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)"?>
 |
 |    <!--
 |        This is the PojoCache configuration file that specifies:
 |          1. Interceptor stack for API
 |          2. Annotation binding for POJO (via "prepare" element)
 |
 |        Basically, this is a variant of jboss-aop.xml. Note that
 |        except for the customization of interceptor stack, you should
 |        not need to modify this file.
 |
 |        To run PojoCache, you will need to define a system property:
 |        jboss.aop.path that contains the path to this file such that JBoss
Aop
 |        can locate it.
 |    -->
 |   <aop>
 |    
 |     <!--
 |     This defines the PojoCache 2.0 interceptor stack. Unless necessary, don't
modify the stack here!
 |     -->
 |    
 |     <!-- Check id range validity -->
 |     <interceptor name="CheckId"
 |       class="org.jboss.cache.pojo.interceptors.CheckIdInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Track Tx undo operation -->
 |     <interceptor name="Undo"
 |       class="org.jboss.cache.pojo.interceptors.PojoTxUndoInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Begining of interceptor chain -->
 |     <interceptor name="Start"
 |       class="org.jboss.cache.pojo.interceptors.PojoBeginInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Check if we need a local tx for batch processing -->
 |     <interceptor name="Tx"
 |       class="org.jboss.cache.pojo.interceptors.PojoTxInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!--
 |     Mockup failed tx for testing. You will need to set
PojoFailedTxMockupInterceptor.setRollback(true)
 |     to activate it.
 |     -->
 |     <interceptor name="MockupTx"
 |       class="org.jboss.cache.pojo.interceptors.PojoFailedTxMockupInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Perform parent level node locking -->
 |     <interceptor name="TxLock"
 |       class="org.jboss.cache.pojo.interceptors.PojoTxLockInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Interceptor to perform Pojo level rollback -->
 |     <interceptor name="TxUndo"
 |       class="org.jboss.cache.pojo.interceptors
.PojoTxUndoSynchronizationInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Interceptor to used to check recursive field interception. -->
 |     <interceptor name="Reentrant"
 |       class="org.jboss.cache.pojo.interceptors
.MethodReentrancyStopperInterceptor"
 |       scope="PER_INSTANCE"/>
 |    
 |     <!-- Whether to allow non-serializable pojo. Default is false. -->
 |     <interceptor name="MarshallNonSerializable"
 |       class="org.jboss.cache.pojo.interceptors.CheckNonSerializableInterceptor"
 |       scope="PER_INSTANCE">
 |       <attribute name="marshallNonSerializable">true</attribute>
 |     </interceptor>
 |    
 |     <!-- This defines the stack macro -->
 |     <stack name="Attach">
 |       <interceptor-ref name="Start"/>
 |       <interceptor-ref name="CheckId"/>
 |       <interceptor-ref name="MarshallNonSerializable"/>
 |       <interceptor-ref name="Tx"/>
 |      
 |      
 |       <!-- NOTE: You can comment this out during production although leaving
it here is OK. -->
 |       <interceptor-ref name="MockupTx"/>
 |       <interceptor-ref name="TxLock"/>
 |       <interceptor-ref name="TxUndo"/>
 |     </stack>
 |    
 |     <stack name="Detach">
 |       <interceptor-ref name="Start"/>
 |       <interceptor-ref name="CheckId"/>
 |       <interceptor-ref name="Tx"/>
 |      
 |      
 |       <!-- NOTE: You can comment this out during production although leaving
it here is OK. -->
 |       <interceptor-ref name="MockupTx"/>
 |       <interceptor-ref name="TxLock"/>
 |       <interceptor-ref name="TxUndo"/>
 |     </stack>
 |    
 |     <stack name="Find">
 |       <interceptor-ref name="Start"/>
 |       <interceptor-ref name="CheckId"/>
 |     </stack>
 |    
 |     <!--
 |     The following section should be READ-ONLY!! It defines the annotation
binding to the stack.
 |     -->
 |    
 |    
 |     <!-- This binds the jointpoint to specific in-memory operations.
Currently in PojoUtil. -->
 |     <bind
 |       pointcut="execution(*
 |          @(protected)>toString())">
 |       <interceptor-ref name="Reentrant"/>
 |     </bind>
 |    
 |     <bind
 |       pointcut="execution(*
 |          org.jboss.cache.pojo.PojoUtil->@(protected)
.TxUndo(..))">
 |       <interceptor-ref name="Undo"/>
 |     </bind>
 |    
 |     <bind
 |       pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@(protected)
.jboss.cache.pojo.annotation.Attach(..))">
 |       <stack-ref name="Attach"/>
 |     </bind>
 |    
 |     <bind
 |       pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@(protected)
.jboss.cache.pojo.annotation.Detach(..))">
 |       <stack-ref name="Detach"/>
 |     </bind>
 |    
 |     <bind
 |       pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@(protected)
.jboss.cache.pojo.annotation.Find(..))">
 |       <stack-ref name="Find"/>
 |     </bind>
 |    
 |     <!--
 |     Following is declaration for JDK50 annotation. You use the specific
annotation on your
 |     POJO such that it can be instrumented. Idea is user will then need only
to annotate like:
 |     @(protected)
 |     in his POJO. There will be no need of jboss-aop.xml from user's side.
 |     -->
 |    
 |     <!-- If a POJO has PojoCachable annotation, it will be asepctized. -->
 |     <prepare
 |       expr="field(* $instanceof{@(protected)}->
*)"/>
 |    
 |     <!-- Observer and Observable to monitor field modification -->
 |     <bind
 |       pointcut="
 |          set(* $instanceof{@(protected)}->*)
 |          ">
 |       <interceptor
 |         class="org.jboss.cache.pojo.observable.SubjectInterceptor"/>
 |     </bind>
 |    
 |     <introduction
 |       class="$instanceof{@(protected)}">
 |       <mixin>
 |         <interfaces>org.jboss.cache.pojo.observable.Subject</interfaces>
 |         <class>org.jboss.cache.pojo.observable.SubjectImpl</class>
 |         <construction>new
 |           org.jboss.cache.pojo.observable.SubjectImpl(this)</construction>
 |       </mixin>
 |     </introduction>
 |   </aop>


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic
&p=4053609#4053609

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode
=reply&p=4053609
__ ____ ____ ____ ____ ____ ____ ____ ____ ____
jboss-user mailing list
jboss-user@(protected)
https://lists.jboss.org/mailman/listinfo/jboss-user

©2008 junlu.com - Jax Systems, LLC, U.S.A.