解决莫名其妙出现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的错误 的相关文章

  • 在 PHP 中一遍又一遍地打开 MySQL 连接会产生什么影响

    具体来说 我有一个 DB 类 每次调用类中的 Query 函数时 它都会打开和关闭多个 MySQL 连接 我应该打开一次连接吗 或者可以像这样打开和关闭连接吗 我的头脑简单 ISAM 无事务 C 语言应用程序每天运行八个小时 通过一个始终保
  • Phantomjs 加载页面缓慢

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

    我正在尝试将批量数据从 SQL Server 数据库恒定且连续地传输到 MYSQL 数据库 我想使用 SQL Server 的 SSMS 复制 但这显然仅适用于 SQL Server 到 Oracle 或 IBM DB2 的连接 目前 我们
  • 批量更新 Excel 文件连接字符串

    我们最近更改了 SQL 数据库服务器 我想知道是否有脚本或更简单的方法来更新所有 Excel 文件连接字符串 如果他们使用连接文件会容易得多 但不幸的是它们都是手动设置的 我们有大约 600 份报告 任何帮助深表感谢 Thanks Nick
  • iOS到Mac OS X【核心】蓝牙数据传输

    我的目标是在运行 iOS 的设备 to a 运行 Mac OS X 的设备 通过蓝牙 我知道我也许可以使用 CoreBluetooth 来实现此目的 但我不明白如何使用 因为我没有看到在iOS设备并将其作为可用服务进行广播运行 Mac OS
  • 指示远程主机已关闭连接的 NetworkStream.Read 的替代方案?

    关于使用以下命令处理 TCP IP 连接TcpClient类 除了等待之外 还有其他方法可以检查远程主机是否已关闭连接吗 NetworkStream Read返回0的方法 您可以使用IOControlCode KeepAliveValues
  • 将 Android 应用程序连接到远程数据

    谢什谈论的信息有限 我正在尝试让我的 Android 应用程序连接到在线数据库以访问信息 有相当多的信息 包括地理标签 这些信息将映射到我的应用程序上 开发者网站有非常丰富的信息 您可以使用网络 如果可用 在您自己的基于 Web 的服务上存
  • 如果未显式提交或回滚,则自动提交事务

    我们使用 Weblogic 服务器 并在连接到 Oracle 10g 时始终将 autoCommit 设置为 false 我想知道 Weblogic 中是否有一个设置 如果未从应用程序代码中显式调用提交或回滚 它将自动提交事务 我听说 We
  • 是否有理由为连接池设置 maxIdle > maxActive ?

    我刚刚学习连接池 我想知道是否有任何理由设置maxIdle gt maxActive 这是我的理解 空闲连接是已创建并等待使用的连接 一旦客户端借用它 它就会成为活动连接 minIdle确定要在池中创建的初始连接数 当客户端尝试使用该池时
  • 通过控制台应用程序连接到 Oracle,不能通过 Web 服务连接

    我无法通过 asmx Web 服务连接到 Oracle 模式 而可以通过控制台应用程序 x86 连接到 Oracle 模式 代码 var conn new OracleConnection Data Source xe User ID my
  • C# - 从客户端检查 TCP/IP 套接字状态

    我想为我的 TCP IP 客户端类提供 CheckConnection 函数 以便我可以检查是否发生了错误 我自己的客户端断开连接 服务器断开连接 服务器卡住等 我有类似的东西 bool isConnectionActive false i
  • Elasticsearch:如何查询连接数?

    如何询问我的 Elasticsearch 服务器现在有多少个连接 这与插座数量相同吗 我也不知道如何获得这些数字 这与客户端的数量不同 对吧 因为每个客户端可能打开多个连接 找不到任何相关信息 但我确实发现您可以在 Elasticsearc
  • 我该怎么做才能完全关闭与mcu的tcpClient连接?

    我现在正在研究与 ESP32 中运行的 tcp 服务器的 tcp 套接字连接 通信工作正常 但我无法关闭连接 在搜索关闭 重置 tcpClient 上的解决方案后 似乎关闭 tcpClient 的正确方法应该是 tcpClient GetS
  • 将字符写入 Java 套接字时 fsockopen 10053 错误

    Right 我正在尝试用 PHP 编写一个小脚本 将游戏中的聊天包发送到 Minecraft Deliberately low timeout mc fsockopen localhost 25565 errno err 3 现在 如果连接
  • SSIS:如何将项目连接管理器移动到包中

    我有一个 2012 SSIS 项目 其中在项目级别定义了许多连接管理器 该项目还包括许多引用这些连接管理器的包 现在我想将我的项目转换为部署模型 但向导指定我需要删除项目中的连接管理器 这意味着将连接管理器移动到包中 如何将项目级连接管理器
  • 使用嵌入qt的mysql?

    我正在尝试使用嵌入 QT 的 mysql 我已经有一个与 mysqld 链接的 Qt mysql 插件 该插件可以很好地加载嵌入式数据库 但 QT 没有简单的方法来设置 dataDir 等嵌入式选项 我在这里看到 http doc qt i
  • Xcode 4.3:IBOutlet 的重复连接

    我正在使用 Xcode 4 3 3 学习斯坦福 CS193p 课程 我认为下面的屏幕截图非常不言自明 但无论如何我都会用文字描述这个问题 我按住 Control 键将 UILabel 从 Storyboard 拖到相应的实现文件中 以使 I
  • 将 PySpark 连接到 AWS Redshift 时出错

    一直在尝试将我的 EMR 5 11 0 集群上的 Spark 2 2 1 连接到我们的 Redshift 存储 我遵循的方法是 使用内置的 Redshift JDBC pyspark jars usr share aws redshift
  • 如何使用 JavaScript 大致计算网站的连接速度?

    如何使用 JavaScript 大致计算网站的连接速度 我想创建一个像这样的javascript小部件 它将计算打开当前打开页面的速度 我想问是否可以仅使用 javascript 来完成此操作以及想法是什么 Update 请注意 页面大小始
  • 多个客户端如何同时连接到服务器上的一个端口(例如 80)? [复制]

    这个问题在这里已经有答案了 我了解端口工作原理的基础知识 但是 我不明白的是多个客户端如何同时连接到端口 80 我知道每个客户端都有一个唯一的 对于他们的机器 端口 服务器是否从可用端口回复客户端 并简单地声明回复来自 80 这是如何运作的

随机推荐

  • 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