作者NullLife (接下来如何?)
看板java
标题[问题] was移转jboss问题求救
时间Wed Jan 25 16:35:26 2017
已经穷途末路了,只好上来请教各位高手解法或方向<(_ _)>
有一个专案,目的是将J2EE专案由java 1.4环境的was,
移转到现在1.8的jboss上。
目前已经厘清问题出在要连DB的connection上,
只要多一点request就会hand住不动,
hand住位置不定,很明显是thread-safe的问题。
他们用SQL Server 2008,driver使用sqljdbc不晓得哪一版...,
然後整个connection他们自己写的很可怕...
而且也拿不到source code,我只能用JD-eclipse在jar里下断点,
可是貌似只能一层,再往里面的断点就不理我了QQ
而且我们刚接手的时候发现它根本都没有去关连线,
就不晓得为什麽was可以活着这麽多年...
然後刚移转的时候,慢慢点个几次,达到conntcion设定的上限就会卡住,
於是我们去每一只接口的finally里面加上关连线的动作,
是强壮了点,但还是没解决问题...
翻遍了driver跟jboss DS相关资料都无解,
目前剩下jboss早期的版本还没测试...
想请问大大这种情况应该要怎麽起手?
我目前想法是was可以跑jboss却不行,
感觉应该两者在connection-pool的管理上不同造成的...
想请问
1.有没有追Thread-safe的好方法或概念?
2.有没有不变更大量code的前提下动手脚?
(我想到动态代理技术都需要有interface,但他们的古案并没有把模组切好...)
3.有没有方法可以大量decomplier .class档案成java档? 我们想翻来debug。
4.有没有比较好的庙介绍一下QQ
--
为什麽不说话 为什麽打哈欠
今天的天气这麽好 怎麽还愁眉苦着脸
让我们喝咖啡 让我们听音乐
让我们跨越了界线 让我们自在的聊天
黄玠
让我们每天心情都是星期天
生活一堆毛
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.12.132.161
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1485333331.A.D93.html
1F:推 KekeMonster: jd eclipse不是已经可以decompile+debug了吗?01/25 20:35
可是我操作起来,它只能停住进去jar的第一层,
我要再往jar里call的其他method就无法,它就不会停下来了QQ
会想翻出java code是我们可以插log来查状态,
不然真的不晓得它挂在jar里的哪里...
※ 编辑: NullLife (39.12.132.161), 01/25/2017 21:11:33
2F:推 csieflyman: 用 jstack 找出 runnable blocked 状态的 thread01/25 21:15
3F:推 csieflyman: connection pool 的相关属性值可从 MBean 看到01/25 21:22
4F:推 csieflyman: 使用 jdk 动态代理必须要有介面 但使用 CGLIB 就没有01/25 21:28
5F:→ csieflyman: 此限制01/25 21:28
6F:推 csieflyman: 可以用 VisualVM BTrace plugin 在执行期动态插入 log01/25 21:39
天啊,
csieflyman你是我的明灯,太感谢了!!
话说我一直以为CGlib是AOP的实作,是走动态代理的技术。
看起来我要重新好好了解一下了,太感谢大神啦~
7F:→ swpoker: 我应该实作connection,用filter去关闭连线 01/26 15:04
感谢以上的大大,後来找到问题出在写log时卡住了= ="
从thread stack来看,jboss有委托standard out,
而该古案的log机制是他们自己写的,
後来将古案的log导走就好了。
研判是刚好古案的log写法跟jboss log机制互冲才卡到,
所以was才跑了几十年都没事,jboss一跑就挂 囧
※ 编辑: NullLife (1.160.46.186), 01/30/2017 18:06:25