2017-05-26 41 views
0

我们在同时打开多个用户的文档时遇到问题。[请参阅跟踪]javax.ejb.EJBException:JBAS014516:无法在5分钟内获取许可证 - 无法在负载运行器中在测试区域再现

ERROR [org.jboss.as.ejb3.invocation] (http-/xx.xx.xx.xxx:xxxx-xxx) JBAS014134: EJB Invocation failed on component xxxxxx for method public abstract java.lang.String com.xxxxxxx.xxx.ejb.services.encryptionfile.xxxxxx.xxxxxx(java.lang.String): javax.ejb.EJBException: JBAS014516: Failed to acquire a permit within 5 MINUTES 
    at org.jboss.as.ejb3.pool.strictmax.StrictMaxPool.get(StrictMaxPool.java:109) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:47) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:278) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:330) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:242) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1] 
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1] 
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1] 
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1] 
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4] 

我试图重现性能区域的错误。最初我得到了Java堆空间问题,后来通过增加Jboss配置文件的堆大小来解决这个问题。

但是,我无法通过Load runner [150并发用户命中]在测试区域重现实际的prod错误。

  1. 有谁知道“我们如何通过负载亚军再现试验区这个错误

  2. 这个错误发生时配置的EJB池耗尽 - 意味着所有EJB是目前‘正在使用’ (=处理),没有任何人知道我们如何检查EJB池大小或豆,这样我们就能够重现该问题。

不要让我知道如果需要有关情况和错误的详细信息?

谢谢, perftest

回答

0

要监视EJB池,使用CLI

/子系统= EJB3启用池统计:写属性(名称=使能统计,值=真)

然后运行下面的命令

/deployment=xxxx.ear/subdeployment=xx-ejb.jar/subsystem=ejb3/stateless-session-bean=HelloBea N:阅读资源(包括运行时= TRUE)

超过过来这个问题,你需要增加max-pool-size

严格-MAX-池名称=“SLSB严格-MAX-池”最大池尺寸=‘20’ 实例采集超时=‘5’ 实例采集超时单元=‘MINUTES’/>

0

问题是通过增加芯线程值分辨在服务器文件中

<short-running-threads> 
    <core-threads count="150"/> 
    <queue-length count="150"/> 
    <max-threads count="150"/> 
    <keep-alive-time time="10" unit="seconds"/> 
    </short-running-threads> 
    <long-running-threads> 
    <core-threads count="150"/> 
    <queue-length count="150"/> 
    <max-threads count="150"/> 
    <keep alive-time time="10" unit="seconds"/> 
    </long-running-threads> 

增加值从50到150

相关问题