|
| Problem | JNDI lookup failed with the following exception (excerpt of the stack trace):
[1/13/03 17:09:47:238 GMT] 6e41b5 Helpers W NMSV0610I: A NamingException is being thrown from a javax.naming.Context implementation. Details follow:
Context implementation: com.ibm.ejs.ns.jndi.CNContextImpl
Context method: lookup
Context name: domainRoots/UnspecifiedDomainName/legacyRoot
Target name: jdbc/WCO DataSource e_wcs
Other data:
Exception stack trace: javax.naming.NamingException: Error during resolve. Root exception is org.omg.CORBA.TRANSACTION_ROLLEDBACK: minor code: 0 completed: No
at com.ibm.ejs.jts.jts.JBrokerSupport$RI.client_unmarshalled_request(JBrokerSupport.java:405)
at com.ibm.CORBA.iiop.RIs.iterateClientRequestPreRIs(RIs.java:168)
at com.ibm.CORBA.iiop.ClientRequestImpl.reInvoke(ClientRequestImpl.java:851)
at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:894)
at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:409)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:454)
at com.ibm.WsnOptimizedNaming._NamingContextStub.resolve_complete_info(_NamingContextStub.java:260)
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:345)
| | | | Solution | Explanation: With WebSphere's current naming implementation, a JNDI call to the AdminServer is done within the context of a current transaction unintentionally. This could cause problems in some situations, for example: - Application defines a 1 phase commit resource. After the transaction begins, the application may get the following warning message on the admin console: "warning: Illegal use of 1 phase resource in transaction, 2 phase commit was attempted with 1 phase resource"if a JNDI call to Admin Server was made within the current transaction. The reason for this is that the involvement of the AdminServer, which is treated as a second server, forces the current transaction to be a 2 phase commit transaction.
- After a TRANSACTION_ROLLEDBACK exception was thrown, a JNDI call to AdminServer will cause another TRANSACTION_ROLLEDBACK exception because the JNDI call was unintentionally performed in a rolled back transaction.
Solution:
To fix the problem, WebSphere's naming implementation will suspend the current transaction before a JNDI call to the AdminServer and resume the transaction after the JNDI call is made. This fix is implemented in WebSphere Application Server version 3.5.7 and 4.0.5.
For WebSphere Application Server versions 3.5.6 (or prior to 3.5.6) and WebSphere Application Server Release 4.0.4 (or prior to 4.0.4), please obtain the eFix PQ65485 from the WebSphere support website and apply it. | |
| | |
| |
|
Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server Operating system(s): Multi-Platform Software version: 3.5, 4.0 Software edition: Edition Independent Reference #: 1082907 IBM Group: Software Group Modified date: 2003-01-23
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.
|