Jboss AS 7.1.1 ejb 3 : EJB-pool-Fehler
Wir haben eine Anwendung, die auf Jboss AS 7.1.1 und Verwendungen, EJB 3. Wir sind zeitweise sehen die folgenden Fehler
javax.ejb.EJBException: JBAS014516: Fehlgeschlagen
zu erwerben, eine Genehmigung innerhalb von 5 MINUTEN
bei org.jboss.als.ejb3.pool.strictmax.StrictMaxPool.bekommen(StrictMaxPool.java:109)
bei org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:47)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:8
0)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.als.ejb3.Komponente.Abfangjäger.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java
:41)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.als.ee.Komponente.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
bei org.jboss.- Aufruf.InterceptorContext.gehen Sie(InterceptorContext.java:288)
bei org.jboss.- Aufruf.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
bei org.jboss.als.ee.Komponente.ViewService$View.invoke(ViewService.java:165)
bei org.jboss.als.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
bei org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
bei org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
bei org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
bei org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
bei org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
bei org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
bei org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
bei org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
Unten ist die configuration für das EJB-subsystem in der 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>
Versuchen wir das zu beheben, was möglicherweise das Problem verursacht und eine Lösung für Sie.
- Haben Sie irgendwelche Ausnahmen geschieht davor? Auf früheren version von JBoss, es war ein Thema Leasing lecken. Das klingt könnte es der Fall sein, auch für Sie?
- Sie waren in der Lage zu finden, die Ursache für dieses?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies geschieht, wenn der konfigurierte EJB-pool erschöpft ist - bedeutet, dass alle EJBs sind derzeit "in use" (=Bearbeitung). Suchen Sie für lang andauernden Aufrufe innerhalb Ihrer EJBs. Es scheint, dass die Aufrufe dauern länger als 5 Minuten in Ihrem Fall.