The user is losting the session during the navigation and it's redirected to the logi

The user is losting the session during the navigation and it's redirected to the logi

  

I have problems with the user login session, The user is losting the session during the navigation and it's redirected to the login page


There is 6 servers into the same virtual IP on the enviroment

There is an alias that balances between those.


When this error happens, a given user that was logged on the affected server, got stuck into that one.

If he F5 the screen nothing happens, when he input the user/pass the screen blinks and the screen refresh


Then the user get back to the login screen. Without any visual error.  That's what an affected user will see.


This happens for Service Center login screen and also for ower application. Both will present the same behavior.


I think this problem can be a issue of how the platform store the user session and this problem is happening in all applications, including the Service Center.

The user session is stored in the internal tables ASPSTATETEMPSESSIONS, ASPSTATETEMPAPPLICATIONS and ASPSTATETEMPSESSIONSEXTVARS

We need to know more how the platform store this session to investigate this case.


I had done debug at production. The Session Value was empty. So the redirect page was done to same page.

It is exactly behavior the application and the Service Center.


This happens sometimes and them the issue clear by itself.


Today with higher volume this has already affected 2 servers.


when the servers are restarted they got back to normal.


So at this moment we aren’t facing issues but this is a recurrent situation.



Does anyone knows how can be the problem ? why the aplication lost the user session

unexpectedly ?



Thanks

If I'm not mistaken, the session mechanisms used by the OutSystems platform are exactly those used by ASP.NET. You can read about them on MSDN( https://msdn.microsoft.com/en-us/library/ms178581.aspx ).

Your issue being intermittent makes it hard to figure out.

Are you sure losing the session is random? Couldn't it be some screen or action that is logging the user out, doing a "tenant switch" (which clears the session), deleting the session cookie, redirecting to another domain, or something along those lines? All of the things I listed will cause a user to lose the session.

Since you have a load balancer, am i right to assume the users are always in the same domain when navigating through your application? Because sessions are tied to the domain.

Solution

Thanks for your help João Pedro, 


Today we had the same problem, but at this time we got a log message with the error bellow and we the problem is the open cursors , we'll check what's happen


thank you


/RedirectToHome.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@7672ace4]


13:42:07,436 INFO  [stdout] (http-/0.0.0.0:8443-444) XYZ-INICIO


13:42:07,437 INFO  [stdout] (http-/0.0.0.0:8443-444) XYZ-ConsultaBureau()


13:42:07,437 INFO  [stdout] (http-/0.0.0.0:8443-444) XYZ-ConsultaBureau()


13:42:07,437 INFO  [stdout] (http-/0.0.0.0:8443-444) XYZ-ConsultaBureau()


13:42:07,989 INFO  [stdout] (http-/0.0.0.0:8443-444) XYZ-Fim


13:42:09,581 ERROR [stderr] (http-/0.0.0.0:8080-213) java.sql.SQLException: ORA-01000: maximum open cursors exceeded


13:42:09,581 ERROR [stderr] (http-/0.0.0.0:8080-213) ORA-06512: at "T1_OS_STATE_O.TEMPCREATEORUPDATESTATEITEM", line 24


13:42:09,581 ERROR [stderr] (http-/0.0.0.0:8080-213) ORA-06512: at line 1


13:42:09,581 ERROR [stderr] (http-/0.0.0.0:8080-213)


13:42:09,582 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)


13:42:09,582 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)


13:42:09,582 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)


13:42:09,582 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)


13:42:09,583 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)


13:42:09,583 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)


13:42:09,583 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:204)


13:42:09,583 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1007)


13:42:09,583 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)


13:42:09,583 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)


13:42:09,584 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657)


13:42:09,584 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.OracleCallableStatement.executeUpdate(OracleCallableStatement.java:4739)


13:42:09,584 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)


13:42:09,584 ERROR [stderr] (http-/0.0.0.0:8080-213)    at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source)


13:42:09,584 ERROR [stderr] (http-/0.0.0.0:8080-213)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)


13:42:09,584 ERROR [stderr] (http-/0.0.0.0:8080-213)    at java.lang.reflect.Method.invoke(Method.java:597)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.ucp.jdbc.proxy.StatementProxyFactory.invoke(StatementProxyFactory.java:272)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:138)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:104)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at com.sun.proxy.$Proxy154.executeUpdate(Unknown Source)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.runtimeplatform.db.DbCommand.execute(Unknown Source)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.runtimeplatform.sessionstate.OutSystemsSession.save(Unknown Source)


13:42:09,585 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.http.OSRequest.dispose(Unknown Source)


13:42:09,586 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.http.OSRequest.dispose(Unknown Source)


13:42:09,586 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.http.o.executeImpl(Unknown Source)


13:42:09,586 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.util.delegates.Action$Action0.execute(Unknown Source)


13:42:09,586 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.http.HttpContext.endRequest(Unknown Source)


13:42:09,586 ERROR [stderr] (http-/0.0.0.0:8080-213)    at outsystems.hubedition.webwidgets.filters.HttpContextFilter.doFilter(Unknown Source)


13:42:09,586 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)


13:42:09,587 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)


13:42:09,587 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)


13:42:09,587 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)


13:42:09,587 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)


13:42:09,587 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)


13:42:09,587 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:559)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)


13:42:09,588 ERROR [stderr] (http-/0.0.0.0:8080-213)    at java.lang.Thread.run(Thread.java:682)


 



Solution