【WebLogic】WebLogic 14c服务器实例报BEA-001112的排查和解决

news2024/9/28 9:32:55

一、问题背景

        WebLogic 14c配置了 MySQL 数据源(数据库使用的是MySQL的开源版本 - MariaDB),数据源其中一个 Target 为 WebLogic 应用域的一个受管服务器实例 - appServer1,并且为了增强 WebLogic JDBC Pool 里面的数据库连接的可用性,还在数据源的【连接池】 - 【高级】选项中,勾选并开启了【测试频率】,默认值为 120 秒。

测试频率】参数的含义:WebLogic Server 实例对未用(的数据库)连接进行测试的间隔秒数(要求指定“测试表名称”) 。未通过测试的(数据库)连接将被关闭, 然后(再)将它们重新打开,以重新建立有效的物理连接。如果测试再次失败, 则此连接将被关闭。默认 120 秒。

 

        配置该参数后,发现 appServer1 实例的控制台日志,一直在刷下面的报错信息:

<2023-5-30 上午06时55分31,883秒 CST> <Error> <JDBC> <BEA-001112> <Test "select count(*) from mydbs.employee" set up for pool "mydbs" failed with exception: "com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 118,981 milliseconds ago. The last packet sent successfully to the server was 118,981 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.".> 
<2023-5-30 上午06时57分31,916秒 CST> <Error> <JDBC> <BEA-001112> <Test "select count(*) from mydbs.employee" set up for pool "mydbs" failed with exception: "com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 119,025 milliseconds ago. The last packet sent successfully to the server was 119,025 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.".> 
<2023-5-30 上午06时59分31,885秒 CST> <Error> <JDBC> <BEA-001112> <Test "select count(*) from mydbs.employee" set up for pool "mydbs" failed with exception: "com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 118,962 milliseconds ago. The last packet sent successfully to the server was 118,963 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.".> 
<2023-5-30 上午07时01分31,892秒 CST> <Error> <JDBC> <BEA-001112> <Test "select count(*) from mydbs.employee" set up for pool "mydbs" failed with exception: "com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 119,000 milliseconds ago. The last packet sent successfully to the server was 119,000 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.".> 
<2023-5-30 上午07时03分31,885秒 CST> <Error> <JDBC> <BEA-001112> <Test "select count(*) from mydbs.employee" set up for pool "mydbs" failed with exception: "com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 118,985 milliseconds ago. The last packet sent successfully to the server was 118,985 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.".> 

二、问题排查

        首先,在MOS中查询与错误码 BEA-001112 有关的Document,并未查询到与我上免报错一样的信息。

        第二步,在MOS上开SR,申请ORACLE工程师技术支持,工程师给的可能性(MariaDB服务配置的时区与系统时区不一致、MySQL Connector/J版本-社区版本、企业版本),最后证明都与报错信息无关。关于时区的问题,ORACLE工程师给了三个参数,配置在WebLogic控制台的JDBC连接池的属性或者系统属性参数栏里面来统一时区,这里给大家分享一下。

preserveInstants=true
connectionTimeZone=SERVER
forceConnectionTimeZoneToSession=false

        第三步,根据报错信息,将 MariaDB 的配置文件 my.cnf 里面的 wait_timeout 参数(配置为10秒)修改为 60 秒,重启 MariaDB 服务,发现报错信息依旧。

        第四步,将 MariaDB 的配置文件 my.cnf 里面的 wait_timeout 参数调整为 130 秒后,发现报错信息不再刷新了。至此,问题解决。

三、问题复盘

        可以发现,这次问题的根本原因,是 WebLogic 控制台里面配置的数据库连接可用性的主动式探测的时间间隔,即【测试频率】(Test Frequency),与 MariaDB 服务配置的 wait_timeout 超时时间存在逻辑冲突导致。所以,如果在 WebLogic 的数据源配置里面启动了数据库连接可用性的主动探测,那么这个测试频率需要小于或者等于 MySQL 服务配置 wait_timeout 参数。

        下面是网上关于 MySQL 数据库 wait_timeout 参数含义的说明:

wait_timeout参数,定义对于非交互式连接,服务端等待数据的最长时间。如果超过这个时间,服务端仍然没有收到数据,则会关闭连接。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/587105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NIO之FileChannel解读

目录 基本概述 打开 FileChannel 从 FileChannel 读取数据 向 FileChannel 写数据 关闭 FileChannel FileChannel 的 position 方法 FileChannel 的 size 方法 FileChannel 的 truncate 方法 FileChannel 的 force 方法 FileChannel 的 transferTo 和 transferFro…

华为OD机试真题B卷 Java 实现【寻找峰值】,附详细解题思路

一、题目描述 给定一个长度为n的数组nums&#xff0c;请你找到峰值并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回任何一个所在位置即可。 1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于&#xff1b; 2.假设 nums[-1] n…

齿轮齿条平动模组的制作

1. 运动功能说明 齿轮齿条平动模组的主要运动方式为直流电机带动2个齿轮沿着齿条平行方向前进、后退。 2. 结构说明 本模组主要是由直流电机、齿轮、齿条、光轴、滑块、机架等组成。 3. 电子硬件 在这个示例中&#xff0c;我们采用了以下硬件&#xff0c;请大家参考&#xff1…

Fiddler抓不到包Fiddler chrome Edge无法抓包原因排查Fiddler死活抓不了包

一、问题描述 我这电脑上的Fiddler莫名其妙的死活就是无法抓包&#xff0c;换了几个版本的Fiddler都没有解决&#xff0c;这里参考了一些网上的教程&#xff0c;最终解决了&#xff0c;该文章算是比较详细的一篇介绍Fiddler无法抓包的教程。无法抓包主要由以下原因导致的&#…

