linux - Jboss AS 7.1.1 ejb 3 : EJB pool error -
we have application running on jboss 7.1.1 , uses ejb 3. intermittently seeing following errors
javax.ejb.ejbexception: jbas014516: failed acquire permit within 5 minutes @ org.jboss.as.ejb3.pool.strictmax.strictmaxpool.get(strictmaxpool.java:109) @ org.jboss.as.ejb3.component.pool.pooledinstanceinterceptor.processinvocation(pooledinstanceinterceptor.java:47) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.as.ejb3.remote.ejbremotetransactionpropagatinginterceptor.processinvocation(ejbremotetransactionpropagatinginterceptor.java:8 0) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.as.ejb3.component.interceptors.currentinvocationcontextinterceptor.processinvocation(currentinvocationcontextinterceptor.java :41) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.as.ejb3.component.interceptors.logginginterceptor.processinvocation(logginginterceptor.java:59) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.as.ee.component.namespacecontextinterceptor.processinvocation(namespacecontextinterceptor.java:50) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.as.ejb3.component.interceptors.additionalsetupinterceptor.processinvocation(additionalsetupinterceptor.java:32) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.as.ee.component.tcclinterceptor.processinvocation(tcclinterceptor.java:45) @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) @ org.jboss.invocation.chainedinterceptor.processinvocation(chainedinterceptor.java:61) @ org.jboss.as.ee.component.viewservice$view.invoke(viewservice.java:165) @ org.jboss.as.ejb3.remote.localejbreceiver.processinvocation(localejbreceiver.java:179) @ org.jboss.ejb.client.ejbclientinvocationcontext.sendrequest(ejbclientinvocationcontext.java:179) @ org.jboss.ejb.client.transactioninterceptor.handleinvocation(transactioninterceptor.java:43) @ org.jboss.ejb.client.ejbclientinvocationcontext.sendrequest(ejbclientinvocationcontext.java:181) @ org.jboss.ejb.client.receiverinterceptor.handleinvocation(receiverinterceptor.java:128) @ org.jboss.ejb.client.ejbclientinvocationcontext.sendrequest(ejbclientinvocationcontext.java:181) @ org.jboss.ejb.client.ejbinvocationhandler.doinvoke(ejbinvocationhandler.java:136) @ org.jboss.ejb.client.ejbinvocationhandler.doinvoke(ejbinvocationhandler.java:121) @ org.jboss.ejb.client.ejbinvocationhandler.invoke(ejbinvocationhandler.java:104)
below configuration ejb subsystem in standalone.xml
<subsystem xmlns="urn:jboss:domain:ejb3:1.2"> <session-bean> <stateless> <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> </stateless> <stateful default-access-timeout="5000" cache-ref="simple"/> <singleton default-access-timeout="5000"/> </session-bean> <mdb> <resource-adapter-ref resource-adapter-name="hornetq-ra"/> <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> </mdb> <pools> <bean-instance-pools> <strict-max-pool name="slsb-strict-max-pool" max-pool-size="40" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="minutes"/> <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="minutes"/> </bean-instance-pools> </pools> <caches> <cache name="simple" aliases="nopassivationcache"/> <cache name="passivating" passivation-store-ref="file" aliases="simplestatefulcache"/> </caches> <passivation-stores> <file-passivation-store name="file"/> </passivation-stores> <async thread-pool-name="default"/> <timer-service thread-pool-name="default"> <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/> </timer-service> <remote connector-ref="remoting-connector" thread-pool-name="default"/> <thread-pools> <thread-pool name="default"> <max-threads count="10"/> <keepalive-time time="100" unit="milliseconds"/> </thread-pool> </thread-pools> </subsystem> <subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="hibernate"> <cache-container name="hibernate" default-cache="local-query"> <local-cache name="entity"> <transaction mode="non_xa"/> <eviction strategy="lru" max-entries="10000"/> <expiration max-idle="100000"/> </local-cache> <local-cache name="local-query"> <transaction mode="none"/> <eviction strategy="lru" max-entries="10000"/> <expiration max-idle="100000"/> </local-cache> <local-cache name="timestamps"> <transaction mode="none"/> <eviction strategy="none"/> </local-cache> </cache-container> </subsystem>
we trying troubleshoot may causing issue , fix it.
this happens, when configured ejb pool exhausted - means ejbs "in use" (=processing). long running invocations within ejbs. seems invocations take longer 5 minutes in case.
Comments
Post a Comment