6 Replies Latest reply on Nov 9, 2004 10:28 AM by Bela Ban

    Unexpected Error TreeCache in JMS ??

    joise joise Newbie


      Hello,
      I'm trying to instantiate TreeCacheMBean inside a MDB.
      all works fine but

      SOMETIMES
      console writes
      the following error : (is a configuration problem???).
      Put down error an configuration service xml ::

      error

      16:01:22,813 ERROR [CacheLoaderInterceptor] failed committing transaction to cache loader
      java.io.EOFException
      at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
      at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
      at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
      at java.io.ObjectInputStream.(ObjectInputStream.java:253)
      at org.jboss.cache.loader.FileCacheLoader.loadAttributes(FileCacheLoader.java:340)
      at org.jboss.cache.loader.FileCacheLoader.put(FileCacheLoader.java:94)
      at org.jboss.cache.loader.FileCacheLoader.put(FileCacheLoader.java:135)
      at org.jboss.cache.loader.FileCacheLoader.commit(FileCacheLoader.java:194)
      at org.jboss.cache.interceptors.CacheLoaderInterceptor$SynchronizationHandler.afterCompletion(CacheLoaderInterceptor.java:263)
      at org.jboss.tm.TransactionImpl.doAfterCompletion(TransactionImpl.java:1418)
      at org.jboss.tm.TransactionImpl.completeTransaction(TransactionImpl.java:1090)
      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:349)
      at org.jboss.tm.TxManager.commit(TxManager.java:200)
      at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:341)
      at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)
      at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
      at org.jboss.mq.SpySession.run(SpySession.java:347)
      at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
      at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
      at java.lang.Thread.run(Thread.java:534)

      Configuration mbean service


      <?xml version="1.0" encoding="UTF-8"?>

      <!-- ===================================================================== -->
      <!-- -->
      <!-- Sample TreeCache Service Configuration -->
      <!-- -->
      <!-- ===================================================================== -->






      <!-- ==================================================================== -->
      <!-- Defines TreeCache configuration -->
      <!-- ==================================================================== -->



      jboss:service=Naming
      jboss:service=TransactionManager

      <!--
      Configure the TransactionManager
      -->
      <!--org.jboss.cache.JBossTransactionManagerLookup
      -->

      <!--
      Node locking level : SERIALIZABLE
      REPEATABLE_READ (default)
      READ_COMMITTED
      READ_UNCOMMITTED
      NONE
      -->
      NONE

      <!--
      Valid modes are LOCAL
      REPL_ASYNC
      REPL_SYNC
      -->
      LOCAL


      <!--
      Just used for async repl: use a replication queue
      -->
      false

      <!--
      Replication interval for replication queue (in ms)
      -->
      60000

      <!--
      Max number of elements which trigger replication
      -->
      100


      <!-- Name of cluster. Needs to be the same for all clusters, in order
      to find each other
      -->
      TreeCache-Cluster

      <!-- JGroups protocol stack properties. Can also be a URL,
      e.g. file:/home/bela/default.xml

      -->


      <!-- 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="230.8.8.8" mcast_port="56677"
      ip_ttl="32" ip_mcast="true"
      mcast_send_buf_size="80000" mcast_recv_buf_size="150000"
      ucast_send_buf_size="80000" ucast_recv_buf_size="150000"
      loopback="false"/>
      <PING timeout="2000" num_initial_members="3"
      up_thread="false" down_thread="false"/>
      <MERGE2 min_interval="10000" max_interval="20000"/>
      <FD shun="true" up_thread="true" down_thread="true"/>
      <VERIFY_SUSPECT timeout="1500"
      up_thread="false" down_thread="false"/>
      <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
      max_xmit_size="8192" up_thread="false" down_thread="false"/>
      <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
      down_thread="false"/>
      <pbcast.STABLE desired_avg_gossip="20000"
      up_thread="false" down_thread="false"/>
      <FRAG frag_size="8192"
      down_thread="false" up_thread="false"/>
      <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
      shun="true" print_local_addr="true"/>
      <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>




      <!--
      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
      -->
      5000

      <!--
      Number of milliseconds to wait until all responses for a
      synchronous call have been received.
      -->
      10000

      <!-- Max number of milliseconds to wait for a lock acquisition -->
      15000


      <!-- Name of the eviction policy class. Not supported now. -->



      org.jboss.cache.loader.FileCacheLoader
      D:\resources\cachestore
      false
      /
      <!--
      false
      true
      -->




      <!-- Uncomment to get a graphical view of the TreeCache MBean above -->
      <!-- -->
      <!-- jboss.cache:service=TreeCache-->
      <!-- jboss.cache:service=TreeCache-->
      <!-- -->








        • 1. Unexpected Error TreeCache in JMS ??
          Bela Ban Master


          Hello,
          I'm trying to instantiate TreeCacheMBean inside a MDB.
          all works fine but

          SOMETIMES
          console writes
          the following error : (is a configuration problem???).
          Put down error an configuration service xml ::

          error

          16:01:22,813 ERROR [CacheLoaderInterceptor] failed committing transaction to cache loader
          java.io.EOFException
          at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
          at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
          at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
          at java.io.ObjectInputStream.(ObjectInputStream.java:253)
          at org.jboss.cache.loader.FileCacheLoader.loadAttributes(FileCacheLoader.java:340)
          at org.jboss.cache.loader.FileCacheLoader.put(FileCacheLoader.java:94)
          at org.jboss.cache.loader.FileCacheLoader.put(FileCacheLoader.java:135)
          at org.jboss.cache.loader.FileCacheLoader.commit(FileCacheLoader.java:194)
          at org.jboss.cache.interceptors.CacheLoaderInterceptor$SynchronizationHandler.afterCompletion(CacheLoaderInterceptor.java:263)
          at org.jboss.tm.TransactionImpl.doAfterCompletion(TransactionImpl.java:1418)
          at org.jboss.tm.TransactionImpl.completeTransaction(TransactionImpl.java:1090)
          at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:349)
          at org.jboss.tm.TxManager.commit(TxManager.java:200)
          at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:341)
          at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)
          at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
          at org.jboss.mq.SpySession.run(SpySession.java:347)
          at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
          at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
          at java.lang.Thread.run(Thread.java:534)

          Configuration mbean service


          <?xml version="1.0" encoding="UTF-8"?>

          <!-- ===================================================================== -->
          <!-- -->
          <!-- Sample TreeCache Service Configuration -->
          <!-- -->
          <!-- ===================================================================== -->






          <!-- ==================================================================== -->
          <!-- Defines TreeCache configuration -->
          <!-- ==================================================================== -->



          jboss:service=Naming
          jboss:service=TransactionManager

          <!--
          Configure the TransactionManager
          -->
          <!--org.jboss.cache.JBossTransactionManagerLookup
          -->

          <!--
          Node locking level : SERIALIZABLE
          REPEATABLE_READ (default)
          READ_COMMITTED
          READ_UNCOMMITTED
          NONE
          -->
          NONE

          <!--
          Valid modes are LOCAL
          REPL_ASYNC
          REPL_SYNC
          -->
          LOCAL


          <!--
          Just used for async repl: use a replication queue
          -->
          false

          <!--
          Replication interval for replication queue (in ms)
          -->
          60000

          <!--
          Max number of elements which trigger replication
          -->
          100


          <!-- Name of cluster. Needs to be the same for all clusters, in order
          to find each other
          -->
          TreeCache-Cluster

          <!-- JGroups protocol stack properties. Can also be a URL,
          e.g. file:/home/bela/default.xml

          -->


          <!-- 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="230.8.8.8" mcast_port="56677"
          ip_ttl="32" ip_mcast="true"
          mcast_send_buf_size="80000" mcast_recv_buf_size="150000"
          ucast_send_buf_size="80000" ucast_recv_buf_size="150000"
          loopback="false"/>
          <PING timeout="2000" num_initial_members="3"
          up_thread="false" down_thread="false"/>
          <MERGE2 min_interval="10000" max_interval="20000"/>
          <FD shun="true" up_thread="true" down_thread="true"/>
          <VERIFY_SUSPECT timeout="1500"
          up_thread="false" down_thread="false"/>
          <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
          max_xmit_size="8192" up_thread="false" down_thread="false"/>
          <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
          down_thread="false"/>
          <pbcast.STABLE desired_avg_gossip="20000"
          up_thread="false" down_thread="false"/>
          <FRAG frag_size="8192"
          down_thread="false" up_thread="false"/>
          <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
          shun="true" print_local_addr="true"/>
          <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>




          <!--
          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
          -->
          5000

          <!--
          Number of milliseconds to wait until all responses for a
          synchronous call have been received.
          -->
          10000

          <!-- Max number of milliseconds to wait for a lock acquisition -->
          15000


          <!-- Name of the eviction policy class. Not supported now. -->



          org.jboss.cache.loader.FileCacheLoader
          D:\resources\cachestore
          false
          /
          <!--
          false
          true
          -->




          <!-- Uncomment to get a graphical view of the TreeCache MBean above -->
          <!-- -->
          <!-- jboss.cache:service=TreeCache-->
          <!-- jboss.cache:service=TreeCache-->
          <!-- -->








          • 2. Re: Unexpected Error TreeCache in JMS ??
            Bela Ban Master

            Can you use another CacheLoader, e.g. BdbjeCacheLoader (you don't need a license unless you ship your app).
            This is probably a bug in FileCacheLoader, I'll have a look shortly.

            Bela

            • 3. Re: Unexpected Error TreeCache in JMS ??
              Bela Ban Master

              Can you remove all data and retry ? Maybe you have data written with an older version of FileCacheLoader ?

              Bela

              • 4. Re: Unexpected Error TreeCache in JMS ??
                joise joise Newbie

                 

                "bela" wrote:
                Can you remove all data and retry ? Maybe you have data written with an older version of FileCacheLoader ?

                Bela

                I am using the same version of FileCacheLoader write/read.

                Versions i'm using:
                jboss-4.0.0RC1
                jboss-cache Version 1.01 April, 2004

                Thank you in advance.

                • 5. Re: Unexpected Error TreeCache in JMS ??
                  Bela Ban Master

                  Can you turn this into a unit test (or just some *simple* sample code) that reproduces the problem ? I looked at the code, and it looked fine: simple serialization/deserialization of a hashmap.
                  Bela

                  • 6. Re: Unexpected Error TreeCache in JMS ??
                    joise joise Newbie

                     

                    "bela" wrote:
                    Can you turn this into a unit test (or just some *simple* sample code) that reproduces the problem ? I looked at the code, and it looked fine: simple serialization/deserialization of a hashmap.
                    Bela


                    Hi Bela i add the full error and code :

                    FULL ERROR


                    18:15:54,081 ERROR [LogInterceptor] TransactionRolledbackLocalException in method: public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message), causedBy:
                    org.jboss.util.NestedRuntimeException: - nested throwable: (java.io.EOFException)
                    at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:3184)
                    at org.jboss.cache.TreeCache.put(TreeCache.java:1741)
                    at org.jboss.cache.TreeCache.put(TreeCache.java:1724)
                    at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    at java.lang.reflect.Method.invoke(Method.java:324)
                    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
                    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
                    at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
                    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:230)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
                    at $Proxy80.put(Unknown Source)
                    at com.qnecta.tdi.server.servicio.treecache.impl.mbean.TreeCacheMBeanJBoss.incrementaContador(TreeCacheMBeanJBoss.java:85)
                    at com.qnecta.tdi.server.servicio.analisiscalidad.impl.mdb.AnalisisCalidadMDB.onMessage(AnalisisCalidadMDB.java:145)
                    at sun.reflect.GeneratedMethodAccessor83.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    at java.lang.reflect.Method.invoke(Method.java:324)
                    at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
                    at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475)
                    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
                    at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:87)
                    at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
                    at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
                    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
                    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149)
                    at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:93)
                    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
                    at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
                    at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)
                    at org.jboss.ejb.Container.invoke(Container.java:871)
                    at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:920)
                    at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1213)
                    at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)
                    at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)
                    at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
                    at org.jboss.mq.SpySession.run(SpySession.java:347)
                    at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
                    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
                    at java.lang.Thread.run(Thread.java:534)
                    Caused by: java.io.EOFException
                    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
                    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
                    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
                    at java.io.ObjectInputStream.(ObjectInputStream.java:253)
                    at org.jboss.cache.loader.FileCacheLoader.loadAttributes(FileCacheLoader.java:340)
                    at org.jboss.cache.loader.FileCacheLoader.put(FileCacheLoader.java:94)
                    at org.jboss.cache.interceptors.CacheLoaderInterceptor.invoke(CacheLoaderInterceptor.java:72)
                    at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:3181)
                    ... 39 more
                    18:15:54,091 ERROR [JMSContainerInvoker] Exception in JMSCI message listener
                    javax.ejb.TransactionRolledbackLocalException: - nested throwable: (java.io.EOFException); CausedByException is:
                    - nested throwable: (java.io.EOFException)
                    at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:232)
                    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
                    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149)
                    at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:93)
                    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
                    at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
                    at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)
                    at org.jboss.ejb.Container.invoke(Container.java:871)
                    at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:920)
                    at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1213)
                    at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)
                    at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)
                    at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
                    at org.jboss.mq.SpySession.run(SpySession.java:347)
                    at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
                    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
                    at java.lang.Thread.run(Thread.java:534)
                    org.jboss.util.NestedRuntimeException: - nested throwable: (java.io.EOFException)
                    at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:3184)
                    at org.jboss.cache.TreeCache.put(TreeCache.java:1741)
                    at org.jboss.cache.TreeCache.put(TreeCache.java:1724)
                    at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    at java.lang.reflect.Method.invoke(Method.java:324)
                    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
                    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
                    at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
                    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:230)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
                    at $Proxy80.put(Unknown Source)
                    at com.qnecta.tdi.server.servicio.treecache.impl.mbean.TreeCacheMBeanJBoss.incrementaContador(TreeCacheMBeanJBoss.java:85)
                    at com.qnecta.tdi.server.servicio.analisiscalidad.impl.mdb.AnalisisCalidadMDB.onMessage(AnalisisCalidadMDB.java:145)
                    at sun.reflect.GeneratedMethodAccessor83.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    at java.lang.reflect.Method.invoke(Method.java:324)
                    at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
                    at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475)
                    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
                    at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:87)
                    at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
                    at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
                    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
                    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149)
                    at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:93)
                    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
                    at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
                    at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)
                    at org.jboss.ejb.Container.invoke(Container.java:871)
                    at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:920)
                    at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1213)
                    at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)
                    at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)
                    at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
                    at org.jboss.mq.SpySession.run(SpySession.java:347)
                    at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
                    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
                    at java.lang.Thread.run(Thread.java:534)
                    Caused by: java.io.EOFException
                    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
                    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
                    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
                    at java.io.ObjectInputStream.(ObjectInputStream.java:253)
                    at org.jboss.cache.loader.FileCacheLoader.loadAttributes(FileCacheLoader.java:340)
                    at org.jboss.cache.loader.FileCacheLoader.put(FileCacheLoader.java:94)
                    at org.jboss.cache.interceptors.CacheLoaderInterceptor.invoke(CacheLoaderInterceptor.java:72)
                    at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:3181)
                    ... 39 more

                    BASIC CODE


                    MDB

                    /*
                     * Created on 06-nov-2004
                     *
                     * TODO To change the template for this generated file go to
                     * Window - Preferences - Java - Code Style - Code Templates
                     */
                    package com.qnecta.tdi.server.servicio.analisiscalidad.impl.mdb;
                    
                    import javax.ejb.EJBException;
                    import javax.ejb.MessageDrivenBean;
                    import javax.ejb.MessageDrivenContext;
                    import javax.jms.JMSException;
                    import javax.jms.Message;
                    import javax.jms.MessageListener;
                    import javax.jms.ObjectMessage;
                    
                    import com.qnecta.tdi.base.modelo.beans.llamada.CLlamada;
                    import com.qnecta.tdi.base.servicio.treecache.IServicioTreeCache;
                    import com.qnecta.tdi.base.servicio.treecache.LSCacheAtributos;
                    import com.qnecta.tdi.base.servicio.treecache.LSCacheFQN;
                    import com.qnecta.tdi.server.servicio.treecache.impl.mbean.TreeCacheMBeanJBoss;
                    
                    /**
                     * @author Jose Manuel
                     *
                     * TODO To change the template for this generated type comment go to
                     * Window - Preferences - Java - Code Style - Code Templates
                     */
                    
                    /**
                     * XDoclet-based message driven bean. The class must be declared
                     * <code>public</code>, according to the EJB specification.<br>
                     *
                     * To generate code:
                     * <br>
                     * <ul>
                     * <li> Add Standard EJB module to XDoclet project properties
                     * <li> Customize XDoclet configuration
                     * <li> Run XDoclet
                     * </ul>
                     * <br>
                     * Please see the included XDoclet Overview
                     * and the XDoclet Reference in the help system for details
                     *
                     * @ejb.bean name = "HolaMundoMDB"
                     * display-name = "HolaMundoMDB"
                     * description = "HolaMundoMDB EJB"
                     * jndi-name = "jms/HolaMundoMDB"
                     */
                    public class AnalisisCalidadMDB implements MessageDrivenBean, MessageListener {
                    
                     private IServicioTreeCache treeCache = null;
                     /** The MessageDrivenContext */
                     private MessageDrivenContext context;
                    
                     /**
                     * An <code>ejbCreate</code> method as required by the EJB specification. <br>
                     *
                     * The container calls the instance’s <code>ejbCreate</code> method
                     * immediately after instantiation.
                     *
                     * @ejb.create-method
                     */
                     public void ejbCreate() {
                     //Creamos una referencia a la cache
                     treeCache = new TreeCacheMBeanJBoss("jboss.cache:service=TreeCache");
                     }
                    
                     /**
                     * The <code>ejbRemove()</code> method as required by the EJB specification.<br>
                     *
                     * A container invokes this method before it ends the life of the
                     * object. This happens as a result of a client's invoking
                     * a remove operation, or when a container decides to terminate the
                     * object after a timeout. <br>
                     *
                     * This method is called with no transaction context.
                     *
                     * @throws EJBException Thrown if the instance could not perform
                     * the function requested by the container because of an system-level error.
                     */
                     public void ejbRemove() throws EJBException {
                     }
                    
                     /**
                     * Set the associated context. The container calls this method
                     * after the instance creation. <br>
                     *
                     * The enterprise bean instance should store the reference to the context
                     * object in an instance variable. <br>
                     *
                     * This method is called with no transaction context.
                     *
                     * @param newContext A MessageDrivenContext interface for the instance.
                     *
                     * @throws EJBException Thrown by the method to indicate a failure caused by a system-level error.
                     */
                     public void setMessageDrivenContext(MessageDrivenContext newContext)
                     throws EJBException {
                     context = newContext;
                     }
                    
                     /**
                     * Process a message. <br>
                     *
                     * @param message The message to process.
                     */
                     public void onMessage(Message message) {
                    
                     CLlamada llamada = null;
                     if (message instanceof ObjectMessage) {
                     ObjectMessage objectMessage = (ObjectMessage)message;
                     try {
                     llamada = (CLlamada) objectMessage.getObject();
                     } catch (JMSException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }
                     System.out.println("MESSAGE BEAN: Message received: "
                     + llamada);
                    
                     //Vemos si el numeroB de la llamada aparece aparece en el control de calidad
                     StringBuffer fqnNum = new StringBuffer();
                     fqnNum.append("/");
                     fqnNum.append(LSCacheFQN.NUMERACIONES);
                     fqnNum.append("/");
                     fqnNum.append(llamada.getNumeroB());
                    
                     String idGrupo = (String)treeCache.get(fqnNum.toString(),LSCacheAtributos.ID_GRUPO);
                    
                     if(idGrupo!=null){
                    
                     System.out.println("Control de Calidad:::INCLUIDA");
                     //Si es asi obtenemos el idGrupo y actualizamos los contadores
                     StringBuffer fqnGrp = new StringBuffer();
                     fqnGrp.append("/");
                     fqnGrp.append(LSCacheFQN.GRUPOS_NUMERACIONES);
                     fqnGrp.append("/");
                     fqnGrp.append(idGrupo);
                    
                     //Actualizamos los contadores
                     Integer numeroLLamadas = (Integer)treeCache.get(fqnGrp.toString(),LSCacheAtributos.NUM_LLAMADAS);
                     numeroLLamadas = new Integer(numeroLLamadas.intValue()+1);
                    
                     treeCache.incrementaContador(fqnGrp.toString(),LSCacheAtributos.NUM_LLAMADAS);
                    
                     if(llamada.isCompletada()){
                     treeCache.incrementaContador(fqnGrp.toString(),LSCacheAtributos.NUM_LLAMADAS_COMPLETADAS);
                     }
                     if(llamada.getDuracion()/1000 > 10){
                     treeCache.incrementaContador(fqnGrp.toString(),LSCacheAtributos.NUM_LLAMADAS_COMPLETADAS10);
                     }
                    
                     }else{
                     System.out.println("Control de Calidad:::EXCLUIDA");
                     }
                    
                    
                    
                     } else {
                     System.out.println("Message of wrong type: "
                     + message.getClass().getName());
                     }
                     }
                    }
                    


                    HELPER CLASSES

                    /*
                     * Created on 08-nov-2004
                     *
                     * TODO To change the template for this generated file go to
                     * Window - Preferences - Java - Code Style - Code Templates
                     */
                    package com.qnecta.tdi.server.servicio.treecache.impl.mbean;
                    
                    import javax.management.MBeanServer;
                    import javax.management.MalformedObjectNameException;
                    
                    import org.jboss.cache.TreeCacheMBean;
                    import org.jboss.cache.lock.LockingException;
                    import org.jboss.cache.lock.TimeoutException;
                    import org.jboss.mx.util.MBeanProxyExt;
                    import org.jboss.mx.util.MBeanServerLocator;
                    
                    import com.qnecta.tdi.base.servicio.treecache.IServicioTreeCache;
                    
                    /**
                     * @author Jose Manuel
                     *
                     * TODO To change the template for this generated type comment go to
                     * Window - Preferences - Java - Code Style - Code Templates
                     */
                    public class TreeCacheMBeanJBoss implements IServicioTreeCache{
                    
                    
                     TreeCacheMBean treeCache;
                    
                     public TreeCacheMBeanJBoss(String nombreServicio){
                     //jboss.cache:service=TreeCache
                     MBeanServer serverMBean = MBeanServerLocator.locate();
                     try {
                     treeCache =(TreeCacheMBean)MBeanProxyExt.create(TreeCacheMBean.class, nombreServicio, serverMBean);
                     } catch (MalformedObjectNameException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }
                    
                    
                     }
                     /* (non-Javadoc)
                     * @see com.qnecta.tdi.base.interfaces.cache.ITreeCache#put(java.lang.String, java.lang.Object)
                     */
                     public void put(String fqn, Object atributo,Object valor) {
                    
                     try {
                     treeCache.put(fqn,atributo,valor);
                     } catch (LockingException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     } catch (TimeoutException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }
                    
                     }
                    
                     /* (non-Javadoc)
                     * @see com.qnecta.tdi.base.interfaces.cache.ITreeCache#get(java.lang.String)
                     */
                     public Object get(String fqn,Object atributo) {
                    
                     Object valor = null;
                    
                     try {
                     valor = treeCache.get(fqn,atributo);
                     } catch (LockingException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     } catch (TimeoutException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }
                    
                     return valor;
                    
                     }
                    
                     public void incrementaContador(String fqn, Object atributo) {
                     try {
                     Integer valorContador = (Integer)treeCache.get(fqn,atributo);
                     valorContador = new Integer(valorContador.intValue()+1);
                     treeCache.put(fqn,atributo,valorContador);
                     System.out.println("*****__"+fqn+"/@"+atributo+"="+valorContador);
                    
                     } catch (LockingException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     } catch (TimeoutException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }
                    
                     }
                    
                    }
                    


                    thanks a lot