users@glassfish.java.net

Session Failover if availability is enabled for Application-Http Session

From: <glassfish_at_javadesktop.org>
Date: Tue, 25 Aug 2009 03:14:13 PDT

Hi,

I am using glassfish server for highavailability of application. I have tried this with the following three builds of glassfish.Problem occured for all the builds.
1. Sun GlassFish Enterprise Server v2.1 (9.1.1) (build b17-fcs)
2. Sun GlassFish Enterprise Server v2.1 (9.1.1) (build b60e-fcs)
3. Sun GlassFish Enterprise Server v2.1 Patch02 (9.1_02 Patch08) (build b02-p02).
 
Please find the below scenario.
1. Have created cluster configured with in-memory replication.Cluster is created in the same machine with two instances and accessed via load balancer from the other machine.
2. Deployed application with the availability checked.
3. Accessed the application,everytime i am able to login into the application but after that i am not able to browse the application.Session is becoming null. And this is not occuring eveytime but happens quiet frequently. Seems session id is destroying in the session store. I guess httpsession store is failing frequently and lossing the session.

I got the below exception from server log.

[#|2009-08-25T14:13:26.269+0530|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=19;_ThreadName=httpSSLWorkerThread-38080-0;_RequestID=e2c3124c-59af-4f95-936b-3497cee5bfe8;|StandardWrapperValve[BXCompanyProfileDisplayServlet]: PWC1406: Servlet.service() for servlet BXCompanyProfileDisplayServlet threw exception
java.lang.NullPointerException
        at com.iplanet.ecomm.billxb2b.admin.common.BXAdminBaseServlet.verifyUserSession(BXAdminBaseServlet.java:334)
        at com.iplanet.ecomm.billxb2b.admin.BXCompanyProfileDisplayServlet.doPost(BXCompanyProfileDisplayServlet.java:38)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
        at [b]org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
        at com.sun.enterprise.ee.web.sessmgmt.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:120)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)[/b]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:290)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:871)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
        at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#].

i guess The problem is related to the bug with server because if we did not enable availability option application is working fine when ever we enable availability the problem is occuring.

Can any one come across the above problem? If so please provide solution.

Please let me know if any other details required.

thanks
Satish
[Message sent by forum member 'satishtalluri' (satish.t_at_prodapt.com)]

http://forums.java.net/jive/thread.jspa?messageID=361835