Java池的概念
· 在Oracle中配置Java环境时有以下一些参数:
Ø SHARED_POOL_SIZE JVM缓存在共享池中;
Ø JAVA_POOL_SIZE 缓存与JAVA相关的会话数据,默认值20M,取值范围是1M到1G;(Oracle推荐,对于有JAVA的应用,将这个值设到50M或者更大)
IXDBA.NET技术社区
Ø JAVA_SOFT_SESSIONSPACE_LIMIT 当某个JAVA进程请求的内存超过这个限制时,会写一条消息到用户跟踪文件,默认值是0,最大值是4G;
Ø JAVA_MAX_SESSIONSPACE_LIMIT 当JAVA进程请求的内存超过这个参数的限制时,返回ora-29554的错误,默认值是0,最大值是4G;
· 测量JAVA池的性能有下面两种方法:
Ø Select * From V$sgastat Where Pool = 'java pool'; 观察这个查询,如果发现未使用内存很大或者不断增加,表示JAVA池可能分配了太多的内存,如果未使用内存很小或者不断减少,表示可能需要加大JAVA池的内存。
Ø 观察Statspack中的SGA breakdown difference,里面有JAVA池free memory的起始值和终止值,如果终止值总是很小或者接近零,表示JAVA池可能太小了;
· 改进JAVA池的性能主要是增大JAVA_POOL_SIZE这个参数,这个参数不能动态调整。