Hello Werner,

Thanks a lot for your fast answer...

You are right, the EHCache has to be in the class path, I change it there
but still I get the same result. Here is the output log, there you can see
the only error is the PresitenceException after the update:

16 abr 2007 00:04:08.249 [INFO] [http-8080-Processor25]
[org.exolab.castor.mapping.Mapping] - Loading mapping descriptors from
mapping.xml
16 abr 2007 00:04:08.419 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/User.xml
16 abr 2007 00:04:08.619 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/Category.xml
16 abr 2007 00:04:08.629 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/Content.xml
16 abr 2007 00:04:08.639 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/Library.xml
16 abr 2007 00:04:08.649 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/Link.xml
16 abr 2007 00:04:08.659 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/UserContent.xml
16 abr 2007 00:04:08.669 [INFO] [http-8080-Processor25]
[org.castor.mapping.MappingUnmarshaller] - Loading mapping descriptors from
mapping/Configuration.xml

No timestamp information for object com.mbook.base.UserBase with identity
<2(2)> available in cache (anymore).
16 abr 2007 00:04:32.524 [ERROR] [http-8080-Processor24]
[org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/mbookdev].[
jsp]] - Servlet.service() para servlet jsp lanzó excepción
org.exolab.castor.jdo.PersistenceException: No timestamp information for
object com.mbook.base.UserBase with identity <2(2)> available in cache
(anymore).
        at
org.exolab.castor.persist.ClassMolder.update(ClassMolder.java:888)
        at org.exolab.castor.persist.LockEngine.update(LockEngine.java:685)
        at
org.castor.persist.AbstractTransactionContext.markUpdate(AbstractTransaction
Context.java:913)
        at..........................

 

I´m doing a simple test operation where I modify a UserBase object right
after I load it. Here is the update code in the JSP.

        UserBase user = null;
        String nombre = null;

        nombre = request.getParameter("nombre");

        user = UserBase.load(new Integer(2));


        if(nombre != null && !nombre.trim().equals(""))
        {
                user.setName(nombre);
                user.setToUpdate();
                user.update();
        }



I have the Castor code wrapped in some classes but you can see how I just
load the Object and modify it in only two fast operations. If I don't modify
the object It's there and I can use it with out any error. Also, If I take
of the <cache-type type="ehcache"/> from the mapping file, it works fine.

It't the first time I use EHCache so I'm not sure of this but it's looks
like you have to create a cache definition, there are some examples in the
ehcache.xml:

<cache name="myCacheTest"
   maxElementsInMemory="10000"
   eternal="false"
   timeToIdleSeconds="100"
   timeToLiveSeconds="100"
   overflowToDisk="false">
   <cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>

Does Castor need a specific definition there? 

Also, running:
java -jar ehcache-1.2.4-remote-debugger.jar ehcache.xml myCacheTest

It should give you some information about it. But you need to indicate the
cache name to show the info.

Any more ideas? 

Thanks a lot and best regards,
Gonzalo Abollado.






-----Mensaje original-----
De: Werner Guttmann [mailto:[EMAIL PROTECTED] 
Enviado el: lunes, 16 de abril de 2007 8:47
Para: dev@castor.codehaus.org
Asunto: AW: [castor-dev] Ehcache basic configuration

As far as I can tell, the EHCache config file (ehcache.xml) should go into
WEB-INF/classes, as EHCache expects its configuration to be on the
CLASSPATH. Other than that, everything looks fine to me.

The Castor error message you are getting simply indicates that (during an
update operation, i.e. a re-attachement) Castor is not able to find an
object with the given identity in its cache(s).

Werner Guttmann

PS You might as well look for log statements that happen during startup of
your web application that e.g. indicate that EHCache cannot be initialized
properly.
________________________________________
Von: Gonzalo Abollado [mailto:[EMAIL PROTECTED] 
Gesendet: Sonntag, 15. April 2007 23:50
An: dev@castor.codehaus.org
Betreff: [castor-dev] Ehcache basic configuration

Hello,

I´m trying to add Ehcache (or any distributed cache solution in case you can
recommend one) to Castor in a Tomcat environment (J2EE). I´m looking
everywhere and I don´t manage to find the right docs and I´m not sure if I
have configured correctly and how to find out. Can you please point me to
the right docs or give me some clues to configure?

I have added the ehcache-1.2.4.jar to the lib directory and the ehcache.xml
and ehcache.xsd to the WEB-INF and I have added <cache-type type="ehcache"/>
to every xml map file.
These are the ehcache.xml properties I have:

<diskStore path="java.io.tmpdir"/>

<cacheManagerEventListenerFactory class="" properties=""/>

<cacheManagerPeerProviderFactory
           
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
            properties="peerDiscovery=automatic,
                        multicastGroupAddress=230.0.0.1,
                        multicastGroupPort=4446, timeToLive=1"/>

    <cacheManagerPeerListenerFactory
           
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>


    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="false"
            maxElementsOnDisk="10000000"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"
            />


I´m running the ehcache debugger and I don´t see any information.
java -jar ehcache-1.2.4-remote-debugger.jar ehcache.xml

This is the info get, and as you can see there are no caches...

13-abr-2007 11:28:57 net.sf.ehcache.distribution.RemoteDebugger main
INFO: Increase the net.sf.ehcache.distribution logging level to debug or
trace to see distributed cache operations as they occur.
13-abr-2007 11:29:00 net.sf.ehcache.distribution.RemoteDebugger main
INFO: Available caches are:



And if I try to update an object I get this exception:

org.exolab.castor.jdo.PersistenceException: No timestamp information for
object com.mbook.base.UserBase with identity <2(2)> available in cache
(anymore).
            at
org.exolab.castor.persist.ClassMolder.update(ClassMolder.java:888)
            at
org.exolab.castor.persist.LockEngine.update(LockEngine.java:685)
            at
org.castor.persist.AbstractTransactionContext.markUpdate(AbstractTransaction
Context.java:913)
            at
org.castor.persist.AbstractTransactionContext.update(AbstractTransactionCont
ext.java:966)
            at
org.exolab.castor.jdo.engine.AbstractDatabaseImpl.update(AbstractDatabaseImp
l.java:337)




Do I have to add a cache with a specific name any where? Any specific
properties? Do I need to add anything in the castor.properties?
Can you please give me a hand?

Thanks a lot and best regards,
Gonzalo Abollado.

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to