在weblogic的负载测试中收到500错误

时间:2017-07-23 09:47:43

标签: performance weblogic oracle-adf

我尝试使用WPLT 6.6加载测试部署在Weblogic服务器上的ADF网站。当我重播单个事务时,一切正常,当我尝试为一个用户加载测试时一切正常,但当第二个并发用户进入测试时,服务器响应有500个错误(验证)。我不知道是什么问题。

welogic的日志:

####<Jul 11, 2017 10:48:16 AM IRDT> <Info> <DiagnosticsWatch> <APP-EGOV> <EBOX_MNGS02> <[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3992c89e-704b-431b-8d6d-3e5db34763d3-000025c7> <1499753896280> <[severity-value: 64] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-320204> <Executing action FMWDFW-notification with timeout period 0 seconds.>
####<Jul 11, 2017 10:48:57 AM IRDT> <Error> <HTTP> <APP-EGOV> <EBOX_MNGS02> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3992c89e-704b-431b-8d6d-3e5db34763d3-000027cf> <1499753937625> <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-101020> <[ServletContext@142750200[app:EboxInboxApp module:Inbox path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.RuntimeException: An attempt has been made to update the immutable value associated with parameter DSID in context 3992c89e-704b-431b-8d6d-3e5db34763d3-000027cf,0. The parameter is not updateable.
        at oracle.dms.context.internal.wls2.WLS2ExecutionContext.setValueAccordingToDescriptor(WLS2ExecutionContext.java:639)
        at oracle.dms.context.ExecutionContext.setValue(ExecutionContext.java:1021)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:211)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3654)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3620)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2423)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2280)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2258)
        at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1626)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1586)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)
        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)
>
####<Jul 11, 2017 10:48:57 AM IRDT> <Notice> <Diagnostics> <APP-EGOV> <EBOX_MNGS02> <[STANDBY] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3992c89e-704b-431b-8d6d-3e5db34763d3-000027d8> <1499753937628> <[severity-value: 32] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-320068> <Watch "UncheckedException" in module "Module-FMWDFW" with severity "Notice" on server "EBOX_MNGS02" has triggered at Jul 11, 2017 10:48:57 AM IRDT. Notification details:
WatchRuleType: Log
WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'WL-101020') OR (MSGID = 'WL-101017') OR (MSGID = 'WL-000802') OR (MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802'))
WatchData: MESSAGE = [ServletContext@142750200[app:EboxInboxApp module:Inbox path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.RuntimeException: An attempt has been made to update the immutable value associated with parameter DSID in context 3992c89e-704b-431b-8d6d-3e5db34763d3-000027cf,0. The parameter is not updateable.
        at oracle.dms.context.internal.wls2.WLS2ExecutionContext.setValueAccordingToDescriptor(WLS2ExecutionContext.java:639)
        at oracle.dms.context.ExecutionContext.setValue(ExecutionContext.java:1021)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:211)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3654)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3620)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)

1 个答案:

答案 0 :(得分:0)

以下是性能测试期间HTTP 500的最常见原因

  • 未能检查每个请求是否有正面预期结果(不仅仅是HTTP 200),然后在发生意外结果时无法分支代码。然后,HTTP 500在超过具有意外响应内容的有效HTTP 200请求响应的点出现的一行或两步之后发生。最终结果是下一个(或可能是下一个)请求与业务流程的状态脱离了上下文。作为开发中未处理的异常(因为自然用户无法进展),会产生HTTP 500结果。

至于业务流程为何脱轨?原因很多。您可能有一些与会话,状态,时间,安全令牌,用户凭据,业务流程数据/密钥等相关的未处理动态数据...您可能拥有与业务流程所需的状态不同的数据,例如尝试重复使用,使用一次数据。如果您共享环境并同时与其他组测试数据,您甚至可能让其他人在测试期间更改数据状态。

如果您没有主动检查测试代码中每个测试步骤(测试101的东西)的正面预期条件,那么您正在做的是&#34;抛出负载&#34;并且应该预期和共同使用这些类型的HTTP 500错误。