记一次使用hive-jdbc+tomcat-jdbc连接(Connection)中断的处理过程

2023-11-02

现象描述

Hive环境一个数据库,拥有表8000+,业务代码需要挨个desc {tableName}来获取表信息。当程序运行到4000+左右,开始出现获取信息失败。

查找原因

通过查看日志发现是连接已断开,具体如下:

【INFO】org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.sql.SQLException: Connection has already been closed.
### The error may exist in 省略/HiveCollectionMapper.xml
### The error may involve 省略.HiveCollectionMapper.getTableParameters
### The error occurred while executing a query
### SQL: desc formatted logsget.`dim_qdas_superderive_eventlist`
### Cause: java.sql.SQLException: Connection has already been closed.
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57)
	at com.sun.proxy.$Proxy365.getTableParameters(Unknown Source)
	...省略
		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Connection has already been closed.
	at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117)
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108)
	at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:75)
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108)
	at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81)
	at com.sun.proxy.$Proxy342.prepareStatement(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor280.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:55)
	at com.sun.proxy.$Proxy360.prepareStatement(Unknown Source)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:86)
	at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:88)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:59)
	at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:136)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)

分析日志:

在mybatis调用DefaultSqlSession.selectList()方法时,突然发现Connect已经断开了,而上一次还可以正常运行这个方法。太突然了!笔者感觉DEBUG日志有更具体的原因,还是开启DEBUG日志,重新跑一次看看。

开启DEBUG日志,重新跑一次这个过程,果然在DEBUG日志中发现了端倪。在抛出上面的java.sql.SQLException: Connection has already been closed.异常之前抛出了下面的异常:

【DEBUG】org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.sql.SQLException: Error retrieving next row
### The error may exist in 省略/HiveCollectionMapper.xml
### The error may involve 省略.getTableParameters
### The error occurred while handling results
### SQL: desc formatted logsget.`dim_qdas_region`
### Cause: java.sql.SQLException: Error retrieving next row
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57)
	at com.sun.proxy.$Proxy365.getTableParameters(Unknown Source)
...省略
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Error retrieving next row
	at org.apache.hive.jdbc.HiveQueryResultSet.next(HiveQueryResultSet.java:388)
	at sun.reflect.GeneratedMethodAccessor277.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:69)
	at com.sun.proxy.$Proxy363.next(Unknown Source)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:352)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:328)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:301)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:194)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:136)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
	... 97 common frames omitted
Caused by: org.apache.thrift.transport.TTransportException: java.net.SocketException: Socket closed
	at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129)
	at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
	at org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:460)
	at org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:435)
	at org.apache.thrift.transport.TSaslClientTransport.read(TSaslClientTransport.java:37)
	at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
	at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429)
	at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318)
	at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219)
	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
	at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_FetchResults(TCLIService.java:501)
	at org.apache.hive.service.cli.thrift.TCLIService$Client.FetchResults(TCLIService.java:488)
	at org.apache.hive.jdbc.HiveQueryResultSet.next(HiveQueryResultSet.java:360)
	... 113 common frames omitted
Caused by: java.net.SocketException: Socket closed
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
	at java.net.SocketInputStream.read(SocketInputStream.java:170)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127)
	... 125 common frames omitted

日志分析:
上面异常从hive-jdbc依赖的jar包libthrift中抛出的,大致过程可以整理如下:
Hive-jdbc中Socket断开—> Mybatis Connection中断—> Tomcat-jdbc 连接断开。

笔者打算从距离业务代码最近的Tomcat-jdbc入手,解决这个问题,开启debug模式,查看tomcat-jdbc中的连接信息,截个图:
在这里插入图片描述
testOnBorrow、testWhileIdle、timeBetweenEvictionRunsMillis等几个重要的参数貌似都没问题,郁闷…这里有好几个时间值,究竟是哪个设置的不合理导致了连接失效?
代码不是获取8000+表的信息吗?不如统计一下从第一个正常的到第一个不正常的中间经过了多长时间,然后比较这个时间和上图各时间值,也许能找到突破口。
Do it !
果然日志是最好的fixbug资料,找到了两个时间点如下,大概相隔6分钟:

2019-12-24 14:30:44 [INFO] --第一个正常
2019-12-24 14:36:49 [DEBUG] --第一个失败

