[jboss-user] [JBoss Cache: Core Edition] - CacheException while getting object from CacheLoader

cacheuser do-not-reply at jboss.com
Fri Jul 25 15:20:10 EDT 2008


I am writing an object to the cache that I get  as a response from a soap call (using apache axis). The object implements Serializable and are auto generated using the wsdl.  While reading the object (using get ) back from the cacheloader (jbdc) I get CacheException. As long as the object is in memory there is no problem getting the object but ones it is evicted from the memory and I try to read it back the exception shows

2008-07-24 18:38:00,589 [WARN ] IdentityPro RefID: '30d0d0e3-6fd1-40a3-af07-b811a74634ad' cns.reports.identity.IdentityReport.reportProcess(IdentityReport.java:150) - java.io.StreamCorruptedException (AIBR)
org.jboss.cache.CacheException: java.io.StreamCorruptedException
        at org.jboss.cache.invocation.AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:135)
        at org.jboss.cache.invocation.AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:64)
        at org.jboss.cache.invocation.CacheInvocationDelegate.get(CacheInvocationDelegate.java:387)
        at org.jboss.cache.invocation.CacheInvocationDelegate.get(CacheInvocationDelegate.java:392)
        at cns.reports.identity.data.test.soap.WsDataServiceSoapStub.bpsReport(WsAccurintServiceSoapStub.java:10020)
        at cns.reports.identity.data.test.BpsReport.call(BpsReport.java:87)
        at cns.reports.identity.IdentityReport.reportProcess(IdentityReport.java:143)
        at cns.reports.identity.IdentityReport.doReport(IdentityReport.java:219)
        at cns.reports.features.callable.ReportCall$ReportCallable.call(ReportCall.java:154)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
        at java.util.concurrent.FutureTask.run(FutureTask.java:123)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.StreamCorruptedException
        at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1378)
        at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:634)
        at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:789)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1534)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        at org.jboss.cache.marshall.MarshalledValue.deserialize(MarshalledValue.java:80)
        at org.jboss.cache.marshall.MarshalledValue.get(MarshalledValue.java:147)
        at org.jboss.cache.interceptors.MarshalledValueInterceptor.invoke(MarshalledValueInterceptor.java:79)
        at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
        at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:456)
        at org.jboss.cache.interceptors.TxInterceptor.handleGetKeyValueMethod(TxInterceptor.java:250)
        at org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:84)
        at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
        at org.jboss.cache.interceptors.CacheMgmtInterceptor.handleGetKeyValueMethod(CacheMgmtInterceptor.java:81)
        at org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:84)
        at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
        at org.jboss.cache.interceptors.InvocationContextInterceptor.invoke(InvocationContextInterceptor.java:73)
        at org.jboss.cache.invocation.AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:123)
        ... 13 more
 
