webphere jvm

具体原因可能是这样

1。数据库死锁检查为-1,表示系统不检查死锁
2。我们用的明宇报表工具在建立批量报表(用的是create view)的时候,如果数据量过多系统会产生很多的s锁,如果两个进程同时访问报表的话,服务器就可能会挂掉,因为这是第三方软件,我们是无法修改的,现在只能将调用报表的print方法弄成串形方法,牺牲性能来保证其他的一些东西

在尝试上面两个方法后,发现还是有死的情况

1。检查websphere配置,我们所有的工作流流程数据在启动服务的时候都是加载到内存中的,启动我们的应用最大的一个javaw.exe占用350m内存,其他还有4个javaw.exe,但都没过100m,服务器是普通ibmpcserver,内存1G,ECC的,websphere配置里面默认的配置如下:

JVM: (未更改前)
服务器->应用程序服务器->server1->进程定义->Java 虚拟机
初始堆大小 0最大堆大小 0
线程池: 
服务器->应用程序服务器->server1->进程定义->Web 容器->线程池
最小大小 2最大大小 10 
数据源连接池: 
资源->JDBC 提供程序->(作用域选择服务器,应用) JDBC Driver->数据源->db2->连接池
最大连接数 0最小连接数 10

JVM(更改后): 
服务器->应用程序服务器->server1->进程定义->Java 虚拟机
初始堆大小 128 最大堆大小 512 
线程池: 
服务器->应用程序服务器->server1->进程定义->Web 容器->线程池
最小大小 20 最大大小 100 最小/最大=1/5 
数据源连接池: 
资源->JDBC 提供程序->(作用域选择服务器,应用) JDBC Driver->数据源->db2->连接池
最大连接数 30 最小连接数 10

更改后观察了4天,好象目前还没有死机,有待继续观察

你可能感兴趣的:(jvm,应用服务器,jdbc,db2,websphere)