不能如此武断定了removeAbandonedTimeout的罪,在跑两次,结果间隔时间依然是6分钟。OK,那就是tomcat-jdbc干的了?在数据库连接服务了6分钟之后,被当做遗弃的连接给remove了?调整这个removeAbandonedTimeout=1200,再试一次~

2019-12-24 16:07:20  [INFO] --第一个正常
2019-12-24 16:27:25 [DEBUG] --第一个失败

应该可以下结论了,的确是removeAbandonedTimeout时间一到,连接就断开了。

解决办法

笔者想通过关掉removeAbandoned功能removeAbandoned=false,来解决这个问题。但心里仍有疑惑:

  • 为什么Connection一直在使用中,缺会被removeAbandoned功能主动中断,这个abandoned怎么来判断的?

接下来笔者想通过阅读tomcat-jdbc源码来获得答案。也欢迎网友们提供参考链接。

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

记一次使用hive-jdbc+tomcat-jdbc连接(Connection)中断的处理过程 的相关文章

  • Eclipse 缺少数据库连接

    我在 Eclipse 中缺少 MySQL 和其他连接配置文件 因此 JBoss 服务器会抛出错误 由于声誉问题 无法发布图片 我只有 通用 JDBC HSQLDB 使用 Eclipse Kepler 和 jboss eap 6 1 已经在我
  • C# Mysql - 在异步等待服务器的数据库查询上使用锁

    I have TcpListener类和我正在使用async await读写 对于该服务器 我创建了单个数据库实例 在其中准备了所有数据库查询 但对于不止一个TcpClient我不断遇到异常 类型异常MySql Data MySqlClie
  • InfluxDB学习笔记

    本博客是我在学习InfluxDB的时候 记录的笔记 大家可以看看参考学些 简介 简述 InfluxDB是一个由InfluxData开发的开源时序型数据 它由Go写成 着力于高性能查询与存储时序型数据 InfluxDB被广泛应用于存储系统的监
  • ActiveRecord::Base.connection.execute 受影响的行

    在 Rails 4 1 1 中 使用 mysql2 适配器 我正在使用 ActiveRecordconnection http apidock com rails ActiveRecord Base connection在 MySQL 表中
  • 登录失败 (pyodbc.InterfaceError) ('28000', "[28000] [Microsoft][ODBC SQL Server 驱动程序][SQL Server]用户 'xxxx' 登录失败

    我在使用 python 3 8 连接到 sql 服务器时遇到了很大的问题 我想知道我是否需要降级到 3 7 python 是否还有其他问题我做错了 这是我的代码和错误消息 params urllib parse quote plus Dri
  • R 闪亮应用程序中自动删除的临时文件 - 文件错误:无法打开连接

    我创建了一个 R 闪亮应用程序 它每天使用批处理文件自动运行 启动应用程序时一切正常 但第二天它崩溃了 我收到以下消息 Warning in file open w cannot open file C Users bertin AppDa
  • 如何像 MS Access 一样使用目录路径连接 MySQL 数据库文件(.sql)?

    抱歉 也许这是我第二次问这个问题 因为没有得到任何答案 这是我的代码 try File f new File Database sql if f exists Class forName com mysql jdbc Driver newI
  • Web应用Nat穿越

    我们正在全国各地的客户端计算机上使用 Tomcat 部署 Java Web 应用程序 一旦安装完毕 我们希望允许通过中央服务器远程访问这些 Web 应用程序 但我们不希望我们的客户端必须在其路由器上打开端口 有没有办法通过隧道传输 http
  • Visual Studio 2012“扩展和更新”“无法连接到远程服务器”

    不幸的是 过去几个月的情况就是如此 我无法安装新的或更新的软件包工具 gt 扩展和更新我尝试了一切 但无法找到原因 我试过了 访问 NuGet 并从 下载包 包管理器控制台 安装包 SUCCESS 使用 Web 浏览器访问存储库 Visua
  • 当无法访问服务器时,PHP 的 PDO 会忽略 MySQL 的 ATTR_TIMEOUT 选项

    我正在测试无法通过输入随机 IP 尝试连接来访问 mysql 服务器的场景 我将 PDO 的选项设置为在一秒后超时PDO ATTR TIMEOUT gt 1 然而 抛出异常仍然需要30秒 我猜这个超时仅适用于实际的 mysql 连接时间 而
  • 实体框架 - 我应该如何实例化我的“实体”对象

    我是实体框架和 ASP Net MVC 的新手 主要从教程中学习 但对两者都没有深入的了解 我确实有 Net 2 0 ADO Net 和 WebForms 的经验 我当前的怀疑来自于我实例化实体对象的方式 基本上我在我的控制器中这样做 pu
  • python 多处理管理器 - 共享列表 - 连接被对等点 104 重置

    一个父进程使用 python 多处理启动两个进程 A B 这两个进程应该并行运行 与 Multiprocessing Manager 共享两个列表 列表 1 列表 2 对 list 1 的写入作为参数传递给 A 在 A 内部的 list 1
  • Phantomjs 加载页面缓慢

    我是 phantomjs 的新手 正在标准的 centOS 服务器上尝试它 安装了 httpd 等 但除了名称服务器设置为 8 8 8 8 和 8 8 4 4 之外 没有修改设置 我正在使用默认的 loadspeed js 文件 已重命名
  • Firebird数据库SYSDBA连接错误

    我刚刚安装了 Win64 版 Firebird 并且尝试连接到用 ISQL 预打包的员工数据库 按照Firebird官方的步骤进行操作快速入门指南 https www firebirdsql org file documentation h
  • Jooq、Spring 和 BoneCP 连接关闭两次错误

    我正在将 Spring 4 0 0 以及 jOOQ 3 2 0 和 BoneCP 0 8 0 用于 Web 应用程序 我的 PersistenceContext 配置与本指南相同 请浏览一下 代码有点太多 无法粘贴到此处 http www
  • 将 Android 应用程序连接到远程数据

    谢什谈论的信息有限 我正在尝试让我的 Android 应用程序连接到在线数据库以访问信息 有相当多的信息 包括地理标签 这些信息将映射到我的应用程序上 开发者网站有非常丰富的信息 您可以使用网络 如果可用 在您自己的基于 Web 的服务上存
  • Android Studio 无法识别 Samsung Galaxy 手机

    我的三星手机在 Windows 7 上无法被 Android Studio 识别 我通过在此处安装 Samung 驱动程序来修复它 http developer samsung com technical doc view do v T00
  • 从 JAVA 8 连接到 SQL Server 2005

    正在准备一些代码用于从 VB SQL Server 迁移到基于 JAVA Oracle DB 的新解决方案 因此我尝试连接 SQL Server 来查询一些数据 然后将它们放在我们新的 Oracle 表中 但是当我尝试通过此连接时代码 Dr
  • 将数据库导入 MATLAB 错误

    我正在尝试将表导入到我的 MATLAB 工作区 但它一直向我抛出错误 Undefined function or method fetch for input arguments of type struct 这是我尝试执行的代码 dyn
  • 查找使用连接的位置 Excel VBA

    我有大量需要优化的 Excel 2013 工作簿 每个工作簿都有多个工作表和多个数据连接 我正在寻找一种快速列出的方法 连接名称 连接字符串 使用连接的位置 工作表名称或范围很有用 我可以在连接对话框中看到所有这些信息 但无法以编程方式跟踪

随机推荐

  • 【软件测试学习笔记】白盒测试

    文章目录 一 白盒测试概述 二 分类 1 静态测试 2 动态测试 三 白盒测试原则 四 白盒测试类别 五 不同阶段不同侧重点 1 单元测试 2 集成测试 3 系统测试 4 验收测试 六 测试覆盖率 1 功能点覆盖 2 结构覆盖率 七 逻辑覆
  • LVGL在linux环境搭建篇

    LVGL环境搭建 1 环境准备 1 下载源码 https github com lvgl lvgl https github com lvgl lvgl 2 新建lvgl 文件夹 把src 和lvgl h 和lv conf template
  • 疯狂的采药(完全背包例题详解)

    题目 每种草药可以无限制地采摘 每种草药对应采药时间 草药价值 求在一定的采药时间下 采出的药最大总价值是多少 输入格式 输入第一行有两个整数 分别代表总共能够用来采药的时间 t 和代表山洞里的草药的数目 m 第 2 到第 m 1 行 每行
  • Entity Framework Core系列教程-18-断开模式下删除数据

    Entity Framework Core 断开模式下删除数据 EF Core API会为EntityState为Deleted的实体建立并执行数据库中的DELETE语句 在EF Core中已连接和已断开连接的场景中删除实体没有什么区别 E
  • 【数据结构】二叉树接口的实现及OJ题

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 二叉树的接口 1 二叉树的结构体 2 手动造一颗二叉树
  • 防止Sql注入拦截

    这两天在做一个sql注入拦截 期间遇到了不少问题 最大的问题是在 拦截sql注入后利用response 重定向到错误页面 始终无法实现跳转 发现原因是 ajax 异步请求时并不会对response重定向做处理 当然包括response ge
  • vite 配置路径别名@和动态引入assets资源

    vite 配置路径别名 vite config js配置 import fileURLToPath URL from node url 如果是ts 则需下载 types node以来 import defineConfig from vit
  • 解决socket.error: [Errno 98] Address already in use问题

    一 基本设置 如果python中socket 绑定的地址正在使用 往往会出现错误 在linux下 则会显示 socket error Errno 98 Address already in use 在windows下 则会显示 socket
  • linux访问有域名的ftp,Linux安装了ftp服务怎么用域名访?

    ftp directory怎么配置根 请自行准备好华为交换机和电脑 并且让你的电脑和交换机连接上 不管是telnet还是terminal都是可以的 首先需要在 Quidway 下启动ftp服务 Quidway ftp server enab
  • GPU比较(1285Lv4&1245v5)

    1285Lv4 Intel Iris Pro Graphics P6300 Iris Graphics 6200 P6300 EU 48 核心代号 GT3e 1245v5 HD Graphics P530 EU 48 核心代号 GT3e
  • 网络安全面试题

    IT面试 前言 首先 从底层的环境 计算机基础 即网络 系统方面开始 网络从交换 路由的基本认知到排错 系统从命令查看方面 其次 最后 通过编程语言 如python 提供自动化运维的方法 提高办公 简历方面 专业技能模块可以写成 1 熟悉网
  • sql-labs闯关26~31

    sql labs闯关26 31 友善爱国平等诚信民主富强爱国友善自由友善爱国平等诚信民主爱国爱国爱国 复习笔记1 第29 31关先跳过 回头再做 内容 sql labs第26关 GET请求 基于错误 过滤空格和注释 sql labs第26a
  • 报错解决:PermissionError

    在linux环境中安装jupyter notebook的时候遇到的错误 记录一下 PermissionError Errno 13 Permission denied run user 1002 jupyter 解决办法 chmod 777
  • 一文读懂深度学习中的矩阵微积分

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文转自 视学算法 想要真正了解深度神经网络是如何训练的 免不了从矩阵微积分说起 虽然网络上已经有不少关于多元微积分和线性代数的在线资料 但它们通常都被视作两门独立的课程
  • 双向LSTM 对航空乘客预测

    前言 1 LSTM 航空乘客预测 单步预测和多步预测 简单运用LSTM 模型进行预测分析 2 加入注意力机制的LSTM 对航空乘客预测采用了目前市面上比较流行的注意力机制 将两者进行结合预测 3 多层 LSTM 对航空乘客预测 简单运用多层
  • cmd 用命令连接oracle数据库

    这里所用的数据库在tnsnames ora里的配置 mesdb155 DESCRIPTION ADDRESS PROTOCOL TCP HOST IP地址 PORT 端口号 CONNECT DATA SERVER XXX SERVICE N
  • Spring之Joinpoint类详解

    说明 Joinpoint是AOP的连接点 一个连接点代表一个被代理的方法 我们从源码角度看连接点有哪些属性和功能 源码 Copyright 2002 2016 the original author or authors Licensed
  • CentOS7安装Keepalived详细步骤

    1 首先先去Keepalived官网上下载 官网地址 2 把下载好的Keepalived压缩包上传到我们的CentOS7系统上 然后输入下面解压命令进行解压 tar zxvf keepalived 2 0 18 tar gz 3 先进入Ke
  • 7 - 简单状态机代码设计

    7 简单状态机代码设计 三角波发生器 代码 2021 11 21 lyw The simplest state machine triangle wave generator timescale 1ns 10ps module tri ge
  • 记一次使用hive-jdbc+tomcat-jdbc连接(Connection)中断的处理过程

    现象描述 Hive环境一个数据库 拥有表8000 业务代码需要挨个desc tableName 来获取表信息 当程序运行到4000 左右 开始出现获取信息失败 查找原因 通过查看日志发现是连接已断开 具体如下 INFO org apache