Jboss AS 7.1.1 ejb 3:EJB池错误

我们在Jboss AS 7.1.1上运行了一个应用程序,并使用EJB 3.我们间歇性地看到以下错误

javax.ejb.EJBException:JBAS014516:无法在org.jboss.as.ejb3.component的org.jboss.as.ejb3.pool.strictmax.StrictMaxPool.get(StrictMaxPool.java:109)5分钟内获取许可证。 pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:47)at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:8 0 )在org.jboss.invocation.InterceptorContext中的org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)位于org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)处。inheritance(InterceptorContext.java:288)org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)at org .jboss .as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)at 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。 (org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)org.jboss.as.ee.component.ViewService)中的invocation.InterceptorContext.proceed(InterceptorContext.java:288)$ View.invoke(ViewService.java:在org.jboss.ejb.client上的org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)处的org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179) .TransactionInterceptor.handleInvocation(TransactionInterceptor.java:4 3)在org.jboss.ejb.client.EJBClientInvocationContext的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:121)org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136).sendRequest(EJBClientInvocationContext.java:181) jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)

以下是standalone.xml中EJB子系统的configuration

<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> 

我们正在尝试解决可能导致此问题的原因及解决方法。

Solutions Collecting From Web of "Jboss AS 7.1.1 ejb 3:EJB池错误"

发生这种情况时,当配置的EJB池耗尽 – 意味着所有的EJB当前“正在使用”(=处理)。 在EJB中查找长时间运行的调用。 在你的情况下,调用似乎需要5分钟以上的时间。