Java 使用JNative调用dll出现tomcat服务异常停止
环境:
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服务异常停止相关推荐
- Dubbo远程调用找不到服务异常
Dubbo远程调用找不到服务异常 1. 问题描述 2. 问题分析 3. 问题排查 3.1 服务提供者消费者是否正常 3.2 注册中心是否注册成功, 2.3 分别验证服务提供者与消费者 2.4 消费者和 ...
- java如何利用JNative调用dll文件
下文参考自:http://blog.163.com/wex660@126/blog/static/2415306520103142363964/ 因为项目需要,用到了java调用dll文件中的方法.写 ...
- Java用JNA调用dll : Invalid memory access
问题描述 java通过JNA调用C/C++ dll时,报Invalid memory access 问题原因 经过分析原因是数据类型不匹配问题 int &a 和 a 的区别 C语言中的a是一个 ...
- tomcat服务莫名其妙停止
这里只讲述遇到的一种原因: 1. 服务停止 最初以为是jvm导致的,但是在/var/log并没有找到jvm致命错误日志(hs_err_pid.log) 又排除了GC情况,使用 jstat -gc pi ...
- tomcat 服务突然停止、日志排查以及解决方案
文章目录 一.服务停止调研 1. jvm排查 2. 日志排查 3. 推测与ssh会话有关 二.ssh会话强制退出验证 2.1. 手动强制关闭进程1 2.2. 手动强制关闭进程2 2.3. 总结归纳与解 ...
- 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 ...
- java 控制 crt_secureCRT关闭连接自动关闭tomcat服务
下午遇到一个神奇的问题: secureCRT登陆某个服务器,用shell脚本启动./catalina.shstart,打开日志tail -f catalina.out,此时手动关闭连接窗口,导致tom ...
- 调用dll中的服务 提取不到数据_双枪团伙新动向,借云服务管理数十万僵尸网络...
0x01 概述 近日,我们的域名异常监测系统 DNSMon 捕捉到域名 pro.csocools.com 的异常活动.根据数据覆盖度估算,感染规模超过100k.我们通过告警域名关联到一批样本和 C2, ...
- Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...
开发平台:vs2013 他人提供的动态库文件,包含 .lib 文件和 .dll 文件 在VS的工程中常常要设置头文件的包含路径和库文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...
最新文章
- 研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强
- matlab学习——1.基本操作
- 巡检水中机器人_物联卡的应用,管廊隧道巡检机器人“上岗”啦!
- [ZT]介绍 10 款非主流的 Web 浏览器
- Pandas学习笔记1(序列部分)
- Struts2 文件上传
- 文件流——Excel文件数据读写
- 解锁用户及数据库表,锁死进程
- ffmpeg推流 av_dict_set 参数设置解析(降低延时、处理花屏、改善画面质量)(实时更新)
- 机器学习入门——线性回归详细分析
- angular2+ 中封装调用递归tree
- jsp分页带条件查询时,点击上一页或下一页,没有按条件查询数据。
- kaggle TMDB5000电影数据分析和电影推荐模型
- linux otl mysql_Linux下使用OTL操作mysql数据库
- 关于Negative values in data passed to MultinomialNB (input X)报错问题
- msp430开发环境安装
- 硅谷课堂的所有流程图和总结
- 如何利用qiankun快速搭建一个微前端项目
- 这场蝴蝶效应,从“丝滑”的双11开始
- OpenCart之特色商品(Featured)模块教程
热门文章
- vue中props的用法
- 北大教授饶毅500余字毕业典礼致全文
- 苹果手机查找显示无法连接服务器是怎么回事,iphone手机无法连接服务器怎么办?贝锐网站建站有哪些特点?...
- 这种公司就应该和他硬刚!!!
- 你的第一个独立游戏失败了?告诉你下一步该做什么
- Diresearch 默认字典位置与自定义字典使用方法
- 关于政府救楼市自己的一点天真的看法
- 攀爬Spring珠穆拉玛峰:preInstantiateSingletons方法、三级缓存、循环依赖
- Ms08067 腊八节浓情腊八粥温暖安全人主题活动
- 电商4.0项目【三】: 用户模块(8081)