解决莫名其妙出现connection closed的错误

2023-05-16

最近发现使用了springMVC的新项目偶尔出现connection closed,同事反映当访问同一个controller时经常出现类似错误

上回发现在使用

<context:component-scan base-package="com.controller" />

对@controller注解扫描生成的controller,若是没有加@Scope("prototype")的话,生成出来的controller就是单例的。见http://blog.chinaunix.net/uid-11121450-id-3258548.html

虽然发现这个问题但是由于connection closed的错误现象很难重现,因此上回放弃了。

今天晚上我在测试中无意中又出现了这样的错误,我对controller加了@Scope("prototype"),还是出现一样的错误。

我用下面的语句打印本类的地址,发现每次打印出来的地址都不一样,证明每次请求都重新创建了controller

System.out.println("reserve:"+this.getClass().getName()

+"@"+Integer.toHexString(this.hashCode()));

 

这时我注意到service是用@Autowired,于是我把service的地址也打印出来,发现service 的地址,每次访问都是一样的。也就是说虽然controller是多例了,但是里面的service是单例的,因此每次把新建的connection赋予service之后,请求结束就关闭连接这种方式存在问题。

我的每一个service的connection是通过setConn访问给传进去的,其它数据库方法都使用这个service的connection.

在两个请求同时请求到同一个service时,若是先开始创建connection一个service执行比较慢,而另一个后开始的service也申请了新的一个connection,由于service是单例的,就会把第一个connection给覆盖掉了。若是第二个service先完成就关闭连接,那么第一个service就会出现“connection closed”错误,从而出现一个未关闭的connection(第一个service申请的connection)。

解决办法

1.在controller和service上都增加@Scope("prototype"),这样controller和service都是多例。

2.service不采取setconn方法,每个方法都从参数获取connection.

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

