WebSphere Application Server: Re: EJB Activation Error after EJB Timeout

2011-03-09 Thread dWForums
Author:
RBS8_Amitesh_Sharma

Message:
Hi QAS, Thankyou very for the reply.

I have below EJB spec reference from  O'Reilly Enterprise JavaBeans, 3.0 5th 
Edition ebook
lt;lt;

When an EJB server needs to conserve resources, it can evict stateful session 
beans from memory. When a bean is evicted, its conversational state is 
serialized to secondary storage. *When a client invokes a method on the EJB 
object, a new stateful session bean instance is instantiated and populated with 
the state from the initial bean.*

Since a stateful bean class does not have to be serializable, the exact 
mechanism for activating and passivating stateful beans is up to the vendor.
gt;

I am using EJB 3.0 Stateful Beans

And as per above spec WAS should return a new instance to the same Client with 
prev state(Even if the Client was idle for some time). And the application 
should not throw exception/or App state should not get destroyed.  

If application state would start getting destroyed. 
And there's no way out to even extend the EJB3 (Feature Pack) timeout. I think 
there's no use of having EJB3 support on WAS 6.1)

It's looking like a Web Sphere specification implementation mismatch/problem. 

Please confirm if my understanding is correct.

To respond to this post, please click the following link:
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14592111


Unsubscribe via the binocular icon on the web

WebSphere Application Server: Re: EJB Activation Error after EJB Timeout

2011-03-09 Thread dWForums
Author:
gas

Message:
Hi,

These are two different things.
Bean state is passivated when it is not in transaction, based on activation 
policy (see bkail response in your other post).
Timeout is used by the container to detect 'abandoned' beans that should be 
removed. You are hitting that one. Your bean is inactive longer than 10 
minutes, so removed.

Unfortunately you can not change it in the FEP EJB 3.0, see limitations on this 
page:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.ejbfep.multiplatform.doc/info/ae/ae/rejb_limitationsejbfp.html

If you need longer timeout you can:
- migrate to WAS v7, where this setting is supported - 
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.express.doc/info/exp/ae/cejb_bindingsejbfp.html
- switch to use EJB 2.1, where you can override it per bean
- introduce a heartbeat in the app, that will call bean once a few minutes.

It is very strange that you are hitting this timeout, as it means that client 
has not called the bean for very long time.
SFSBs usually act as Facade to the application, so they should be limited in 
number and called quite often.

To respond to this post, please click the following link:
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14592117


Unsubscribe via the binocular icon on the web

WebSphere Application Server: Re: EJB Activation Error after EJB Timeout

2011-03-08 Thread dWForums
Author:
gas

Message:
Hi,

This is ok, according to the spec. After the timeout bean instance is removed, 
no matter if it has clients. From the EJB spec:

While the instance is in the passivated state, the container may remove the 
session object after
the expiration of a timeout speciļ¬ed by the Deployer. All object references and 
handles for the
session object become invalid. If a client attempts to invoke the session 
object, the container
will throw the java.rmi.NoSuchObjectException.


If 10 minutes is too short for you, you can change this setting via deployment 
descriptor:

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=compassproduct=was-express-disttopic=rprf_ejbcontainer

To respond to this post, please click the following link:
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14591475


Unsubscribe via the binocular icon on the web