idea多线程debug

标签: 多线程 intellij idea 调试
9人阅读 评论(0) 收藏 举报
分类:

问题描述

项目中需要多处用到数据库操作,为了减少耗时使用了新的线程去调用数据库的接口,但是使用intellij idea调试时发现数据一直没有插入到数据库,test下debug模式执行不成功。检查了代码,确定代码没问题。断点到插入数据库的命令上,按alt+F8执行Evaluate,报如下错误:

这里写图片描述

堆栈信息如下:(*—-公司信息,隐藏一下哈)

    org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Data source is closed
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:619)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:870)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:894)
    at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:287)
    at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:292)
    at com.***.framework.dal.client.support.executor.MappedSqlExecutor.execute4PrimaryKey(MappedSqlExecutor.java:609)
    at com.***.framework.dal.client.support.executor.MappedSqlExecutor.execute(MappedSqlExecutor.java:575)
    at com.***.framework.dal.client.support.executor.MappedSqlExecutor.execute(MappedSqlExecutor.java:563)
    at com.***.framework.dal.client.support.DefaultDalClient.execute(DefaultDalClient.java:271)
    at com.***.DAO.insertOrderLogs(OrderLogsDAO.java:36)
    at com.***.Thread.run(OrderLogsThread.java:81)
    at java.lang.Thread.run(Thread.java:748)

解决思路

  • 分析报错

    首先分析一下报错信息,报错信息很明显,数据库连接有问题。但是项目已经上线很久,比较成熟。JDBC配置不可能有问题。分析可能是代码编写有误。

  • 检查代码

    检查了代码发现没有问题,然后把已上线的数据库操作放过来执行,一样无法执行。同事说可能需要加上事务,虽然我觉得不太相关,还是测试了一下,依然不行。

  • 去掉多线程测试

    直接在主线程下执行数据库操作,发现可以正常操作数据库-。-
    开始怀疑新线程没有获取JDBC连接参数,但是断点断到数据库命令下,发现datasource有值,JDBC的配置都正确。一脸懵逼。。。

  • intellij idea配置

    上网查了一下,Idea会在我们调试一个线程时,屏蔽另一个线程的断点。也就是说debug模式下可能只有一个主线程在跑。这肯定没法接受。。。又折腾一会,发现idea提供了多线程调试的功能,在断点处右键:
    这里写图片描述
    它提供了两种挂起的模式,默认的是All,只需要选中Thread,它就会一直等待到你处理它。断点的位置一定要正确,run方法或者run以后调用的方法里,否则的话,程序跑完了,debug模式里也只有一个主线程在跑

  • 解决方法

    在Thread(t).start()下加上断点,右键选择Thread。断点断到之后,按F8单步执行一下,后面就可以正常调试了。

这里写图片描述

查看评论

Idea Intellij多线程调试

(适用Idea 14 & 15,其他版本未知)几天前遇到一个问题: 在多线程调试的时候,一些断点会被跳过。比如像下面的代码:public static void main(String[] args...
  • fuzzytalker
  • fuzzytalker
  • 2016-03-18 17:16:11
  • 20808

IntelliJ IDEA - Debug 调试多线程程序

IntelliJ IDEA - Debug 调试多线程程序 新建 MyRunnable public class MyRunnable implements Runnable { ...
  • nextyu
  • nextyu
  • 2018-01-11 23:29:18
  • 347

Idea Debug多线程不进断点问题处理

idea debug打得断点第一次可以进入,第二次不能进入 Idea也会使我狼狈不堪,Eclipse下约定成俗,却非Idea的默认规则。 比如 DEBUG多个线程时,Idea的...
  • deepwishly
  • deepwishly
  • 2017-01-22 09:19:38
  • 7096

使用idea debug多线程

最近采用hystrix远程访问webservice, 遇到一个重定向303的exception,想要debug一下,发现打了断点后总是被跳过。想到hystrix异步线程的问题,于是想要debug就得支...
  • u010006309
  • u010006309
  • 2016-09-20 17:52:32
  • 180

IDEA调试多线程

使用idea调试多线程的时候发现多线程无法调试,后来经过搜索发现,idea的断点有不同的模式,只有当Thread模式下才能调试多线程,设置方式如下: 在断点上右键 选择Thread,然后点Done(建...
  • KevinDai007
  • KevinDai007
  • 2017-05-08 14:39:04
  • 2823

IDEA 多线程Debug

一、问题描述 在idea中的进行调试时,代码中有多线程,想对线程中的代码进行跟踪,代码如下: for (int i = 0; i < 5; i++) { ...
  • u011781521
  • u011781521
  • 2018-02-04 12:04:35
  • 134

dea debug打得断点第一次可以进入,第二次不能进入

小白刚刚试用版idea,但是在debug的时候,断点只有第一次能够进入,第二次去不能进入,以为是idea的bug,翻阅啦好多的博客,和论坛,发现没有人解决这个问题,其实是debug的设置问题。只要改一...
  • tianmaxingkonger
  • tianmaxingkonger
  • 2017-08-18 15:42:13
  • 219

idea多线程debug问题

由于idea支持主线程和多线程的debug模式,所以在进行多线程debug时,需要对断点进行设置: 如图:通过点击左下角的红色按钮,我们可以找到指定的断点,对当前断点进行设置,如果是All,则是在主...
  • qq_23339149
  • qq_23339149
  • 2016-12-30 17:09:13
  • 288

关于IDEA中Debug的使用方法

使用IDEA软件进行java开发有两个月左右,之前一直使用的Eclipse,自从使用IDEA后真切地感受到这款软件的高效,比Eclipse要好用好多倍。关于快捷键以及其他的设置这里先不研究,主要是看看...
  • dsc2015
  • dsc2015
  • 2016-10-20 15:52:14
  • 8399

Maven项目在idea软件debug

1、把maven项目import 进来(maven工程区导入) (全默认下一步就行了) 2、添加maven项目运行命令,把项目debug运行起来 3、也可与在终端窗口下,运行 在...
  • u010363836
  • u010363836
  • 2017-02-09 11:01:41
  • 2566
    个人资料
    持之以恒
    等级:
    访问量: 3万+
    积分: 703
    排名: 7万+
    博客专栏
    最新评论