InstanceAlreadyExistsException: jboss.web:name=JkRequest
tokobayashi Dec 10, 2004 4:32 AMHi,
I'm testing a web-application in JBoss4.0.0 with heavy load.
JBoss is connected to Apache2 by mod_jk2.
Sometimes I encounter a following Exception.
2004-11-17 19:22:45,654 ERROR [org.apache.commons.modeler.Registry] Error registering jboss.web:name=JkRequest4,type=RequestProcessor,worker=jk-192.168.1.165-8009
javax.management.InstanceAlreadyExistsException: jboss.web:name=JkRequest4,type=RequestProcessor,worker=jk-192.168.1.165-8009 already registered.
at org.jboss.mx.server.registry.BasicMBeanRegistry.add(BasicMBeanRegistry.java:755)
at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:211)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:119)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:131)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1397)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1392)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:359)
at org.apache.commons.modeler.Registry.registerComponent(Registry.java:871)
at org.apache.jk.common.ChannelSocket.registerRequest(ChannelSocket.java:436)
at org.apache.jk.common.HandlerRequest.decodeRequest(HandlerRequest.java:443)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:352)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
2004-11-17 19:22:45,661 WARN [org.apache.jk.common.ChannelSocket] Error registering request
This is reproducible with a simple servlet which does nothing.
After this exception, I found another error once.
2004-12-02 20:53:24,563 ERROR [org.jboss.cache.TransactionTable] addLock(): transaction entry not found for (gtx=<192.168.1.164:32910>:7453)
2004-12-02 20:53:24,563 ERROR [org.jboss.cache.TransactionTable] addLock(): transaction entry not found for (gtx=<192.168.1.164:32910>:7453)
2004-12-02 20:53:24,565 ERROR [org.jboss.cache.TransactionTable] addUndoOperation(): transaction not found (gtx=<192.168.1.164:32910>:7453)
2004-12-02 20:53:24,569 ERROR [org.jboss.cache.TransactionTable] addModification(): transaction not found (gtx=<192.168.1.164:32910>:7453)
2004-12-02 20:53:24,573 ERROR [org.jboss.cache.TreeCache] rollback(): entry for transaction <192.168.1.164:32910>:7453 not found (transaction has possibly already been rolled back)
2004-12-02 20:53:24,583 ERROR [org.jboss.web.tomcat.tc5.session.JBossCacheManager] processSessionRepl: failed with exception: org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=dl360g3ap1/26801, BranchQual=, localId=26801] status=STATUS_NO_TRANSACTION; - nested throwable: (java.lang.IllegalStateException: cannot find transaction entry for <192.168.1.164:32910>:7453)
2004-12-02 20:53:39,607 ERROR [org.jboss.cache.lock.IdentityLock] lock could not be acquired after 15000 ms. Lock map ownership Read lock owners: []
Write lock owner: <192.168.1.164:32910>:7453
2004-12-02 20:53:54,618 ERROR [org.jboss.cache.lock.IdentityLock] lock could not be acquired after 15000 ms. Lock map ownership Read lock owners: []
Write lock owner: <192.168.1.164:32910>:7453
2004-12-02 20:54:09,628 ERROR [org.jboss.cache.lock.IdentityLock] lock could not be acquired after 15000 ms. Lock map ownership Read lock owners: []
Write lock owner: <192.168.1.164:32910>:7453
2004-12-02 20:54:09,633 ERROR [org.jboss.web.tomcat.tc5.session.JBossCacheManager] processSessionRepl: failed with exception: java.lang.RuntimeException: JBossCacheService: exception occurred in cache put after retry ...
2004-12-02 20:54:24,659 ERROR [org.jboss.cache.lock.IdentityLock] lock could not be acquired after 15000 ms. Lock map ownership Read lock owners: []
Write lock owner: <192.168.1.164:32910>:7453
2004-12-02 20:54:39,670 ERROR [org.jboss.cache.lock.IdentityLock] lock could not be acquired after 15000 ms. Lock map ownership Read lock owners: []
Write lock owner: <192.168.1.164:32910>:7453
2004-12-02 20:54:54,681 ERROR [org.jboss.cache.lock.IdentityLock] lock could not be acquired after 15000 ms. Lock map ownership Read lock owners: []
Write lock owner: <192.168.1.164:32910>:7453
My app does HttpSessionReplication and doesn't use TreeCache for other feature.
This error is found only once, not reproducible.
I cannot judge this error is derived from InstanceAlreadyExistsException.
What I want to know is
What causes this InstanceAlreadyExistsException?
Is this InstanceAlreadyExistsException negligible for application's performance and correct behavior?