WebSphere Application Server: Re: EJB Activation Error after EJB Timeout
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
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
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