环境:

jdk1.7_32位

window server 2012

tomcat7.0安装版

概况:

在项目开发中,使用java的JNative调用window下的dll文件,在项目上线的初期试点,业务量不大的时候一切正常,但是随着使用的用户量变大,tomcat的服务会不定期的停止,出现保存文件hs_err_pid2844和hs_err_pid2844.mdmp文件,

打开hs_err_pid2844文件查看报错信息:

知道是这个dll的问题引起的报错,发现此dll和我JNative里面的调用的dll名称相同,那就是这个dll的问题引起的异常导致tomcat的服务器停掉。然后通过C++同事在此dll调用的方法中加入调用日志,发现在出现并发的时候容易引起服务停掉。从而猜想是由于dll不支持并发调用,随机编写一段多线程的调用程序

public class Simple_Test {   public static void main(String[] args) {for(int index=0;index<10;index++){MyThread_01 thread= new MyThread_01();thread.start();}}class MyThread_01 extends Thread
{Simple_Test t =new Simple_Test();@Overridepublic void run(){try{Thread.sleep(0);} catch (InterruptedException e){e.printStackTrace();
try {//dll测试方法t.dll_test();} catch (SksApiException e) {e.printStackTrace();}}
}

调用测试方法每次必现tomcat异常停止的问题,问题点找到了,就开始修改,我选择的方式是再调用的dll的方法上加上同步锁

synchronized

同步锁加上后测试,不再出现异常,问题得到解决。

总结 :

   tomcat的异常停止原因是dll不支持并发调用,需要在java的调用上加上同步锁,性能上是变慢了,但是稳定才是真理。

版权声明:本文为博主原创文章,转载请标注原文地址:https://blog.csdn.net/hu582205/article/details/80419801

Java 使用JNative调用dll出现tomcat服务异常停止相关推荐

  1. Dubbo远程调用找不到服务异常

    Dubbo远程调用找不到服务异常 1. 问题描述 2. 问题分析 3. 问题排查 3.1 服务提供者消费者是否正常 3.2 注册中心是否注册成功, 2.3 分别验证服务提供者与消费者 2.4 消费者和 ...

  2. java如何利用JNative调用dll文件

    下文参考自:http://blog.163.com/wex660@126/blog/static/2415306520103142363964/ 因为项目需要,用到了java调用dll文件中的方法.写 ...

  3. Java用JNA调用dll : Invalid memory access

    问题描述 java通过JNA调用C/C++ dll时,报Invalid memory access 问题原因 经过分析原因是数据类型不匹配问题 int &a 和 a 的区别 C语言中的a是一个 ...

  4. tomcat服务莫名其妙停止

    这里只讲述遇到的一种原因: 1. 服务停止 最初以为是jvm导致的,但是在/var/log并没有找到jvm致命错误日志(hs_err_pid.log) 又排除了GC情况,使用 jstat -gc pi ...

  5. tomcat 服务突然停止、日志排查以及解决方案

    文章目录 一.服务停止调研 1. jvm排查 2. 日志排查 3. 推测与ssh会话有关 二.ssh会话强制退出验证 2.1. 手动强制关闭进程1 2.2. 手动强制关闭进程2 2.3. 总结归纳与解 ...

  6. centos 7 java fonts_解决Centos 7 下 tomcat字体异常 Font '宋体' is not available to the JVM

    错误提示: SEVERE: Servlet.service() for servlet [example] in context with path [/myproject] threw except ...

  7. java 控制 crt_secureCRT关闭连接自动关闭tomcat服务

    下午遇到一个神奇的问题: secureCRT登陆某个服务器,用shell脚本启动./catalina.shstart,打开日志tail -f catalina.out,此时手动关闭连接窗口,导致tom ...

  8. 调用dll中的服务 提取不到数据_双枪团伙新动向,借云服务管理数十万僵尸网络...

    0x01 概述 近日,我们的域名异常监测系统 DNSMon 捕捉到域名 pro.csocools.com 的异常活动.根据数据覆盖度估算,感染规模超过100k.我们通过告警域名关联到一批样本和 C2, ...

  9. Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...

     开发平台:vs2013 他人提供的动态库文件,包含 .lib 文件和 .dll 文件 在VS的工程中常常要设置头文件的包含路径和库文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...

最新文章

  1. 研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强
  2. matlab学习——1.基本操作
  3. 巡检水中机器人_物联卡的应用,管廊隧道巡检机器人“上岗”啦!
  4. [ZT]介绍 10 款非主流的 Web 浏览器
  5. Pandas学习笔记1(序列部分)
  6. Struts2 文件上传
  7. 文件流——Excel文件数据读写
  8. 解锁用户及数据库表,锁死进程
  9. ffmpeg推流 av_dict_set 参数设置解析(降低延时、处理花屏、改善画面质量)(实时更新)
  10. 机器学习入门——线性回归详细分析
  11. angular2+ 中封装调用递归tree
  12. jsp分页带条件查询时,点击上一页或下一页,没有按条件查询数据。
  13. kaggle TMDB5000电影数据分析和电影推荐模型
  14. linux otl mysql_Linux下使用OTL操作mysql数据库
  15. 关于Negative values in data passed to MultinomialNB (input X)报错问题
  16. msp430开发环境安装
  17. 硅谷课堂的所有流程图和总结
  18. 如何利用qiankun快速搭建一个微前端项目
  19. 这场蝴蝶效应,从“丝滑”的双11开始
  20. OpenCart之特色商品(Featured)模块教程

热门文章

  1. vue中props的用法
  2. 北大教授饶毅500余字毕业典礼致全文
  3. 苹果手机查找显示无法连接服务器是怎么回事,iphone手机无法连接服务器怎么办?贝锐网站建站有哪些特点?...
  4. 这种公司就应该和他硬刚!!!
  5. 你的第一个独立游戏失败了?告诉你下一步该做什么
  6. Diresearch 默认字典位置与自定义字典使用方法
  7. 关于政府救楼市自己的一点天真的看法
  8. 攀爬Spring珠穆拉玛峰:preInstantiateSingletons方法、三级缓存、循环依赖
  9. Ms08067 腊八节浓情腊八粥温暖安全人主题活动
  10. 电商4.0项目【三】: 用户模块(8081)