Tuning OPP in EBS Oracle EBS 11i&R12

优化指标

EBS中OPP(Output Post Processor)的优化,主要能够由下面3个方面来入手:java

  • Threads
  • Processes
  • Jvm memory argument

Threads & Processes

Threads和Processes的设置能够在并发管理器定义的页面中看到,以下:
图片描述
其中,2表明service threads的数量,max_threads参数控制request threads的数量。能够根据须要增长max_threads的值(max_threads能够说是定义OPP吞吐量的一个重要参数)。sql

Jvm memory argument

Jvm memory argument能够使用apps用户登陆数据库,运行下面sql获得:数据库

sqlSELECT service_id, service_handle, developer_parameters
  FROM fnd_cp_services
 WHERE service_id = (SELECT manager_type
                       FROM fnd_concurrent_queues
                      WHERE concurrent_queue_name = 'FNDCPOPP');

      SERVICE_ID SERVICE_HANDLE DEVELOPER_PARAMETERS
---------------- -------------- --------------------------------------------------------------------------------
            1080 FNDOPP         J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx512m

优化原则

Threads VS Processes

每一个OPP process都须要在OS中启动单独的java进程。因此在调优过程当中,建议先增长Threads的数量,Threads的数量受每一个process能够使用的内存限制,在已有的threads还不够用时,就须要增长process的数量了。并发

每一个OPP的process都会占用单独的内存,因此在增长process个数的时候,OS空闲内存就是要考虑的一个因素。oracle

Increase jvm memory

在OPP服务进程中出现outofmemory错误时,就须要增长jvm内存参数了,可以使用下面sql来调整OPP的jvm memory参数。调整以后须要重启OPP生效。app

sqlUPDATE fnd_cp_services
   SET developer_parameters =
                       'J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx1024m'
 WHERE service_id = (SELECT manager_type
                       FROM fnd_concurrent_queues
                      WHERE concurrent_queue_name = 'FNDCPOPP');

系统总体性能考虑

EBS中,OPP主要用来处理XML Publisher生成报表的请求,在11i和R12版本中,OPP使用32位java,因此单个OPP process最多只能使用4G内存(而Oracle建议的值为2G),因此从处理能力方面来看,单个OPP进程是受到很大限制的。在运行比较大的报表,出现outofmemory错误时,单纯增长process和threads已经不能很好解决问题,须要从报表的性能上去考虑。在处理比较小的报表请求时,较大的process和threads参数能够增长系统的吞吐量。jvm

相关文章
相关标签/搜索