PQ73847: BEANNOTREENTRANTEXCEPTION IS THROWN INCORRECTLY IN WEBSPHERE APPLICATION SERVER 3.5.X | |||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description Under the circumstances described below, a BeanNotReentrant- Exception may be incorrectly thrown by the EJB container in WebSphere Application Server 3.5.x: 1. During a bean creation, the ejbCreate() is called in the user provided bean implemenation. The ejbCreate throws an unchecked exception (i.e. user defined security exception ), 2. A Bean's create method is always running in an Unsupported transaction attribute, this means a local transaction is created in the create() method called. This local transaction is associated to the thread the create method is run in. 5. If the method call has a transaction attribute that requires a new transaction (i.e. TX_Required), the local tx is suspended and a new transaction is resumed. The enlistment of this new transaction is prohibited because the bean has already been enlisted in the original global transaction. Thus the BeanNotReentrantException is thrown. The solution of this problem is to disassociate the transaction from the thread during the exception handling in the EJB container and the exception goes away.Local fix Problem summary **************************************************************** * USERS AFFECTED: WebSphere Application Server users of EJBs * * which throws an unchecked exception in the * * ejbCreate() method. * **************************************************************** * PROBLEM DESCRIPTION: Under specific circumstances, a * * BeanNotReentrantException may be * * incorrectly thrown by the EJB * * container. * **************************************************************** * RECOMMENDATION: Apply the efix provided to L2. * **************************************************************** Under the circumstances described below, a BeanNotReentrantException may be incorrectly thrown by the EJB container in WebSphere Application Server 3.5.x: 1. During a bean creation, the ejbCreate() is called in the user provided bean implementation. The ejbCreate throws an unchecked exception (i.e. user defined security exception), 2. A Bean's create method is always running in an Unsupported transaction attribute, this means a local transaction is created in the create() method call. This local transaction is associated to the thread the create method is run in. 3. If the method call has a transaction attribute that requires a new transaction (i.e. TX_Required), the local transaction is suspended and a new transaction is resumed. The enlistment of this new transaction is prohibited because the bean has already been enlisted in the original global transaction. Thus the BeanNotReentrantException is thrown.Problem conclusion The solution of this problem is to disassociate the transaction from the thread during the exception handling in the EJB container.Temporary fix Customer confirmed the test fix works. We'll build the Fix on to p of the 3.5.6 fixpack for the customer to apply.Comments
APAR is sysrouted FROM one or more of the following: PQ70353 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 #: PQ73847
IBM Group: Software Group
Modified date: May 5, 2003
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.