Tomcat连接池耗尽

2023-11-27

我在我的项目中使用 Apache Tomcat JDBC 连接池。我很困惑,因为在重负载下我不断看到以下错误:

12:26:36,410 ERROR [] (http-/XX.XXX.XXX.X:XXXXX-X) org.apache.tomcat.jdbc.pool.PoolExhaustedException: [http-/XX.XXX.XXX.X:XXXXX-X] Timeout: Pool empty. Unable to fetch a connection in 10 seconds, none available[size:4; busy:4; idle:0; lastwait:10000].
12:26:36,411 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/APP].[AppConf]] (http-/XX.XXX.XXX.X:XXXXX-X) JBWEB000236: Servlet.service() for servlet AppConf threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException

我的期望是,通过池化,新连接的请求将保留在队列中,直到连接可用。相反,当池达到容量时,请求似乎会被拒绝。这种行为可以改变吗?

Thanks,

Dal

这是我的池配置:

PoolProperties p = new PoolProperties();
p.setUrl("jdbc:oracle:thin:@" + server + ":" + port + ":" + SID_SVC);
p.setDriverClassName("oracle.jdbc.driver.OracleDriver");
p.setUsername(username);
p.setPassword(password);
p.setMaxActive(4);
p.setInitialSize(1);
p.setMaxWait(10000);
p.setRemoveAbandonedTimeout(300);
p.setMinEvictableIdleTimeMillis(150000);
p.setTestOnBorrow(true);
p.setValidationQuery("SELECT 1 from dual");
p.setMinIdle(1);
p.setMaxIdle(2);
p.setRemoveAbandoned(true);
p.setJdbcInterceptors(
    "org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"
    + "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer;" 
    + "org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer");

如果您看到日志,这将按照设计/实现进行工作Timeout: Pool empty. Unable to fetch a connection in 10 seconds你的配置是p.setMaxWait(10000);。请求线程在放弃等待连接之前等待 10 秒(10000 毫秒,最大等待时间)。

现在您有两种解决方案,增加 maxActive 连接数或检查是否存在任何连接泄漏/长时间运行的查询(您不希望出现这种情况)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat连接池耗尽 的相关文章

