PQ68069: ARRAYINDEXOUTOFBOUNDSEXCEPTION OCCURS WHEN USING MULTIPLE THREADS FOR A STANDALONE EJB CLIENT. | |||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description . When running a standalone EJB client, running multiple threads (each with its own ORB), during naming lookup, ArrayIndexOutOfBoundsExceptions occur from the select policy.Local fix Problem summary **************************************************************** * USERS AFFECTED: WebSphere Application Server users in a * * clustered environment. * **************************************************************** * PROBLEM DESCRIPTION: An ArrayIndexOutOfBoundsException is * * thrown from a selection policy * * (RoundRobinPreferLocalProxySelector * * or RoundRobinProxySelector) under * * very heavy workloads. * **************************************************************** * RECOMMENDATION: * **************************************************************** The client program receives an ArrayIndexOutOfBoundsException when the servers are under very heavy workload. This has been known to occur most frequently, but not necessarily only during a javax.naming.InitialContext.lookup method call. The reason that this happens is that in the selection policies mentioned, there is a code block that is not synchronized for performance reasons. The policy has to be under extremely high workloads, and even then, the window for this error is extremely small. The stacktrace will look something like this: 2002-08-30 11:39:24,073 ERROR (TestThread.java:78): TestThread 0 : EJB access setup failed: java.lang.ArrayIndexOutOfBoundsException at com.ibm.ws.wlm.client.proxy.RoundRobinProxySelector .getNextClone(RoundRobinProxySelector.java:75) at com.ibm.ws.wlm.client.proxy.RoundRobinPreferLocalPro xySelector.getNextClone(RoundRobinPreferLocalProxySelector.java: 82) at com.ibm.ws.wlm.client.proxy.MasterProxy.getNextClone (MasterProxy.java:165) at com.ibm.ws.wlm.client.proxy.ProxyManager.getTarget (ProxyManager.java:103) at com.ibm.ws.wlm.client.WLMClient.getNextTarget (WLMClient.java:205) at com.ibm.CORBA.iiop.ClientDelegate.createRequest (ClientDelegate.java:1037) at com.ibm.CORBA.iiop.ClientDelegate.request (ClientDelegate.java:1820) at org.omg.CORBA.portable.ObjectImpl._request (ObjectImpl.java:433) at com.ibm.WsnOptimizedNaming._NamingContextStub. resolve_complete_info(_NamingContextStub.java:258) at com.ibm.ejs.ns.jndi.CNContextImpl.cosResolve (CNContextImpl.java:2983) at com.ibm.ejs.ns.jndi.CNContextImpl.doLookup (CNContextImpl.java:1435) at com.ibm.ejs.ns.jndi.CNContextImpl.lookup (CNContextImpl.java:1121) at com.ibm.ws.naming.util.WsnInitCtx.lookup (WsnInitCtx.java:128) at javax.naming.InitialContext.lookup (InitialContext.java:350) ... ...Problem conclusion The problem was resolved through changing the amount of load being sent to a server based on outstanding requests at the client side. If a server is being overloaded, and other servers can handle the request, the request is then sent to the server that can handle the request, verses just sending it to the overworked server.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros
SRLS
|
Document Information |
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > General
Operating system(s):
Software version: 400
Software edition:
Reference #: PQ68069
IBM Group: Software Group
Modified date: Dec 17, 2002
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.