Using: GF 3.1b19
Application: clusterjsp.ear from GF 2.1.1 samples (see attachment for .ear file)
web.xml:
http://pastie.org/1149732
sun-web.xml:
http://pastie.org/1149736
Commands to create cluster:
http://pastie.org/1149738
DAS domain.xml:
http://pastie.org/1149768
DAS (cluster name = c1, host name = test-node-01) Log:
http://pastie.org/1149761
Node 1 (node name = n2, host name = test-node-02, instance = i2) Log:
http://pastie.org/1149757
Node 2 (node name = n3, host name = test-node-03, instance = i3) Log:
http://pastie.org/1149759
Node 3 (node name = n11, host name = test-node-11 instance = i11) Log:
http://pastie.org/1149755
While creating the pasties, I found the following exception in each node server.log (haven't seen it before):
[#|2010-09-10T10:39:06.985+0200|WARNING|glassfish3.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=15;_ThreadName=Thread-1;|Internal error: EJBContainerUtilImpl was null
java.lang.Throwable
at com.sun.ejb.containers.EjbContainerUtilImpl.getInstance(EjbContainerUtilImpl.java:250)
at com.sun.ejb.base.io.IOUtils.<clinit>(IOUtils.java:58)
at com.sun.ejb.base.io.JavaEEIOUtilsImpl.createObjectOutputStream(JavaEEIOUtilsImpl.java:63)
at org.glassfish.web.ha.session.management.HAStoreBase.getByteArray(HAStoreBase.java:216)
at org.glassfish.web.ha.session.management.ReplicationStore.doValveSave(ReplicationStore.java:153)
at org.glassfish.web.ha.session.management.ReplicationWebEventPersistentManager.doValveSave(ReplicationWebEventPersistentManager.java:154)
at org.glassfish.web.ha.session.management.HASessionStoreValve.doPostInvoke(HASessionStoreValve.java:163)
at org.glassfish.web.ha.session.management.HASessionStoreValve.postInvoke(HASessionStoreValve.java:124)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:670)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:824)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:721)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1014)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:220)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:530)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:511)
at java.lang.Thread.run(Thread.java:619)
The exception only occures when doing the first request to that node. All other requests will not raise the exception again. Maybe thats the reason why every node creates new sessions for each request. Any ideas?
[Message sent by forum member 'jjackb']
http://forums.java.net/jive/thread.jspa?messageID=482253