weblogic 解决线程阻塞

摘要:
org.apache.commons.pool.impl.GenericObjectPool.getNumIdle(GenericObjectPool.java:113)org.springframework.jdb.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:

最近,发现应用在weblogic服务器运行一段时间后,会报超时错误,查看weblogic后台日志:

 <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '7' for queue: 


'weblogic.kernel.Default (self-tuning)' has been busy for "629" seconds working on the request "Workmanager: default, Version: 


0, Scheduled=true, Started=true, Started time: 629789 ms
[
POST /JLCSB/xfireservices/CustomerServiceA?p=-1 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 447
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)


]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
        org.apache.commons.pool.impl.GenericObjectPool.getNumIdle(GenericObjectPool.java:911)
        org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:78)
        org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
        org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
        org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
        org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
        org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:923)
        org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:964)
        com.linkage.crm.csb.util.ContractBean._generateTransactionID(ContractBean.java:144)
        com.linkage.crm.csb.util.ContractBean.generateTransactionID(ContractBean.java:120)
        com.linkage.crm.csb.exchange.DefaultExchange.exchange(DefaultExchange.java:309)
        com.linkage.crm.csb.util.DataExchangeHelper.xfireExchange(DataExchangeHelper.java:144)
        crmwsi.crm.CustomerServiceASoapBindingImpl.queryChannels(CustomerServiceASoapBindingImpl.java:368)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:59)
        org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:320)
        org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:86)
        org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(ServiceInvocationHandler.java:134)
        org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:109)
        org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
        org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
        org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
        org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
        org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
        org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
        weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3732)
        weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

首先分析产生此错误是由于 WebLogic Server 超过了其“阻塞线程最长时间:”的默认值:600 秒。

考虑将 WebLogic Server 的“阻塞线程最长时间”的值从默认的 600 秒更改为更大的值,例如 1200 秒。

设置方法如下:

weblogic 解决线程阻塞第1张

weblogic 解决线程阻塞第2张

但更改后问题依旧存在,考虑是由于没有使用数据源导致

weblogic 解决线程阻塞第3张

新建数据源,并在应用中使用后,问题解决,已连续运行数天

免责声明:文章转载自《weblogic 解决线程阻塞》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c# wpf 条状刻度线,仪表盘的做法关系图表Echart的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python之(25)中级总结(3)关系型数据库(mysql和oracle使用)

1、Python MySQL - mysql-connector 驱动 1、安装mysql驱动 python -m pip install mysql-connector 2、测试驱动 import mysql.connector 3、代码实现 1、基本操作 import mysql.connector conn=mysql.connector.conne...

JAVA安装

1.      下载 访问oracle官方网站,下载java运行时环境1.6.33,地址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#sjre-7u79-oth-JPR   选择 Accept Li...

ZeroCopyLiteralByteString cannot access superclass

问题描述         在HBase上运行MapReduce作业时,报如下异常:IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString  ...

关于flume中涉及到时间戳的错误解决,Expected timestamp in the Flume even

在搭建flume集群收集日志写入hdfs时发生了下面的错误: java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null         at com.google.common.base.Preconditions.check...

Python3 连接各类数据库

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。Python 数据库接口支持非常多的数据库,MySQL 、 PostgreSQL、Microsoft SQL Se...

如何用javac 和java 编译运行整个Java工程

转自:http://blog.csdn.net/huagong_adu/article/details/6929817         前言:本文教你怎么用javac和java命令,以及如何利用脚本(shell或bat)方便处理,并用简单的实例展示这些用法。         IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来...