最近一个项目使用ejb,但由于项目中原来使用了ejb2,现新功能又不想用ejb2,选择了ejb3,当选择jboss发布的时候,和ejb2产生了冲突,于是将jboss的容器换成了OpenEJB+tomcat,当然使用openEJB的效率比jboss的差,但勉强还能接受。
使用openEJB配置细节:
1.对访问的ip限制
apache-tomcat-5.5.28\conf\Catalina\localhost\openjeb.xml修改allow参数
2.增加stateless bean的最大可生成数量,调整apache-tomcat-5.5.28\conf\openjeb.xml配置文件中的值为200,默认值为10(根据自己项目的需求而定)
3.linux系统上允许打开的文件数默认只有1024,在实际的项目中可能不够用,需加大这个数量。
首先在linux系统上先查看ulimit -a
vr:~# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 32768 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 32768 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
看到open files 太小了 只有1024
需要改大到20000或者以上,不然会出现too many open files 的异常。属于网络异常。
调整方法 ulimit -n 20000
4.调大tomcat在 监听端口的连接数,默认是200,添加上 属性 acceptCount=“500” 。修改的文件是./conf/server.xml
5.最好把tomcat的内存调整到 1024mb,因为tomcat会有200个stateless bean,启动的时候需要绑定IP,因为ejb是通过网络的JNDI查找桩对象,如果不绑定IP,而你的电脑又有多个IP,可能在访问的时候一时能正常,一时不能正常。
启动命令 ./catalina.bat run -b 192.168.61.113
6.具体的openejb使用细节,可以查看官方的文档。