PQ47681: THIS APAR ADDRESSES DEFECTS IN WEBSPHERE APPLICATION SERVER V4.0 FOR Z/OS AND OS/390. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description This APAR addresses defects in WebSphere Application Server V4.0 for z/OS and OS/390.Local fix Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application Server * * V4.0 for z/OS and OS/390. * **************************************************************** * PROBLEM DESCRIPTION: APAR PQ47681 addresses various * * problems in WebSphere Application * * Server V4.0 for z/OS and OS/390. * **************************************************************** * RECOMMENDATION: * **************************************************************** APAR PQ47681 addresses the following problems in WebSphere Application Server V4.0 for z/OS and OS/390: A serviceabiltiy improvement is needed for minor code C9C2579F. This should be accomplished by creating minor code C9C25790 for cases where the CORBA::UNKNOWN is used to carry a java.rmi.RemoteException or subclass back to a client. Also the serviceability of errors relating to minor code C9C257C7 should be improved by printing the Java stack trace of the original exception to the server's SYSOUT. Stateful session beans that hold references to home or remote interfaces can not be passivated. Clients will receive a java.rmi.NoSuchObject exception when this error occurs. In addition the server log will show a java.io.Serialization exception. Bind failures in the form of javax.naming.NameNotFoundException exceptions can occur during the installation processing of a bean which had env values defined on it. These values are name/value pairs and need to be placed into the java: ns (namespace) of the bean in question. If the name portion contained multiple contexts (ie: 'myenvs/env1') the add to java: ns can fail due to the fact that 'myenvs' did not exist in the ns. Support is needed to dynamically create any portion of a name which doesn't already exist in the ns, thus allowing the install of the bean in question to succeed. Exception Message: RemoteException occurred in server thread; nested exception java.rmi.RemoteException: CORBA OBJ_ADAPTER 1229123630 No; nested exception is org.omg.CORBA.OBJ_ADAPTER: minor code: 4942F02E completed: No can occur because context.close method nulls static variable which contains value required by other contexts. ABENDS306 ABEND306 received when trying to load BBORSMCT from a WebSphere V4.0 servlet. The requirement for adding BBORSMCT to LPA or linklist for WebServer V4.0 servlets and other client environments should be removed since it is not required. PortableRemoteObject.narrow() called with the wrong target class, when driven on a local-mode Stub, results in a NullPointerException instead of ClassCastException as per CORBA specification. An ABEND0C4 ABENDS0C4 in the EncapIIOP constructor in bboceiop.cpp in BBOBOA when running resolve_initial_references on a thread which has not done ORB_init. The resolve_initial_references service can try to use comm to go outbound. Comm requires a thread level buffer to use for its message. The anchor for this buffer is created by ORB_init. Therefore, ORB_init must be run on each thread. When using resolve_initial_references from the Java client, the Pseudo Orb may do the ORB_init for you, but would not do it if it had already been done in this process. This would cause the ORB_init to be skipped on a new thread resulting in the ABEND0C4. The size of the CSA resident BBODBGVT changed from WebSphere Application Server Enterprise Edition OS/390 Component Broker Version 3.02 to WebSphere Application Server V4.0 for z/OS and OS/390. During Daemon startup WebSphere V4.0 will recognize the bgvt found in CSA from a previous WebSphere Application Server Enterprise Edition OS/390 Component Broker Version 3.02 Daemon instance is not valid for WebSphere V4.0 and tries to release the old bgvt before obtaining a new one. The length used to do the release is the length associated with a WebSphere V4.0 length rather than the length appropriate to the version of the control block. Since the bgvt got bigger, more storage is released than was obtained for the old version and the Daemon abends with ABENDU4087 RC=0. Home Handles can receive exception: java.rmi.NoSuchObjectException: Could not find home in JNDI when being used to re-create a home reference. This is due to an error during the creation of a Home Handle instance. The jndi name that is used to look up the actual home reference when the handle is utilized was formed incorrectly, hence the 'NameNotFound' exception. During bootstrap phase 1, the import conversation step fails with SQLCODE -302. This is because a host variable hServerIOR has not been initialized in bbomid10.prepcpp. When a thread is attached to the JVM, a ClassLoader may not be set on the thread. If there is no ClassLoader, during the initialization of the new Context, a "java.lang.NoClassDefFoundError" Exception may be thrown. This occurs because the JVM does not automatically set up a ContextClassLoader on a "Parent Thread". Any Parent Thread created in native code that gets a ContextClassLoader and spawns a Child Thread that also gets attached to the JVM is NOT considered a Child thread, but is considered to be a Parent Thread and therefore no ContextClassLoader is assigned to that thread. When defining a server instance through the SM Scripting without explicitly setting parameter configportnumber a wrong default of 9000 is taken. If this is done for more than one server instance, the server instances will fail during startup with error message "BBOU0606E Socket bind() for Server=XXXXX to Port=9000 failed with RV=-1, RC=1115, RSN=744C7247, EDC8115I Address already in use..." An EJB application server can hang because of a storage leak. A storage leak exists in an application server because the Java OutputStream object containing the marshalled result is leaked, by never releasing the local (native) reference that bbooejsb.cpp holds. The size of the storage leak is the size of returned marshalled result. The storage leak prevents Java garbage collection from reclaiming the storage causing an out of memory condition to occur. ORB support for the OTS Path Sensitive Branch Repository (PSBR) is not setting the WLM Temporal Affinity Token into the Repository. For RAS reasons, branches of the same transactions should be isolated to the same SR within each Server. This aids in diagnosis as well as isolating the disruption involved in recovering from a transaction failure (for example a time out). If the transaction is allowed to be spread across multiple SRs (within the same Server), then work from other transactions will most likely be adversely impacted by the cleanup to the failing transaction. A hang in an application control region can result from a deadlock between threads performing transaction cleanup. On thread 1 a "rollback" request from another Server involved in a distributed transaction was under dispatch. In OTS code, it was determined that ORB needed to be called to cleanup any outstanding Requests (BBO_BOA::TransactionTimedOut(MVS::GTID_ptr)). Still under thread 1, we enter the ORBR Registry code (bbooorrg.cpp) to find and respond to client requests that have timed out. In this ORBR Registry code ORB gets locks on the ORBR Registry table prior to driving comm_outbound_response (bboocomm.cpp) with a SystemException (bboosyse.cpp) to indicate the transaction timeout. Before the comm_outbound_response code could run, on thread 1, over on thread 2, a SnoozerAlarm (bbootmsa.cpp) on this Server pops for transaction timed out (the same transaction). The dispatched Snoozer exit, an OTS exit, obtains OTS transaction locks and drives the same ORB method to cleanup any outstanding Requests for the transaction. This thread, thread 2, attempts to obtain ORBR Registry locks to find any Requests to cleanup. Thread 2 is blocked by thread 1, which is currently holding the ORBR Registry locks. Thread 1 now enters the comm_outbound_response. This code invokes the OTS interceptor sending_reply. The code under sending_reply attempts to get the OTS Transaction locks and is blocked by thread 2. Thus, the deadlock. Thread 1 is holding ORBR Registry locks and is waiting for the OTS Transaction locks held by thread 2 and thread 2 is holding the OTS Transaction locks is waiting for the ORBR Registry locks held by thread 1. In module bbomsbo3.cpp method DefineSystem raises segmentation violation because new server instance properties (configured port number, SSL Fire wall port number, HTTP Listener port number, and HTTPS listener port number)have not been added to the properties array.Problem conclusion CORBA::UNKNOWN C9C25790 has been added for carrying java.rmi.RemoteException and subclasses back to a client. Java stack trace is now printed for original exception when C9C2579F and C9C257C7 is returned to client. Container code has been changed to allow stateful session beans that hold references to home or remote interfaces to be passivated. Support has been added to dynamically create any portion of a name which doesn't already exist in the namespace (ns), thus allowing the install of the bean in question to succeed. context.close has been modifed to no longer clear static field. Support has been added to not load BBORSMCT when running under a client environment. PortableRemoteObject.narrow()has been modified to return with ClassCastException when incorrect class passed as parameter. The code prevents the ORB_init from being done if it had already been done on a process that has been removed. ORB_init has been changed to determine determine if any processing needs to be done for a new thread even if the ORB has already been initialized in the process. Module bbodbgvt.plx has been changed to specify a length appropriate to the indicated version of the control block when releasing the bgvt. Home Handle support has been modified to correctly derive the jndi name needed to look up the home reference out of jndi. Module bbomid10.prepcpp has been modified to correctly initialize host variable hServerIOR. Code has been added in product parts bbolrt.cpp, bbolss.cpp and StubServices.java, to ensure that a ClassLoader is currently set when the thread is attached to the JVM (Child or Parent). The check will see if there is already a ClassLoader set on the thread, and if not, it will set one, and continue processing. The default for parameter configportnumber has been changed to 0, this will disable this feature unless set explicitly by a customer rexx script to a unique value. ORBEJSBridge::invoke has been modified to delete its local reference to the marshalled result stream before returning to the server region ORB thus eliminating the reported storage leak. The ORB code has been modified to set the WLM Temporal Affinity Token into the OTS PSBR. ORBR Registry code was modified to release the ORBR Registry locks prior to driving the an outbound response thus fixing the deadlock in an application control region between threads performing transaction cleanup. Module bbomsbo3.cpp method DefineSystem has been modified to define new server instance properties: configured port number SSL Fire wall port number HTTP Listener port number HTTPS listener port number -------------------------------------------------------------- A change is required to documentation. NOTE: Periodically, we refresh the documentation on our Web site, so the changes might have been made before you read this text. To access the latest on-line documentation, go to the product library page at: www.ibm.com/software/webservers/appserv/ The following document must change: Document Name: WebSphere Application Server V4.0 for z/OS and OS/390 Installation and Customization Document Number: GA22-7834-00 For Table 15 on page 63: Remove the following row from the table: BBO.SBBOLD2(BBORSMCT) If you plan to use WebServer servlets with WebSphere for z/OS, you must place SBBOLD2(BBORSMCT) in either LPA or in the link list. Change the next row to read: BBO.SBBOLD2 Do not put members from SBBOLD2 in the LPA. Place these members in the link list. Make the same changes to Table 37 on page 273. -------------------------------------------------------------- APAR PQ47681 is associated with SERVICE LEVEL W400009 of WebSphere Application Server V4.0 for z/OS and OS/390.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: UQ53519 Modules/Macros
|
Document Information |
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server for z/OS
Operating system(s):
Software version: 400
Software edition:
Reference #: PQ47681
IBM Group: Software Group
Modified date: May 3, 2001
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.