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

Reply via email to