My Cache config is as follows (i did not know if there is xml2bbcode so I changed the < to [). I am using jbosscache-core-2.1.1.GA.

[?xml version="1.0" encoding="UTF-8"?]

[!-- ===================================================================== --]
[!--                                                                       --]
[!--  Sample JBoss Cache Service Configuration                             --]
[!--                                                                       --]
[!-- ===================================================================== --]

[server]
   
   [!-- ==================================================================== --]
   [!-- Defines JBoss Cache configuration                                      --]
   [!-- ==================================================================== --]
   
  
[!-- 
   [mbean code="org.jboss.cache.TreeCache"
        name="jboss.cache:service=TreeCache"]
--]
	 [mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
	          name="jboss.ujjwalcache:service=Cache"]


	 [attribute name="IsolationLevel"]REPEATABLE_READ[/attribute]

      [!-- Lock parent before doing node additions/removes --]
      [attribute name="LockParentForChildInsertRemove"]true[/attribute]

      [!-- Valid modes are LOCAL (default)
                           REPL_ASYNC
                           REPL_SYNC
                           INVALIDATION_ASYNC
                           INVALIDATION_SYNC   --]
      [attribute name="CacheMode"]LOCAL[/attribute]

      [!-- Name of cluster. Needs to be the same for all JBoss Cache nodes in a
           cluster in order to find each other. 
      --]
      [attribute name="ClusterName"]JBossCache-Cluster[/attribute]

      [attribute name="ClusterConfig"]
         [config]
            [!-- 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="228.1.2.3" mcast_port="48866"
                 ip_ttl="64" ip_mcast="true"
                 mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
                 ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
                 loopback="false"/]
            [PING timeout="2000" num_initial_members="3"/]
            [MERGE2 min_interval="10000" max_interval="20000"/]
            [FD shun="true"/]
            [FD_SOCK/]
            [VERIFY_SUSPECT timeout="1500"/]
            [pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800" /]
            [UNICAST timeout="600,1200,2400,4800" /]
            [pbcast.STABLE desired_avg_gossip="400000"/]
            [FC max_credits="2000000" min_threshold="0.10"/]
            [FRAG2 frag_size="8192"/]
            [pbcast.GMS join_timeout="5000" shun="true" print_local_addr="true"/]
            [pbcast.STATE_TRANSFER/]
         [/config]
      [/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="StateRetrievalTimeout"]20000[/attribute]

      [!--
          Number of milliseconds to wait until all responses for a
          synchronous call have been received.
      --]
      [attribute name="SyncReplTimeout"]20000[/attribute]

      [!-- Max number of milliseconds to wait for a lock acquisition --]
      [attribute name="LockAcquisitionTimeout"]15000[/attribute]

      [!-- Shutdown hook behavior.  Valid choices are: DEFAULT, REGISTER and DONT_REGISTER.
           If this element is omitted, DEFAULT is used.  --]
      [attribute name="ShutdownHookBehavior"]DEFAULT[/attribute]

      [!-- Enables or disables lazy unmarshalling.  If omitted, the default is that lazy unmarshalling is enabled. --]
      [attribute name="UseLazyDeserialization"]true[/attribute]      

      [!-- Specific eviction policy configurations. This is LRU --]
      [attribute name="EvictionPolicyConfig"]
         [config]
            [attribute name="wakeUpIntervalSeconds"]60[/attribute]
            [!-- This defaults to 200000 if not specified --]
            [attribute name="eventQueueSize"]200000[/attribute]
         
            [attribute name="policyClass"]org.jboss.cache.eviction.LRUPolicy[/attribute]
		
			 
            [!-- Cache wide default --]
             [region name="/mycache"]
               [attribute name="maxNodes"]5[/attribute]
               [attribute name="maxAgeSeconds"]60[/attribute]
               [attribute name="timeToLiveSeconds"]60[/attribute]
            [/region]
  
         [/config]
      [/attribute]
      
            [!-- Cache Passivation for Tree Cache
      On pasivation, The objects are written to the backend store on eviction if CacheLoaderPassivation
      is true, otheriwse the objects are persisted.
      On activation, the objects are restored in the memory cache and removed from the cache loader
      if CacheLoaderPassivation is true, otherwise the objects are only loaded from the cache loader --]
      [attribute name="CacheLoaderConfig"]
         [config]
            [!-- if passivation is true, only the first cache loader is used; the rest are ignored --]
            [passivation]false[/passivation]
            [preload]/mycache[/preload]
            [shared]true[/shared]

            [!-- we can now have multiple cache loaders, which get chained --]
            [cacheloader]
               [class]org.jboss.cache.loader.JDBCCacheLoader[/class]
               [!-- same as the old CacheLoaderConfig attribute --]
               [properties]
                  cache.jdbc.table.name=jbosscachenew
                  cache.jdbc.table.create=true
                  cache.jdbc.table.drop=false
                  cache.jdbc.table.primarykey=jbosscachenew_pk
                  cache.jdbc.fqn.column=fqn
                  cache.jdbc.fqn.type=varchar(255)
                  cache.jdbc.node.column=node
                  cache.jdbc.node.type=blob
                  cache.jdbc.parent.column=parent
                  cache.jdbc.driver=com.mysql.jdbc.Driver
                  cache.jdbc.url=jdbc:mysql://testdb3:3315/GIS_DEV
                  cache.jdbc.user=gis
                  cache.jdbc.password=tester
                  cache.jdbc.sql-concat=concat(1,2)
               [/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]
               [!-- if set to true, purges the contents of this cache loader when the cache starts up.
           Defaults to false.  --]
               [purgeOnStartup]false[/purgeOnStartup]
            [/cacheloader]
         [/config]
      [/attribute]
      
   [/mbean]
[/server]



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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4166744



More information about the jboss-user mailing list