Bugs item #988143, was opened at 2004-07-09 20:15
Message generated for change (Comment added) made by lkral
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=988143&group_id=22866

Category: JBossServer
Group: v3.2
Status: Open
Resolution: None
Priority: 5
Submitted By: Lars Kral (lkral)
Assigned to: Nobody/Anonymous (nobody)
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: Lars Kral (lkral)
Date: 2004-07-10 13: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 09: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 sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to