Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Weblogic 8.1 throws BEA-010024 exception during passivation of stateless session bean

2 views
Skip to first unread message

sheshi sankineni

unread,
May 26, 2004, 1:08:06 AM5/26/04
to

Hi All,

I was trying out an example of stateful session bean (from book Mastering Enterprise
JavaBeans) and ran into the a weblogic exception during ejbPassivate of a stateful
session bean.

I set the max-beans-in-cache to 5 and was trying to create stateful session beans
from the client using Home.create 10 times and call a method on the stateful bean
in a loop. What I observered is during the creation of 8th stateful session bean
weblogic is passivating existing beans (due to max beans in cache reached) and
hit into an exception.

I have 2 questions.

1. My understanding is that when we set max-beans-in-cache to 5 I would expect
weblogic to call ejbPassivate on the 6th bean creation. Is this a correct behavior
?

2. Why is weblogic failed to passivate the bean ??

Any help would be greatly appreciated

thanks

-sheshi

Here is the trace on the weblogic console

setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
count()
setSessionContext()
ejbCreate()
ejbPassivate()
<May 25, 2004 9:57:19 PM PDT> <Error> <EJB> <BEA-010024> <Error occurred during
passivation: java.io.NotSerializableException: javax.naming.InitialContext
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
:1330)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
02)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at weblogic.ejb20.swap.PassivationUtils.write(PassivationUtils.java:94)
at weblogic.ejb20.swap.DiskSwap.write(DiskSwap.java:214)
at weblogic.ejb20.manager.StatefulSessionManager.swapOut(StatefulSession
Manager.java:1051)
at weblogic.ejb20.cache.NRUCache.moveInActiveToFree(NRUCache.java:550)
at weblogic.ejb20.cache.NRUCache.reclaimNodes(NRUCache.java:578)
at weblogic.ejb20.cache.NRUCache.getFreeNode(NRUCache.java:238)
at weblogic.ejb20.cache.NRUCache.put(NRUCache.java:318)
at weblogic.ejb20.manager.StatefulSessionManager.create(StatefulSessionM
anager.java:844)
at weblogic.ejb20.manager.StatefulSessionManager.remoteCreate(StatefulSe
ssionManager.java:880)
at weblogic.ejb20.internal.StatefulEJBHome.create(StatefulEJBHome.java:1
33)
at examples.Count_zecfu8_HomeImpl.create(Count_zecfu8_HomeImpl.java:110)

at examples.Count_zecfu8_HomeImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

thorick

unread,
May 28, 2004, 10:19:44 PM5/28/04
to

It looks like your Stateful Bean has at least one field that is not serializable.
This field needs to be handled wrt passivation.

-thorick


0 new messages