扩容resin最大链接数并发容量上限的方法

方法一:
1.找到要修改的字节码class文件:resin.jar->com/caucho/server/port/Port.class
2.找到和自己使用的resin同版本的源代码(如:resin-pro-3.1.3)
3.打开字节码文件Port.class,查看所使用的JDK版本,第7~8个字节是0x0031,对应的是Java 5(JDK1.5)
//3.1 参考学习链接:https://www.cnblogs.com/yougewe/p/9710142.html
//3.2 查看版本号另一方法:反编译class文件 javap -verbose xxx.class “major version”对应的就是10进制的版本号
4.在com/caucho/server/port/Port.java文件中找到代码“private int _connectionMax = 512 ; ” ,将512修改为10240。
5.使用对应的JDK版本编译com/caucho/server/port/Port.java, 得到新的Port.class
6.将新的Port.class更新resin.jar包中的com/caucho/server/port/Port.class文件
//6.1 jar uf resin.jar com/caucho/server/port/Port.class
//6.2 参考学习链接:https://blog.csdn.net/huangbaokang/article/details/99971342
7.将resin/conf/resin.conf中的<thread-max>1024</thread-max>值修改为10240
8.重启resin生效

方法二
去弄一个旧的JDK1.5和找resin源代码是一件痛苦的事情,我们不如直接在字节码文件里找到那个512然后改成10240来得快吧(这个文件里只有一个512,所以我们这个方法应该是可行的,多的话就比较难确定是哪个了)
1.反编译class文件 javap -verbose Port.class
2.搜索“_connectionMax”找到下面这一段
        30: aload_0
        31: sipush        512
        34: putfield      #13                 // Field _connectionMax:I
        37: aload_0
3.通过学习,我们知道
3.1 aload_0 对应的字节码是0x2a
3.2 sipush对应的字节码是0x11
3.3 十进制的512转化为16进制后是0x0200
3.4 putfield对应的字节码是0xb5
3.5 #13对应的字节码是0x000d
3.5 aload_0 对应的字节码是0x2a
4.在Port.class字节码文件里搜索 “2a 11 02 00 b5 00 0d 2a”,将“0200”改为“2800
//4.1 2800是10进制数10240的16进制
//4.2 字节码搜索结果有两处需要修改[Code部分的字节码会重复一次,具体原因这里本人未能理解,有会的麻烦教一下我重复这一段Code部分的字节码代表什么意思,谢谢!]
5.同方法一6~8步

参考学习链接:
1.https://www.cnblogs.com/yougewe/p/9710142.html
2.https://zhuanlan.zhihu.com/p/64411980
3.https://blog.csdn.net/huangbaokang/article/details/99971342
4.http://www.blogjava.net/jelver/articles/183345.html
5.http://2hei.net/resin_http_pressure_test.html

猜你喜欢

转载自blog.csdn.net/zhongjuelong/article/details/111387193
今日推荐