随机推荐

  • 在 AngularJS 的 Promise 中使用它

    是否有能够在承诺范围内使用的最佳实践解决方案 在 jQuery 中 我可以绑定我的对象以在我的承诺 回调中使用它 但在 AngularJS 中 是否有最佳实践解决方案 方式 var service this 我不喜欢 app service
  • 使用 matplotlib 和 pyplot 制作二维坐标的简单动画

    我是 matplotlib 的新手 我有一个在 python 中更新的 x y 坐标列表 并希望使用 matplotlib 的 pyplot 进行动画处理 我想提前指定 x 范围和 y 范围 下面是我当前的代码 import matplot
  • 如何?参数和LIKE语句SQL

    我正在编写一个搜索函数 并想到了使用参数来防止或至少限制 SQL 注入攻击的这个查询 但是 当我通过我的程序运行它时 它不会返回任何内容 SELECT FROM compliance corner WHERE body LIKE query
  • R,如何改变plotly 3d表面的颜色?

    如何将色标从默认的紫色更改为黄色 我尝试向 add trace 添加颜色和色阶参数 但它会引发错误 具有默认颜色的可重现代码 library plotly library reshape2 library tidyverse sleep l
  • 如何让Java在Linux中使用串口?

    我们使用一个通过串行端口管理密码键盘的 Java 应用程序 这在带有 Sun Comm jar 提供的 dll 和属性文件的 Windows 上完美运行 现在我们尝试在 Linux 上使用这个解决方案 实际上它确实可以在现场的各种其他版本的
  • 如何从Activity启动Fragment?

    我有一个片段 ProductsFragments extends Fragment 和一项活动 AdminMenuActivity extends ActionBarActivity 我想从 AdminMenuActivity 调用 Pro
  • 为什么新添加的文件没有触发我的 gulp-watch 任务?

    我有一个 gulp 任务 它使用 gulp imagemin 来压缩图像 当我向此目录添加新文件时 我希望此任务也压缩它们 我读到了gulp watch 不会在新文件上触发我应该尝试 gulp watch 所以我像这样使用它 gulp ta
  • WAMP/XAMPP 在本地主机上的响应速度非常慢

    我不知道问题是什么 WAMP 非常慢 所以我重新格式化了计算机并安装了 WAMP 尽管如此 访问本地主机还是非常非常慢 有时甚至根本无法加载 我什至删除了它并用 XAMPP 替换它 但我仍然得到相同的结果 可能是什么问题 这是我当前的主机文
  • 在 Python 2.7.3 中将字段名称分配给 numpy 数组

    我对这个问题简直要疯了 因为我显然没有抓住要点 而且解决方案太简单了 看不到 我有一个包含 x 列的 np array 我想分配一个字段名称 这是我的代码 data np array 1 2 3 4 0 5 0 6 0 11 12 12 3
  • 在 Python 中从图像中提取每个像素的 x,y 坐标

    假设我有一个彩色图像 已将其加载到尺寸为 200 x 300 x 3 的 numpy 数组中 图像中总共有 60 000 个像素 我试图提取从开始的每个像素的宽度 高度 x y 坐标左上角表示像素 1 使得 pixel x y 1 0 0
  • 为什么 str(reversed(...)) 不给我反转的字符串?

    我正在努力习惯迭代器 为什么如果我输入 b list reversed 1 2 3 4 5 它会给我一个反向列表 但是 c str reversed abcde 不会给我一个反转的字符串吗 在Python中 reversed实际上返回一个反
  • 为什么我的 Runnable Jar 文件不起作用

    我遵循了大约 10 个不同的教程 但似乎没有一个能够解决问题 我的可运行 jar 文件就是无法工作 My 游戏运行良好当我在 eclipse 中运行它时 我是能够将其制作成可运行的 jar 文件仅一两天前 并没有更改太多代码 当我尝试运行
  • 对象内的匿名函数

    我有一个像这样的 Javascript 片段 var a ac 10 function console log hi 浏览器不会为此抛出错误 所以这可能是有效的 但是当我使用 var a ac 10 function hi console
  • Python 脚本的文件名和行号

    如何获取Python脚本中的文件名和行号 正是我们从异常回溯中获取的文件信息 在这种情况下没有引发异常 感谢 mcandre 答案是 python3 from inspect import currentframe getframeinfo
  • 使用 TLS 会话重用将文件上传到 C# 中的隐式 FTPS 服务器

    我正在尝试通过协议 TLS 通过 ftps 将文件上传到 FileZilla 服务器 服务器上的20和21端口被关闭 我设法连接到服务器的唯一方法是使用 FluentFTP 但由于某些 FileZilla 服务器错误 我无法上传文件 htt
  • Firestore 规则模拟器 - 资源未定义

    我正在尝试使用 firebase 提供的新规则模拟器工具 但是在使其正常工作时遇到问题 在模拟器面板中这样设置路径时 users Gd9jd3jd8sSixxx38djSs 然后选择身份验证选项并输入授权用户的 uid 作为相同的字符串 G
  • 将 blob 文件上传到 Amazon s3

    我正在使用 ngCropImage 裁剪图像并希望将其上传this link NgCropImage 指令返回图像的 dataURI 我将其转换为 blob 转换后我得到一个 blob 对象 它具有大小和类型 使用以下代码将 DataURI
  • 如何修复:TypeError“元组”对象不支持项目分配[重复]

    这个问题在这里已经有答案了 本教程的以下代码片段 http www raywenderlich com 24252 beginning game programming for teens with python for badguy in
  • git Push 在 HTTP/1.1 100 之后挂在(哑)https 上继续

    我正在努力推动一些改变 但是git push挂起 当我跑步时git push 我没有看到任何输出 似乎什么也没有发生 没有任何活动top 并且没有发生任何事情的迹象 我不控制 git 托管服务 我正在使用 HTTPS URL 我相信托管服务
  • Tomcat连接池耗尽

    我在我的项目中使用 Apache Tomcat JDBC 连接池 我很困惑 因为在重负载下我不断看到以下错误 12 26 36 410 ERROR http XX XXX XXX X XXXXX X org apache tomcat jd