Discussion:
idle-timeout-seconds - Interesting configuration
(too old to reply)
d***@gmail.com
2005-07-12 16:16:12 UTC
Permalink
Hi,

I am new to weblogic (currently using ver 8.1).

My requirement is to not to allow my stateful beans to passivate at all
and after some time-period of INACTIVITY(say a timeout) just remove
them from memory.

To achive this I used (though couldnt finalize yet) the following
interesting combination -


<weblogic-enterprise-bean>
<ejb-name>BeanName</ejb-name>

<stateful-session-descriptor>
<stateful-session-cache>
<max-beans-in-cache>TO_A_HIGH_VALUE</max-beans-in-cache>(set=100)
<idle-timeout-seconds>3600</idle-timeout-seconds>(1 hr)
<cache-type>NRU</cache-type>
</stateful-session-cache>
</stateful-session-descriptor>

<jndi-name>BeanJNDIname</jndi-name>
</weblogic-enterprise-bean>

The NRU documentation says so
(http://e-docs.bea.com/wls/docs81/ejb/DDreference-ejb-jar.html#1114380),
hence the above combination.

However, now the beans timeout after 3600 secs immaterial of whether
they were accessed just one secs before.. I would require them to
timeout with 3600 secs of inactivity and not after 3600 secs.

Any suggestions / other combinations etc would be of great help.
d***@gmail.com
2005-07-12 16:53:31 UTC
Permalink
again.. posting the exception at timeout - clearly wasnt what I wanted
:-(
its timing out and its serializing too !!

<Error> <HTTP Session> <BEA-100028> <Could not deserialize session
data.
java.lang.reflect.UndeclaredThrowableException
at $Proxy10.valueUnbound(Unknown Source)
at
weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.java:616)
at
weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.java:596)
at
weblogic.servlet.internal.session.SessionData.remove(SessionData.java:808)
at
weblogic.servlet.internal.session.MemorySessionContext.invalidateSession(MemorySessionContext.java:69)
at
weblogic.servlet.internal.session.SessionContext$InvalidationAction.run(SessionContext.java:613)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.session.SessionContext$SessionInvalidator.cleanupExpiredSessions(SessionContext.java:533)
at
weblogic.servlet.internal.session.SessionContext$SessionInvalidator.trigger(SessionContext.java:480)
at
weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:243)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:229)
at
weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:223)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

Caused by: java.rmi.NoSuchObjectException: Activation failed with:
java.rmi.NoSuchObjectException: The object identified
by: '560' could not be found. Either it was has not been exported or
it has been collected by the distributed garbage collector.


at
weblogic.rmi.internal.OIDManager.getServerReference(OIDManager.java:369)
at
weblogic.rmi.utils.io.RemoteObjectReplacer.getServerReference(RemoteObjectReplacer.java:277)
at
weblogic.rmi.utils.io.RemoteObjectReplacer.resolveObject(RemoteObjectReplacer.java:168)
at
weblogic.ejb20.swap.EJBReplacer.resolveObject(EJBReplacer.java:167)
at
weblogic.common.internal.ReplacerObjectInputStream.resolveObject(ReplacerObjectInputStream.java:73)
at
java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1321)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
at
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:452)
at weblogic.rmi.internal.StubInfo.readObject(StubInfo.java:116)
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
.....
....
KurupD
2005-07-18 18:08:18 UTC
Permalink
Hello..
I could figure out that my issue is not with the idle-timout-seconds
but with the web session timeout. It behaves exactly as described in
point 1 of this issue - (posted around 2001) -

http://groups-beta.google.com/group/weblogic.developer.interest.clustering.in-memory-replication/browse_thread/thread/a1581e9a9263666c/e5c759afb01c02a2?q=issues+with+weblogic+session+timeout&rnum=5&hl=en#e5c759afb01c02a2

The time out occurs soon after the timeout mentioned, even when i am
accessing them ..as if the session is not being touched at all. !!!
and Unfortunately there are no solutions posted !!

:-(

Loading...