Bugs item #988143, was opened at 2004-07-10 02:15 Message generated for change (Comment added) made by clli You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=988143&group_id=22866
Category: JBossServer Group: v3.2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: Lars Kral (lkral) Assigned to: Scott M Stark (starksm) Summary: unable to activate stateful session beans Initial Comment: When a SFSB has a reference to its own EJBObject stub either as a non-transient instance field or in the object graph of a non-transient instance field, reactivation of this EJB will fail. A client call, which triggers an activation of this bean instance, will never return and only result in a 'transaction timeout' message: [TransactionImpl] Transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//15, BranchQual=] timed out. status=STATUS_ACTIVE Here the relevant part of the log file: 2004-07-09 19:42:11,303 DEBUG [org.jboss.ejb.plugins.StatefulSessionFilePersistenceMana ger] Attempting to activate; [EMAIL PROTECTED] c28 2004-07-09 19:42:11,303 DEBUG [org.jboss.ejb.plugins.StatefulSessionFilePersistenceMana ger] Reading session state from: /usr/local/jboss- 3.2.5/server/default/tmp/sessions/Test1-dwgl7cj6- 4/dwgllux9-5.ser 2004-07-09 19:47:11,316 WARN [org.jboss.tm.TransactionImpl] Transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//15, BranchQual=] timed out. status=STATUS_ACTIVE To reproduce the described behaviour I have attached a jar file containing (deployable) SFSBs and a simple client (binary + source). Tested with: JBoss 3.2.5 / JDK 1.4.2 / SuSE 9.0 ---------------------------------------------------------------------- Comment By: Richard C. L. Li (clli) Date: 2004-07-19 12:20 Message: Logged In: YES user_id=735048 I am using jboss 3.0.8 in production. My SFSB always need to nullify all home references before going to passivate and reinitialize them before activating, otherwise exception thrown will occurs with activating. ---------------------------------------------------------------------- Comment By: Scott M Stark (starksm) Date: 2004-07-19 12:15 Message: Logged In: YES user_id=175228 Recent changes for validating the state of the session id before returning the EJBObject proxy are resulting in deadlock when and session invocation results in activation of the bean. A workaround has been added for 3.2.6RC1. ---------------------------------------------------------------------- Comment By: Lars Kral (lkral) Date: 2004-07-15 17:34 Message: Logged In: YES user_id=936392 Nope, my SFSBs are running without any problem at least with JBoss 3.0.6 and JBoss 3.0.8. Passivating and Activating works as expected. So I think this bug was introduced in the 3.2 branch. ---------------------------------------------------------------------- Comment By: Richard C. L. Li (clli) Date: 2004-07-13 13:39 Message: Logged In: YES user_id=735048 Oh, yes, you are right, this problem will not let JBoss to pass Sun's CTS. As I remember, this problem is here since JBoss 2.4.x or before. Somebody have to deal with it. ---------------------------------------------------------------------- Comment By: Lars Kral (lkral) Date: 2004-07-10 19:46 Message: Logged In: YES user_id=936392 Sorry, but I have to disagree. In the EJB 2.1 specs / 7.4.1, the passivation of session beans is described as follows: "The objects that are assigned to the instance�s non- transient fields after the ejbPassivate method completes must be one of the following: [...] An enterprise bean�s remote interface reference, even if the stub class is not serializable." "The container must be able to properly save and restore the reference to the home and component interfaces of the enterprise beans stored in the instance�s state even if the classes that implement the object references are not serializable." ---------------------------------------------------------------------- Comment By: Richard C. L. Li (clli) Date: 2004-07-10 15:32 Message: Logged In: YES user_id=735048 This is not a bug. You simple violate the specification of Stateful Session Bean. A stub of an remote object is not serializable. Using transient keyword is also not reliable. You have set any non-serializable instance variables to "null" in ejbPassivate() method and reestablish them to valid values in ejbActivate(). A stub of an remote object is not serializable, however, you may transform it to a handle before passivation, and transform it back to a stub before activation. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=988143&group_id=22866 ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click _______________________________________________ JBoss-Development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
