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

http session persistence bug

26 views
Skip to first unread message

pathreya

unread,
Aug 29, 2001, 4:07:01 PM8/29/01
to

Hello All,

The following is our weblogic config:

Version: weblogic 6.0sp2 on solaris 8
Patches applied: CR049234_60_sp2.jar that fixes a bug in jdbc session persistence
Config: One instance hosting JSP pages and servlets talking to another instance
that hosts EJBs.

We're using jdbc for http session persistence. We're running into the exception
below that
occurs, whenever we clear all cookies on the client browser and try to hit a certain
JSP page, resulting in
a 500 error on the client. If the page in question is reloaded, the exception
does not occur.
The exception occurs when we try to store a string in the session. Upon looking
at the values stored in
the session via a debug jsp page, all values appear to be there after the reload,
which leads us to
think that the NotSerializableException is not due to something that we're trying
to store in the
session. If we switch to memory based session persistence, the problem goes away.
Has anyone seen
this before?

Any help on the above will be greatly appreciated,
Thanks,
Prahlad.

-------------------- Stack trace-------------------
ScreenFlowManager caught loading handler: weblogic.utils.NestedRuntimeException
- with nested exception:
[javax.servlet.ServletException: Could not serialize attributes to update session
O40FqD5mkWLshJOkUTszEsYJ0OFYdo9Ur5YbBzP6ZIUHoakyC4
NY:
java.io.NotSerializableException: weblogic.servlet.internal.WebAppServletContext
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1148)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1841)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1214)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1841)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1214)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at weblogic.utils.UnsyncHashtable.writeExternal(UnsyncHashtable.java:407)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at weblogic.servlet.internal.session.JDBCSessionData.serializeAttributes(JDBCSessionData.java:370)
at weblogic.servlet.internal.session.JDBCSessionData.dbUpdate(JDBCSessionData.java:235)
at weblogic.servlet.internal.session.JDBCSessionData.removeAttribute(JDBCSessionData.java:504)
at weblogic.servlet.internal.session.SessionData.removeValue(SessionData.java:156)
at weblogic.servlet.internal.session.SessionData.setAttribute(SessionData.java:249)
at weblogic.servlet.internal.session.JDBCSessionData.setAttribute(JDBCSessionData.java:478)
at com.cis.lodging.common.control.web.handlers.ExtClickFlowHandler.processFlow(ExtClickFlowHandler.java:32)
at com.cis.lodging.common.control.web.ScreenFlowManager.getNextScreen(ScreenFlowManager.java:235)
at com.cis.lodging.common.control.web.MainServlet.doProcess(MainServlet.java:150)
at com.cis.lodging.common.control.web.MainServlet.doGet(MainServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
]
ScreenFlowManager: using screen = HOME
MainServlet: got ScreenFlowManager
<Aug 29, 2001 11:09:28 AM EDT> <Error> <HTTP> <[WebAppServletContext(4243174,SomeWebApp)]
Servlet failed with Exception
java.lang.IllegalStateException: HttpSession is invalid
at weblogic.servlet.internal.session.JDBCSessionData.getAttribute(JDBCSessionData.java:420)
at com.cis.lodging.common.util.JSPUtil.getLocale(JSPUtil.java:147)
at com.cis.lodging.common.control.web.MainServlet.doGet(MainServlet.java:129)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
<Aug 29, 2001 11:09:28 AM EDT> <Error> <Kernel> <ExecuteRequest failed
java.lang.IllegalStateException: HttpSession is invalid
at weblogic.servlet.internal.session.JDBCSessionData.getAttribute(JDBCSessionData.java:420)
at weblogic.servlet.internal.session.SessionData.getValue(SessionData.java:134)
at weblogic.servlet.internal.ServletRequestImpl.getRemoteUser(ServletRequestImpl.java:814)
at weblogic.servlet.logging.CLFLogger.log(CLFLogger.java:60)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:293)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:670)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:851)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1636)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>


Cameron Purdy

unread,
Aug 30, 2001, 1:42:55 PM8/30/01
to
That could be due to the avoidance of setAttribute when you update the
session ... you may just be calling getAttribute and changing some inner
value of that returned object ... which may work differently between JDBC
serialization and in-mem rep.

Peace,

--
Cameron Purdy
Tangosol Inc.
<< Tangosol Server: How Weblogic applications are customized >>
<< Download now from http://www.tangosol.com/download.jsp >>


"pathreya" <prahlad...@cendant.com> wrote in message
news:3b8d3d55$1...@newsgroups.bea.com...

Vinod Mehra

unread,
Sep 5, 2001, 2:19:09 PM9/5/01
to
This seems like a known problem (CR049234). Fix available 60SP2 (Rolling Patch 1).

--Vinod.

0 new messages