1726_使用Python从dbc文件中提取simulink建模数据定义

全部学习汇总&#xff1a; GreyZhang/python_basic: My learning notes about python. (github.com) 使用dbc文件建模完成CAN通讯是一种比较高效的开发模式&#xff0c;不过在建模的过程中dbc文件中描述的数据需要自己去定义。使用文本编辑工具打开dbc文件可以看到&#xff0c…

中国生物科技公司【Advanced Biomed】申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于台湾台南的生物科技公司【Advanced Biomed】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为&#xff08;AD…

git的本地分支如何关联远程分支,比如github,gitlab,码云等

文章目录 1. 文章引言2. 本地分支如何关联远程分支2.1 远程有分支2.2 远程无分支 3. 总结 1. 文章引言 今天发布某版本的项目&#xff0c;准备创建个v0point1分支&#xff0c;后期如果修改该版本&#xff0c;直接在该分支上修改即可。 首先&#xff0c;使用git branch v0point…

SeaFormer实战:使用SeaFormer实现图像分类任务(一)

文章目录 摘要安装包安装timm安装mmcv安装 grad-cam 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译&#xff1a;https://blog.csdn.net/m0_47867638/article/details/130437649?spm1001.2014.3001.5501 官方源码&#xff1a;https://github.com/fu…

Vue2 创建 Vite 项目,新手教学

关于vite Vite是一种快速的现代化构建工具&#xff0c;可以显著提高Web应用程序的开发效率和性能。 以下是一些Vite的好处&#xff1a; 快速的冷启动&#xff1a;Vite使用原生ES模块解析器&#xff0c;在冷启动时会非常快速&#xff0c;不需要像Webpack一样构建整个应用程序。…

Linux输入输出重定向

目录 Linux输入输出重定向 Linux中的默认设备 输入输出重定向定义 输入输出重定向操作符 实用形式 标准输入、标准输出、标准错误 输出重定向案例 案例1 --- 输出重定向&#xff08;覆盖&#xff09; 案例2 --- 输出重定向&#xff08;追加&#xff09; 案例3 --- 错误…

chatgpt赋能python:Python中向上取整函数详解

Python中向上取整函数详解 对于Python中的向上取整运算&#xff0c;大家一定不会感到陌生。在FPython中&#xff0c;我们通常使用math.ceil()函数来对数值进行向上取整。本文将为大家详细介绍Python中的向上取整函数&#xff0c;以及如何在实践中应用。 什么是向上取整&#…

被黑客攻击了?无所谓,我会拔网线。。。

「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 最近老是有粉丝问我&#xff0c;被黑客攻击了&#xff0c;一定要拔网线吗&#xff1f;还有…

C/S客户端核服务端-简单收发

一、程序 首先上程序 client端的程序 #include <arpa/inet.h> #include <netinet/in.h> #include <netinet/ip.h> #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <sys/socket.h> #include <sys/type…

keep-alive 是 Vue 内置的一个组件,被用来缓存组件实例。

文章目录 简介注意点使用 keep-alive 有以下优缺点优点缺点 简介 keep-alive 是 Vue 内置的一个组件&#xff0c;被用来缓存组件实例。 使用 keep-alive 包裹动态组件时&#xff0c;被包裹的组件实例将会被缓存起来&#xff0c;而不会被销毁&#xff0c;直到 keep-alive 组件…

LSM零知识学习一、概念与框架机制

本文内容参考&#xff1a; LSM(Linux Security Modules)框架原理解析_lsm框架_pwl999的博客-CSDN博客 LSM相关知识及理解-布布扣-bubuko.com 一文了解Linux安全模块&#xff08;LSM&#xff09; - 嵌入式技术 - 电子发烧友网 在此特别致谢&#xff01; 一、什么是LSM LSM全…

HiFB 与Linux Framebuffer的对比

引言 HiFB和Linux Framebuffer是两种不同的图形缓冲区技术&#xff0c;它们在处理计算机图形显示方面有着重要的作用。以下是对这两种技术的简短定义&#xff1a; HiFB&#xff08;High-performance Intelligent FrameBuffer&#xff09;&#xff1a;HiFB是华为推出的一种高性…

Socket(五)

文章目录 1. 日志2. 如何记录日志 1. 日志 服务器要在无人看管的情况下运行很长时间&#xff0c;通常需要在很久以后对服务器中发生的情况进行调试&#xff0c;这很重要。由于这个原因&#xff0c;建议在存储服务器日志&#xff0c;至少要存储一段时间的日志。日志中通常希望记…

ARM微架构与程序编写

目录 1.流水线 2.指令流水线 3. 多核处理器​编辑 4. 工程搭建 4.1为Keil软件配置编译工具链 5.程序编写 5.1 数据处理指令 5.2 带标志位的加法ADC ADDS 5.3 跳转指令B\BL 5.4 单寄存器内存访问 5.5 批量寄存器内存访问 5.6 满减操作 1.流水线 2.指令流水线 3.…

算法基础学习笔记——⑭欧拉函数\快速幂\扩展欧几里得算法\中国剩余定理

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨欧拉函数 &#x1f353;求欧拉函数 : &#x1f353;筛法求欧拉函数 : ✨快速幂 ✨扩展欧几里得算法 ✨中国剩余定理 前言&#xff1a;算法学习笔记记录日常分享&#xff0c;需要的看哈O(∩_∩)O&#…

chatgpt赋能python:Python中的倒序输出方法

Python中的倒序输出方法 在Python中&#xff0c;倒序输出是一个经常用到的操作。倒序输出可以用于字符串、列表、元组等数据类型&#xff0c;帮助我们更方便地处理数据。 字符串的倒序输出 对于字符串&#xff0c;我们可以使用字符串切片的方法倒序输出。例如&#xff0c;我…