I am having some troubles getting JDBC session persistance to work.   I have 
set up my Oracle DB and server.xml correctly (as I have verified that the 
session is indeed stored in the DB), but then after restarting tomcat, it 
appears that the session is not getting swapped in correctly. 

Here is a brief look at the logs:

During restart:

2005-07-07 13:49:57 JDBCStore[/app]: Saving Session 
76A744CB82C2236959A6AB456785AF13 to database tomcat_sessions

After restart, and hitting login page:

2005-07-07 13:52:37 JDBCStore[/app]: Loading Session 
76A744CB82C2236959A6AB456785AF13 from database tomcat_sessions
2005-07-07 13:52:37 PersistentManager[/app]: readObject() loading session 
76A744CB82C2236959A6AB456785AF13
2005-07-07 13:52:37 PersistentManager[/app]:   loading attribute 'CustomerInfo' 
with value '{customerId=0, companyName=null, contactName=null, address*=null, 
phone=null, fax=null, email=null, bitflags=0, createDate=null, modifyDate=null}'
2005-07-07 13:52:37 PersistentManager[/app]:   loading attribute 'UserInfo' 
with value '[EMAIL PROTECTED]'
2005-07-07 13:52:37 PersistentManager[/app]:   loading attribute 'UserLoggedIn' 
with value 'true'
2005-07-07 13:52:37 PersistentManager[/app]:   loading attribute 
'org.apache.struts.action.LOCALE' with value 'en_US'
2005-07-07 13:52:37 PersistentManager[/app]: Swapping session 
76A744CB82C2236959A6AB456785AF13 in from Store

But right after:
2005-07-07 13:52:37 JDBCStore[/app]: Removing Session 
76A744CB82C2236959A6AB456785AF13 at database tomcat_sessions
2005-07-07 13:52:37 JDBCStore[/app]: JDBCStore: No persisted data object found
2005-07-07 13:52:37 JDBCStore[/app]: JDBCStore: No persisted data object found
2005-07-07 13:52:37 JDBCStore[/app]: JDBCStore: No persisted data object found
2005-07-07 13:52:37 JDBCStore[/app]: JDBCStore: No persisted data object found


I am using Struts for the controller layer of this application.   In the 
RequestProcessor.processRoles, whenever an action is hit, this code is executed 
(facade is a session facade)

SessionFacade facade = new SessionFacade(request);

if (facade.getUserLoggedIn() != Boolean.TRUE){
            LOG.debug("user not logged in session");
            if(VALIDATE_SESSION.equals(mapping.getParameter())) {
                // If the attribute "parameter" of the action is specified as 
                // "validateSession", then forward the user back to the login
                // page
                LOG.debug("invalid session");
                HttpSession httpSession = request.getSession();
                httpSession.invalidate();
                ActionForward forwardConfig = 
                    (ActionForward) moduleConfig.findForwardConfig("login");
                processForwardConfig(request, response, forwardConfig);
                return false;
            }
        }

Looking at the struts log, we see that at the same time of the session swap:

2005-07-07 13:52:37,840 DEBUG [Thread-4] RequestProcessor processRoles 
(RequestProcessor.java:167) - user not logged in session
2005-07-07 13:52:37,864 DEBUG [Thread-4] RequestProcessor processRoles 
(RequestProcessor.java:172) - invalid session

It appears that the session is "removed" from the DB when invalidate() is 
called.  So apparently, even though the Manager thinks that the session has 
been swapped in, it does not appear to be that way.   Any suggestions?

Thanks!

-L

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to