解决莫名其妙出现connection closed的错误 的相关文章

  • C# Mysql - 在异步等待服务器的数据库查询上使用锁

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

    根据DBCP文件 http commons apache org dbcp apidocs org apache commons dbcp BasicDataSource html setLoginTimeout 28int 29 Basi
  • Android Oracle 数据库 JDBC6

    您好 我想创建到我的 Oracle 数据库的连接 我以前使用过 ojdbc14 jar 一切正常 但连接应该是安全的 我想加密文件 所以我决定现在使用ojdbc5 jar 该罐子是我的 libs 文件夹 从 jdbc14 更改为 jdbc6
  • PDO 测试是否已连接

    我在任何地方都找不到这个问题的答案 也许它真的很简单 我的 mysql PDO 连接如下 try DBH new PDO mysql host db hostname dbname db database db username db pa
  • 三星 Android 手机从另一台设备上出现 USB 问题

    早上好 我有一部三星 Android 手机 我通过 USB 电缆将其连接到另一台设备 不是电脑 对于这种情况 我在 android 中启用了 USB 调试和开发人员模式 如果我使用另一台 Android 手机 它工作正常 另一台设备正在闪烁
  • 批处理 - if 命令和“检查互联网连接”

    通过 steam 和其他程序下载时 我的路由器出现问题 例如互联网与路由器失去连接 我无法使用电缆将我的电脑插入路由器 所以我提出了一个解决方案 另一个 每 X 秒断开并连接到互联网 但问题是我想让它更有效率 所以我想要一个执行此操作的命令
  • 如何查看mysql连接的默认端口号?连接不工作! jdbc连接

    我正在尝试使用 java 文件中的 jdbc 连接数据库 它根本无法连接并不断给我错误 出了问题 我猜这是因为端口号 因为所有其他数据 例如用户名 密码和其他代码 似乎都是正确的 我想检查默认端口号 以便我可以正确尝试 我确实尝试使用所有这
  • Xamarin.Forms预览器“连接已关闭”[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 刚刚打开 Xamarin Forms 预览器 它显示 出现问题 连接已关闭 它是全新的 Visual Studio 2017 安装和空白的
  • javascript/dashcode:检查互联网连接

    我正在开发一个通过ajax从互联网获取数据的小部件 如果该小部件无法连接到服务器 我想提供一条错误消息 我正在使用 jquery 的 ajax 对象执行请求 该对象提供了错误回调函数 但是当没有互联网连接时 仅当发出请求但因其他原因失败时才
  • 安卓蓝牙连接错误

    我在堆栈跟踪中收到以下消息 我可以找到蓝牙设备 但是当我尝试打开套接字时会发生这种情况 10 30 22 23 08 901 ERROR BTL CFG 8633 WARNING service brcm bt INQ FILTER BDA
  • 在 PHP 中一遍又一遍地打开 MySQL 连接会产生什么影响

    具体来说 我有一个 DB 类 每次调用类中的 Query 函数时 它都会打开和关闭多个 MySQL 连接 我应该打开一次连接吗 或者可以像这样打开和关闭连接吗 我的头脑简单 ISAM 无事务 C 语言应用程序每天运行八个小时 通过一个始终保
  • 用于本地主机上传和安装 WooCommerce 的 WordPress FTP 连接设置

    我无法上传 WooCommerce zip 文件并在本地主机上安装插件 每次我单击安装按钮时 WordPress 都会询问 FTP 凭据的连接信息 如下图所示 即使我输入 localhost 作为主机名 输入 admin 作为用户名 但它不
  • ftp 在 java 中无法正确下载文件?

    当我使用以下代码下载文件时 它只是将文件写入本地目的地 但文件大小均为零 有人能说为什么会发生这种情况以及如何解决它吗 import org apache commons net ftp FTPClient import org apach
  • 指示远程主机已关闭连接的 NetworkStream.Read 的替代方案?

    关于使用以下命令处理 TCP IP 连接TcpClient类 除了等待之外 还有其他方法可以检查远程主机是否已关闭连接吗 NetworkStream Read返回0的方法 您可以使用IOControlCode KeepAliveValues
  • 为什么 URL up ​​时会出现“java.net.ConnectException: Connection timed out”异常?

    我得到了一个ConnectException Connection timed out我的代码中有一定频率 我试图访问的 URL 已打开 相同的代码适用于某些用户 但不适用于其他用户 似乎一旦一个用户开始收到此异常 他们就会继续收到该异常
  • SSL 套接字连接超时

    如何在 Java 中配置 SSL 套接字的连接超时 对于普通套接字 我可以简单地创建新的套接字实例 而无需使用任何目标端点new Socket 然后调用连接 SocketAddress端点 int超时 http download oracl
  • 是否有理由为连接池设置 maxIdle > maxActive ?

    我刚刚学习连接池 我想知道是否有任何理由设置maxIdle gt maxActive 这是我的理解 空闲连接是已创建并等待使用的连接 一旦客户端借用它 它就会成为活动连接 minIdle确定要在池中创建的初始连接数 当客户端尝试使用该池时
  • 我应该为 MySQL 设置多少 max_connection?

    我在用MySQL 5 1 35数据库上Linux Centos Linux服务器有2GB RAM 和 14GB 磁盘空间 我已经使用创建了网络服务RestletJava 中的框架有thousand用户访问 我想设置 max connecti
  • 从 JAVA 8 连接到 SQL Server 2005

    正在准备一些代码用于从 VB SQL Server 迁移到基于 JAVA Oracle DB 的新解决方案 因此我尝试连接 SQL Server 来查询一些数据 然后将它们放在我们新的 Oracle 表中 但是当我尝试通过此连接时代码 Dr
  • 意外运行 Xcode8 模拟器后,Xcode 8 beta 模拟器无法运行应用程序

    无法启动与模拟器的服务连接 尝试清理应用程序 重新安装它 删除派生数据 重置模拟器设置 重新启动 xCode 我还听说其他人通过重新创建模拟器来解决模拟器的问题 我也尝试过 当我按创建时 我收到完全相同的错误消息 回复中返回错误 连接无效

随机推荐

  • vscode左侧文件不同颜色标识含义

    代码里的左侧颜色标识 红色 xff0c 未加入版本控制 刚clone到本地 绿色 xff0c 已经加入版本控制暂未提交 新增部分 蓝色 xff0c 加入版本控制 xff0c 已提交 xff0c 有改动 xff1b 修改部分 白色 xff0c
  • 读取本地文件转化成MultipartFile

    介绍 现在有个上传文件功能 xff0c 需要将文件上传到oss上 xff0c 但是文件有点多 xff0c 于是使用接口进行上传 但是需要上传文件转换为MultipartFile类型文件进行上传 主要代码 添加pom文件 lt depende
  • 桌面上嵌入窗口(桌面日历)原理探索

    摘要 今天在QQ群里有人问怎样实现将自己的窗口嵌入桌面 xff0c 让它和桌面融为一体 xff0c 就像很多桌面日历软件那样 阅读全文 Richard Wei 2012 05 03 22 07 发表评论 转载于 https www cnbl
  • Git中分支merge和rebase的适用场景及区别

    几乎所有的版本控制工具都有branch功能 xff0c branch主要用于以下几个场景 xff1a 1 xff0c 控制产品OEM 基本上做产品 xff0c 不同的客户都会提出多种不同特性需求 xff0c 最简单的例子就是LOGO和标题完
  • sass安装与教程

    首先下载ruby http dlsw baidu com sw search sp soft ff 22711 rubyinstaller V2 2 2 95 setup 1439890355 exe 安装时注意勾选一下选项 安装完ruby
  • 集成学习原理小结

    集成学习 ensemble learning 可以说是现在非常火爆的机器学习方法了 它本身不是一个单独的机器学习算法 xff0c 而是通过构建并结合多个机器学习器来完成学习任务 也就是我们常说的 博采众长 集成学习可以用于分类问题集成 xf
  • 这款APP明确告诉你,无人机在什么地方可以飞

    美国联邦航空管理局 xff08 FAA xff09 为无人机管制推出了一个新的应用 B4UFLY xff0c 用来向用户显示无人机飞行的合法范围 关于如何有效的对无人机飞行进行管制 xff0c 已经是老生常谈的问题了 xff0c 除了制定相
  • 什么是委托?为什么要使用委托?什么是事件?

    1 什么是委托 xff1f 首先声明一个委托 xff1a public delegate string IsLengthFive string s 下面写几个方法 xff1a public string DoWork string a pu
  • 读取多超声波传感器

    读取多超声波传感器 1 背景2 使用教程2 1 接线说明2 2 上传协议 3 ROS节点使用3 1 下载与配置3 3 常见问题 无串口权限 4 更新程序参考资料 该模块是一个开源模块 xff0c 并提供了配套的ROS节点 xff0c 接收串
  • 系统级性能分析工具perf的介绍与使用

    测试环境 xff1a Ubuntu16 04 43 Kernel xff1a 4 4 0 31 系统级性能优化通常包括两个阶段 xff1a 性能剖析 xff08 performance profiling xff09 和代码优化 性能剖析的
  • VR的商業模式

    1 硬件销售 根据Digi Capital预估 xff0c 在5年内 xff0c AR VR将会有数亿量级的用户数 从免费到高端系统 xff0c 硬件销售将获利最多 届时每由AR VR生成的10美元利润 xff0c 就有4美元收入属于硬件销
  • arm汇编基础(转)

    先看个例子 xff1a void test2 int a int b int c int k 61 a j 61 b m 61 c GCC反汇编 xff1a 00000064 lt test2 gt mov ip sp IP 61 SP 保
  • STL学习思想

    1 模版 xff1a 一定要注意参数和返回值的模版 2 STL一系列的API xff1a 一定要注意返回值 3 容器中的都是值拷贝 而不是引用 在执行插入时 内部实行拷贝动作 所以STL中插入类时 一般都必须 xff1a 无参构造函数 拷贝
  • 中国地质大学(北京)软件工程非全2019研究生复试总结

    呼 今早刚出家门就收到地大发来的拟录取通知 xff0c 算是圆满的给2019考研划上了句号 前言 3 26号去参加了中国地质大学 xff08 北京 xff09 软件工程专业非全日制的复试 因为本人初试分数较低 xff0c 调剂的时候报了不少
  • [转载] 职业生涯步步高:一位知名经理人的职业生涯感悟

    这篇5万多字的文章在网上流传甚广 简单考证了一下 应该是出自landy0985 64 天涯之手 最早是07年时发表在天涯上 文章很长 讲了很多东西 找工作的人和考虑自己职业规划的人可以参考一下 分为以下几个部分 序言 第一章 职业生涯扬帆于
  • C语言的源程序有没有主函数,一个c源程序必须包含一个main函数吗

    是的 xff0c 必须包含一个main函数 main函数是程序默认的入口 xff0c 程序的执行是从main函数开始 xff1b 如果没有main函数 xff0c 则编译器不知道程序从哪里开始执行 xff0c 所以一个c源程序有且仅有一个主
  • PX4/PixHawk无人机飞控应用开发

    最近做的一个国防背景的field UAV项目 xff0c 细节不能多谈 xff0c 简单写点技术体会 1 PX4 Pixhawk飞控软件架构简介 PX4是目前最流行的开源飞控板之一 PX4的软件系统实际上就是一个firmware xff0c
  • PID算法终于弄明白原理了,原来就这么简单

    看起来PID高大尚 xff0c 实则我们都是被他的外表所震撼住了 先被别人唬住 xff0c 后被公式唬住 xff0c 由于大多数人高数一点都不会或者遗忘 xff0c 所以再一看公式 xff0c 简直吓死 了解了很浅的原理后 xff0c 结果
  • 开源自主导航小车MickX4(九)基于move_base 的自主导航框架

    开源自主导航小车MickX4 xff08 九 xff09 move base 导航框架 1 move base 导航框架整体分析1 1 map server1 2 AMCL定位1 3 move base 包 2 AMCL 定位 配置2 1
  • 解决莫名其妙出现connection closed的错误

    最近发现使用了springMVC的新项目偶尔出现connection closed 同事反映当访问同一个controller时经常出现类似错误 上回发现在使用 lt context component scan base package 6