An Oracle White Paper 10-September-2010

PeopleTools Performance Guidelines

.

Table of Contents

TABLE OF CONTENTS ............................................................................................................................................................. 2 CHAPTER 1 - INTRODUCTION .............................................................................................................................................. 6 Structure of this white Paper Related Materials 6 6

CHAPTER 2 - APPLICATION SERVER GUIDELINES ...................................................................................................... 8 Application Server Memory Guidelines 8 Determining PeopleSoft AppServer Memory Usage Under NT................................................................................................. 8 Determining If Excessive Memory Swapping Happens Under NT ............................................................................................ 9 Determining Memory Usage on UNIX ...................................................................................................................................... 9 Determining If Excessive Memory Swapping Occurs Under UNIX ........................................................................................ 10 Application Server Recycle Count 10 Background .............................................................................................................................................................................. 10 Recommendation ...................................................................................................................................................................... 10 Application Server Dynamic Recycle (PeopleTools 8.48 and Later) Shared Cache for Application Server Preload Cache (PeopleTools 8.48 and Later) PSAPPSRV Instances Use Parallel Boot Set Application Server JVM Options Confirm That the Required Bea Tuxedo Version and Minimum Rolling Patch Are Installed 11 11 13 13 14 14 14

CHAPTER 3 - WEB SERVER GUIDELINES ....................................................................................................................... 15 Confirm That the Required Web Server Version, Service Pack, and JRE Version Are Installed Use Jolt Session Pooling (PeopleTools 8.48 and Later) Use Strict Failover and Weighted Load-Balancing (PeopleTools 8.48 and Later) 15 15 15

Oracle Application Server (Oracle AS) 16 Set JVM Heap Size to 256MB or Higher ................................................................................................................................. 16 Capture JOLT Request Timing Traces ..................................................................................................................................... 16 Modify Apache KeepAlive Setting .......................................................................................................................................... 16 Modify ThreadsPerChild and Oc4jCacheSize .......................................................................................................................... 17 Disable HTTP Request Logging in mod_oc4j ......................................................................................................................... 17 Generate Heap Dumps on OutOfMemoryError ........................................................................................................................ 17 WebLogic 17 Log level Setting (PeopleTools 8.49 and Later) ....................................................................................................................... 18 Confirm That the Posix Performance Pack is Loaded .............................................................................................................. 18 Set Thread Count ...................................................................................................................................................................... 19 Confirm JRE Version ............................................................................................................................................................... 19 Set JVM Heap Size to 256MB or Higher ................................................................................................................................. 19

2

PeopleTools Performance Guidelines White Paper 9/10/2010 Set OS File Descriptor to 100*ThreadCount ............................................................................................................................ 19 Lower OS TCP/IP Cleanup/Timeout Settings .......................................................................................................................... 20 Monitor JVM Garbage Collection ............................................................................................................................................ 20 Disable Servlet Reload ............................................................................................................................................................. 20 Capture JOLT Request Timing Traces ..................................................................................................................................... 21 WebSphere 21 Log Level Setting (PeopleTools 8.49 and Later) ..................................................................................................................... 21 Ensure That JIT is Enabled and Class Verification is Skipped ................................................................................................ 22 Setup and Configuration ........................................................................................................................................................... 22 Set Thread Count ...................................................................................................................................................................... 22 Set JVM Heap Size to 256MB or Higher and Monitor JVM Garbage Collection ................................................................... 22 Other JVM Options .................................................................................................................................................................. 23 Disable Servlet Reload ............................................................................................................................................................. 23 Capture JOLT Request Timing Trace ...................................................................................................................................... 24 Using Resource Analyzer ......................................................................................................................................................... 25 CHAPTER 4 - WEB BROWSER CONFIGURATION ......................................................................................................... 26 Microsoft Internet Explorer ...................................................................................................................................................... 26 Netscape Browser ..................................................................................................................................................................... 26 HTTP 1.1 Compliant Web Browser ......................................................................................................................................... 26 CHAPTER 5 - ADDITIONAL CONFIGURATIONS............................................................................................................ 28 Browser Compression Caching Navigation Pages Caching HTTP KeepAlive 28 28 29 30

Reducing TCP Wait Time 30 For Windows NT ...................................................................................................................................................................... 30 For AIX .................................................................................................................................................................................... 30 For HP/UX 11 or Solaris 2.8 and Later .................................................................................................................................... 31 For Solaris Prior to 2.8 ............................................................................................................................................................. 31 AIX Thread Model Timeout Settings 31 31

CHAPTER 6 - INTEGRATION BROKER ............................................................................................................................ 34 Configure PSBRKHND Message Broker Handler Optimize Message Queue Versus Message Consumption Use of Message Segments for Oracle Delivered Full Sync Service Operations Optimize One Message Versus Multiple Messages per Queue 34 34 34 35

Tuning PSADMIN Parameters for Asynchronous Messaging 35 DISPATCHER Parameters....................................................................................................................................................... 35 PSPUBDSP only ...................................................................................................................................................................... 36 HANDLER Parameters ............................................................................................................................................................ 36 PSPUBHND only ..................................................................................................................................................................... 36 Tuning PSADMIN Parameters for Synchronous Messaging Configure Dedicated Message Servers for High Volume Asynchronous Messaging Configure Dedicated Multiple Domains for High-Volume Asynchronous Messaging 36 37 37

© Copyright Oracle. All rights reserved.

3

PeopleTools Performance Guidelines White Paper

9/10/2010

Application Guidelines for Asynch Messaging 38 Application Guidelines for Sync Messaging ............................................................................................................................ 38 Configure Load Balance Interval (PeopleTools 8.48 and Later) Master/Slave Reducing Maximum App Message Size MultiThreaded Integration Broker (PeopleTools 8.46 and Later) Scan Time Setting for App Messaging PUBSUB Error And App Server Log File Growing 39 39 39 39 40 40

CHAPTER 7 - OPERATING SYSTEM SETTINGS ............................................................................................................. 41 For Linux 41 TCP_WAIT .............................................................................................................................................................................. 41 For Solaris For HP-UX For Tru64 41 42 42

CHAPTER 8 - CALL TELEPHONY INTERFACE (CTI) ................................................................................................... 44 RENServer Parameters (psrenconfig.txt) PSMCAPI Parameters (Renclient.Properties) PSMCAPI Java Options (StartServer.bat) 44 44 45

CHAPTER 9 - PSAE AND PSAESRV .................................................................................................................................... 46 CHAPTER 10 - REPORTING TOOLS .................................................................................................................................. 47 XMLPublisher (PeopleTools 8.48 and Later) Business Objects Enterprise (PeopleTools 8.48 and Later) 47 47

CHAPTER 11 - MONITORING TOOLS ............................................................................................................................... 48 PeopleSoft Ping ........................................................................................................................................................................ 48 psadmin .................................................................................................................................................................................... 48 PeopleSoft Performance Monitor ............................................................................................................................................. 48 CHAPTER 12 - VERSION 8.50 GUI ENHANCEMENTS.................................................................................................... 49 Version 8.50 Enhancements ..................................................................................................................................................... 49 Autocomplete (aka Type Ahead) .............................................................................................................................................. 49 Swan Look and Feel ................................................................................................................................................................. 49 Partial Page Refresh (aka Ajax Updates) ................................................................................................................................. 49 Modal Windows ....................................................................................................................................................................... 49 Scrollable Grids / Grids Zoom ................................................................................................................................................. 50 Mouse Over Pages .................................................................................................................................................................... 50 Deferred Mode vs. Interactive Mode........................................................................................................................................ 50 CHAPTER 13 - QUERY ACCESS SERVICE (QAS) ............................................................................................................ 51 QAS .......................................................................................................................................................................................... 51 Synchronous Query Execution ................................................................................................................................................. 51

PeopleTools Performance Guidelines White Paper 9/10/2010 Asynchronous Query Execution ............................................................................................................................................... 51 Sync/Poll Query Execution ...................................................................................................................................................... 52 Performance Considerations ..................................................................................................................................................... 52 Configuration Recommendations ............................................................................................................................................. 53 APPENDIX B – REVISION HISTORY ................................................................................................................................... 54 Authors ..................................................................................................................................................................................... 54 Reviewers ................................................................................................................................................................................. 54 Revision History ....................................................................................................................................................................... 54

© Copyright Oracle. All rights reserved.

5

Although this document does not address every conceivable problem that you could encounter with Tuxedo. the structure. Integration Broker. compare the date of your version to the date of the version posted on My Oracle Support. Web Browser. and programmers who implement. and OS Kernel. you read information related to PeopleSoft Internet Architecture that is found in the PeopleTools PeopleBooks. In this white paper. headings. the PeopleSoft Application Server. we provide guidelines on how to diagnose a PeopleSoft Online Transaction environment. To ensure that you have a well-rounded understanding of our PeopleSoft Internet Architecture technology. system administrators. we recommend that you have a basic understanding of system administration. or develop applications for Oracle’s PeopleSoft Enterprise Applications. installers. and how to use PeopleSoft applications. To take full advantage of the information covered in this document. 6 . basic Internet architecture. Much of the information contained in this document originated within the PeopleSoft Global Support Center and is therefore based on "real-life" problems encountered in the field. Web Server.Introduction This white paper is a practical guide for technical users. or your web server. STRUCTURE OF THIS WHITE PAPER This white paper provides guidance across the major PeopleSoft Internet Architecture components: Application Server. relational database concepts/SQL. the issues that appear here are the problems that prove to be the most common or troublesome. Please note that much of the information in this document eventually gets incorporated into subsequent versions of the PeopleBooks. and length of this document are likely to vary with each posted version. including PeopleSoft Internet Architecture and Portal configuration. This document does not cover configuration of batch processes. To see if the document has been updated since you last downloaded it. This document is not intended to replace the documentation delivered with the PeopleTools 8 or 8. we recommend that before you read this document. content. RELATED MATERIALS This white paper is not a general introduction to environment tuning. maintain. Therefore. Many of the fundamental concepts related to PeopleSoft Internet Architecture are discussed in the following PeopleSoft PeopleBooks:       PeopleSoft Internet Architecture Administration (PeopleTools|Administration Tools|PeopleSoft Internet Architecture Administration) Application Designer (Development Tools|Application Designer) Integration Broker (Integration Tools|Application Messaging) PeopleCode (Development Tools|PeopleCode Reference) PeopleSoft Installation and Administration PeopleSoft Hardware and Software Requirements © Copyright Oracle. and we assume that our readers are experienced IT professionals with a good understanding of PeopleSoft Internet Architecture. All rights reserved.4x PeopleBooks.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 1 . Keep in mind that PeopleSoft updates this document as needed so that it reflects the most current feedback that we receive from the field.

The use of this information or the implementation of any of these techniques is a customer responsibility and depends upon the customer's ability to evaluate and integrate these techniques into their operational environments. and IBM documentation.PeopleTools Performance Guidelines White Paper 9/10/2010 Additionally. © Copyright Oracle. and IBM Websphere. All rights reserved. Oracle assumes no responsibility for its accuracy or completeness. BEA Weblogic/Tuxedo. 7 . we recommend that you to read documentation on Oracle Application Server. The material here is published as is. See your PeopleSoft Installation and Administration PeopleBooks for directions on accessing the Oracle. BEA. This white paper has not been submitted for any formal PeopleSoft testing process and has not undergone rigorous review.

you should see some small amount of queuing for the psappsrv processes. If you have too many processes. d) Run the command pq. Ensure that you don't have too many PSAPPSRV processes booted. If you are swapping. Here are some tips that you can do to see if you need more memory for your application server: 1. 4. and production domains on a computer in your calculation. Follow this guideline for the memory footprint for the PSAPPSRV:    CRM and HRMS use about 100-150 MB per application server process (CRM gets 50 users per process. The # Queued column displays the queue length for that application server process. each PSAPPSRV caches only a portion of the user panels). Use NT TaskManager to monitor all the PeopleSoft processes. for example. ―Memory swapping‖ is the most likely culprit. b) Go to PeopleSoft Domain Administration for the specific domain name. A common problem is having four large domains on one computer with insufficient memory.Application Server Guidelines APPLICATION SERVER MEMORY GUIDELINES Lack of memory resources on the application is the most common cause of serious online performance issues. During peak usage times. Word. Ensure that you include all test. 8 . perform the following steps: a) Run psadmin. If you are experiencing more than 4 seconds of response time for every (as opposed to just a few transactions) web page refresh. To determine the queue length of the specific domain. but also each PSAPPSRV is not sufficiently cached (that is. application server memory is probably to blame. You may experience these same problems when trying to run Microsoft PowerPoint. The extra PSAPPSRV processes not only take up memory space and CPU time from the OS.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 2 . Check for swapping by using the memory monitoring procedures outlined in the following sections. either add more memory or reduce the number of domains or PSAPPSRV processes on the computer. c) Select TUXEDO command line. and Excel on a PC with 12 MB of memory. © Copyright Oracle. Supply Chain uses 300-500 MB per process (you get about 10-20 users per process). 2. Check your memory utilization on the application server when you experience performance problems. Determining PeopleSoft AppServer Memory Usage Under NT To determine PeopleSoft Application Server memory usage under NT: 1. if you have 1GB of memory available for a financials application server. 5. Fully caching each PSAPPSRV takes more time. Financials uses 150-300 MB per process (you get about 20-30 users per process). development. So. performance is compromised. 3. All rights reserved. boot no more than four PSAPPSRV processes. HRMS gets less).

However. Determining If Excessive Memory Swapping Happens Under NT To determine if excessive memory swapping happens under NT: 1. the paging file) than physical memory. and then the Page/sec. Reduce the number of PSAPPSRV processes or add more memory to the server. All rights reserved. 2. therefore. 2. The Memory Usage columns includes the shared libraries loaded into each process. Memory Usage is not the entire memory consumption of the process. This counter includes paging traffic on behalf of the system cache to access file data for applications. an application may be using much more Virtual Memory (that is. Start the NT Performance Monitor. we have created several UNIX vendor-specific shell scripts to monitor the Performance Monitor parameters. Sort the process by name. Because PeopleSoft shares a lot of the common libraries. You can obtain the monitoring shell scripts from My Oracle Support document id 333300. Pick the Memory Usage and Virtual Memory Size columns. When page/sec is greater than 100 hard pages per second. perfmon. if you add up all the processes. 3.543 MB 11 % © Copyright Oracle. The total Memory Usage and the VM Size of the combined PeopleSoft processes should not be greater than 70 percent of the real memory of the server. the summation of all PeopleSoft processes is a quick estimator. not an absolute measurement of memory usage. This is the sum of Pages Input/sec and Pages Output/sec. and the two memory columns will tell you approximately the amount of memory that each PeopleSoft process is using. thrashing) and the excessive paging that may result. Start TaskManager and select View from the menu bar.PeopleTools Performance Guidelines White Paper 9/10/2010 PeopleSoft process names begin with ps. you will be ―double counting‖ the shared libraries portion. This value also includes the pages to/from noncached mapped memory files. under Memory. so if you're gauging memory at all. and then select Select Columns. with NT. but only the amount of physical RAM that the process is using. 9 . Determining Memory Usage on UNIX To help the end user better understand the memory consumption and CPU usage of the PeopleSoft Application Domain. there is a swapping problem. you must select both of these fields.1 Here is a sample output of the ps_chk_domain script: Please Enter your application server domain name? PT84 Please Enter interval in seconds? 10 Please Enter # of interval's? 100 Tue Oct 23 23:00:33 PDT 2001 For all PS Processes: Resident memory size is: CPU for PS Processes: 123. This is the primary counter to observe if you are concerned about excessive memory pressure (that is. Pages/sec is the number of pages read from the disk or written to the disk to resolve memory references to pages that were not in memory at the time of the reference. Add the Object Counter.

The output of ps_chk_domain.559 MB Resident memory refers to the real physical memory currently required by the process for its operation. You can also run sar -q to check paging or run vmstat -s and take multiple samples to see if the page ins and outs to paging space are the majority of the total paging.sh divides the portion of PSAPPSRV processes from the entire domain so that the end-user (or system administrator) can get a better understanding with the distribution of the memory resources. keep the Recycle Count at a realistic level. In order to effectively manage the memory footprint of the AppServer.PeopleTools Performance Guidelines White Paper Virtual memory size is: 9/10/2010 198. Determining If Excessive Memory Swapping Occurs Under UNIX To determine if excessive memory swapping occurs under UNIX.453MB CPU for PS Processes: 9% Virtual memory size is: 106. To check whether paging is a problem. run vmstat and check out the pi column to see if you are doing much paging in and po for paging out. (See the previous session for information how to determine memory swapping. the occupied memory is released. paging to a file system occurs and impacts user experience. Adjust the recycle count so that no memory swapping is introduced because of a high recycle count value.000. Virtual memory refers to the process virtual address size. We recommend that the total resident memory for the entire PS Processes not exceed 70 percent of the total real memory available on the server. 10 . use vmstat to determine if the OS is swapping. When the AppServer terminates. the amount of physical memory occupied by the AppServer processes also increases. the AppServer terminates and restarts itself. you should lower the RecycleCount of the AppServer. Recommendation We recommend that you set the recycle count to 5. Background The AppServer processes use physical runtime memory to cache Panel objects in order to speed up user response time.098MB For all PSAPPSRV Processes: Resident memory size is: 108. which includes memory that has been paged out to the physical disk. When the AppServer reaches the specified Recycle Count value. All rights reserved. as the number of requests serviced by the AppServer increases.) © Copyright Oracle. APPLICATION SERVER RECYCLE COUNT The Application server recycle count parameter dictates the number of services after which the AppServer automatically restarts. However. When the amount of memory occupied by the AppServer becomes too large (relative to the real memory available at the time). If the virtual memory continues to increase. instead of fetching the Panel objects from the database server every time.

. Note: You must preload all the necessary cache objects before you can enable the Shared Cache feature. 2 Server File caching for all types EnableServerCaching=2 ----------------------------------------------------------------------- APPLICATION SERVER DYNAMIC RECYCLE (PEOPLETOOLS 8. When you enable this feature. ----------------------------------------------------------------------. the processes can grow big. To run the LOADCACHE program: 1. The application server will continue to accept requests beyond the recycle count until its memory growth (that is not due to metadata loads) exceeds the configurable threshold. If you set the recycle count too high. EnableServerCaching . resulting in reduced response times due to swapping or increased likelihood of crashing due to memory violation. consult the PeopleBook: System and Server Administration under PSAPPSRV Options. Speeds up operation because all managed objects are cached into the common directory ahead of time. Shared cache provides the following benefits:   Saves disk space because all AppServer processes use the same common directory to read the file cache contents. the application server will service (at a minimum) the number of requests specified by the recycle count. All rights reserved. SHARED CACHE FOR APPLICATION SERVER PeopleTools 8.PeopleTools Performance Guidelines White Paper 9/10/2010 To minimize the cost of recaching the AppServer.48 and later provides a new feature to recycle an app server process when its memory growth exceeds a configurable threshold. customers can use the recycle count achieved using the memory growth option in the staging environment as a static recycle count in the production environment. Customers who are interested in this feature should initially experiment with it in a staging environment to determine an appropriate threshold for their specific applications and environments before using the feature in production. PeopleSoft installation is supplied with an Application Engine program called LOADCACHE to help customers generate preloaded shared cache. more process restarts will occur. the LOADCACHE program may fail. set the EnableServerCaching=2 (the default value is 2). 1 Server File caching limited to most used classes . then the system logs a delaying recycle message. Note that if an app server exceeds the threshold before reaching the recycle count. To enable Server Caching.48 AND LATER) Application server restarts can cause inconsistencies in response times.4x has a shared cache feature in which the various psappsrv processes in an app server domain use a single set of cache files rather than separate cache files for each process. you must enable File Cache on the AppServer. If you set the recycle count too low. If SYSAUDIT is not clean. Optionally. To use this feature. 11 © Copyright Oracle. 0 Server File caching disabled . Ensure that the database that the application server runs against produces clean SYSAUDIT runs. instead of retrieving from the database tables on demand. All managed objects are included in the shared cache files so that objects are not loaded from the database. Ensure that the user who is running the program has defined the Load Application Server Cache component to the Permission List in User Profile. PeopleTools 8. 2.

============================================ . EnableServerCaching .cfg of the domain. Enter the appropriate Run Control ID. The first time that you run the process.0 One cache directory per App Server Process . 7.1 Server File caching limited to most used classes .CacheBaseDir=%PS_SERVDIR%\CACHE . Administration. 12 . 4. Settings for Tools that use Cache . psprcs. The Load Application Server Cache page appears. Ensure that ServerCacheMode equals 0.40 and later) Select PeopleTools. Ensure that the Run Location is set to Server. [Cache Settings] .2 Server File caching for all types EnableServerCaching=2 © Copyright Oracle. Wait for the process to become Success.4x. CacheBaseDir = the base cache directory .----------------------------------------------------------------------. 5. However. Shut down your application server domain.0 Server File caching disabled .0 Server File caching disabled . 8.2 Server File caching for all types EnableServerCaching=2 . (For PeopleTools 8.PeopleTools Performance Guidelines White Paper 9/10/2010 Find or add the Utilities page for the users permission list and add the Load Application Server Cache component. EnableServerCaching .============================================ CacheBaseDir=%PS_SERVDIR%\CACHE . it may take 4 to 5 hours. Utilities.----------------------------------------------------------------------. set it to 2. Load Application Server Cache. In the Output Directory. and reconfigure the domain so that the changes are reflected. (For PeopleTools 8.1 Shared Cache ServerCacheMode=0 3. All rights reserved.42 and earlier only) Check your psprcs.----------------------------------------------------------------------. 3.1 Server File caching limited to most used classes . specify the directory where you want the cached metadata to be written: Unix example> /ds1/home/testora/pt814c1/PT814U25/appserv NT example> c:\temp\ 6.cfg file (Process Scheduler configuration file) and set it appropriately. Select the correct process scheduler and click Run. The LOADCACHE reads this setting and caches metadata according to the value specified in the Process Scheduler configuration. You may have to add a new value here.----------------------------------------------------------------------.============================================ . For PeopleTools 8. ServerCacheMode .cfg is where you specify the type of objects to cache using the EnableServerCaching parameter. Settings for Tools that use Cache . Navigate to PeopleTools>Process Monitor. Enable shared caching with the ServerCacheMode parameter (ServerCacheMode=1) in psappsrv. [Cache Settings] . do not enable shared caching for Process Scheduler.============================================ CacheBaseDir=%PS_SERVDIR%\CACHE .

more data is stored in the application server cache. All rights reserved. To understand and use this feature. 13 . Too many process instances become even more troublesome in a Win2000/NT Tuxedo domain because the Bulletin Board process tries to use the same PSAPPSRV process ID (not using the round robin method as in UNIX). copy the contents of the stage directory into the share directory on your appserver domain. However. PSAPPSRV INSTANCES Keep the number of PSAPPSRV instances low. As you access more pages and components. such as the Panel definition. CacheBaseDir = the base cache directory . Menu structure. Unix example: /ds1/home/testora/pt814c1/PT814U25/appserv/CACHE/stage NT example: c:\temp\CACHE\stage 11.PeopleTools Performance Guidelines White Paper 9/10/2010 .0 One cache directory per App Server Process . or Permission List. Too many PSAPPSRV process instances make it difficult to fully cache all of them. that page won’t exist in the current cache. do not make any application changes that will affect the Meta Data objects. for example. Create the <PS_HOME>\<DomainName>\cache\share directory for the appropriate domain.48 and later.1 Shared Cache ServerCacheMode=1 9. Multiple copies of the cache file in each directory consume disk space. 12. The preferred way to use LoadCache files is to copy the entire cache file set to the individual AppServer process (that is. in PeopleTools 8. The reason: once you chose to use shared cache. PSAPPSRV must cache PeopleSoft meta-objects in order to be effective.key extensions inside the stage directory. When you see a bunch of files with *. Note: For shared cache users: shared cache is intended to be used in a disciplined environment. if you have not already accessed a page. see the PeopleBook: System and Server Administration under the section ―Configuring an Application Server Domain to Preload Cache. If you use shared cache. Preloading cache involves creating a project containing commonly used components and then referring to these projects in the PSADMIN settings PreloadMemoryCache and PreloadFileCache. the cache files are all marked as read only. PRELOAD CACHE (PEOPLETOOLS 8. but enable the process to update the cache file content. Reboot your application server domain. 10. seeding the cache directory with the prebuilt LoadCache fileset). ServerCacheMode . Navigate back to your Process Scheduler.dat and *. and each access to the changed Meta Data will result in a costly database access. the application server uses a caching mechanism that keeps commonly used objects in memory or file form on the application server to reduce the need for a database request each time that you access a component or page.----------------------------------------------------------------------. The AppServer processes cannot update the cache files for any delta.----------------------------------------------------------------------. You will now have some cache generated under a new stage directory. you can elect to preload files or memory cache with commonly used components. To prevent this initial performance degradation. and you may experience a slower response time as the system requests the page from the database.48 AND LATER) To improve performance. © Copyright Oracle.CacheBaseDir=%PS_SERVDIR%\CACHE . This flexibility enables you to make application changes but does not affect performance.

cfg or psprcs. and memory. XMLPublisher) should consider setting the JVM options for the application server. If the application server machine is 100 percent utilized under load. HP/UX. then you may need additional application server hardware. then we do not recommend spawning an extra PSAPPSRV instance to handle high-volume workload. USE PARALLEL BOOT Prior to PeopleTools 8. server processes in a domain started serially when the domain was booted. reduce the number of PSAPPSRV processes until there is some idle CPU. there is significant queuing. We recommend using parallel booting to significantly speed up the process of starting a domain. PeopleTools 8. the process must establish its cache.48. then you can use spawning to avoid excessive queuing. In general. AIX.cfg (in addition to the already existing options): -server -Xms128m -Xmx512m CONFIRM THAT THE REQUIRED BEA TUXEDO VERSION AND MINIMUM ROLLING PATCH ARE INSTALLED Confirm that the required Bea Tuxedo version and the minimum rolling patch are installed specific to the PeopleTools release and operating system from Certifications section of My Oracle Support. we recommend adding the following setting to psappsrv. Note: In PeopleTools 8. To disable spawning. use the same value in the Min Instances and Max Instances fields.48. If as a result. if the app server machine has sufficient headroom for better utilization. All rights reserved.egd=file:/dev/urandom SET APPLICATION SERVER JVM OPTIONS Customers using functionality that does a lot of processing in Java (for example. and Tru64 due to limitations in Java 1.PeopleTools Performance Guidelines White Paper 9/10/2010 We recommend starting with 1. Use an appropriate "min" setting to indicate how many PSAPPSRV processes are required for proper throughput. 14 . A potential workaround is to set the following application server JVM option: -Djava. it is best to allow a small amount of queuing during peak working hours.48 and later provide an option for parallel booting. If the app server machine is more than 80 percent loaded. In that case. which takes time. You can verify the installed Bea Tuxedo rolling patch from the following rolling patch level file: <TUXDIR>\udataobj\patchlev © Copyright Oracle.2 libraries. when PeopleSoft Performance Monitor is enabled.security. CPU.5 to 3 PSAPPSRV processes per CPU. The default JVM options may not be optimal. parallel booting may not be effective on Linux. Every time that a new PSAPPSRV process starts.4. However.

appserver2:9010#1[appserver98:10010] In this case.psc</servlet-class> . In our intenal test on a 2-CPU Windows box. we were able to run 500 users with Jolt Session Pooling versus only 280 users without Jolt Session Pooling. To check the Jolt Session Pooling setting. edit psserver property in configuration.xml file: <servlet> <servlet-name>psc</servlet-name> <servlet-class>psft. . With Jolt Session Pooling. The load may not always be distributed per the weights. and JRE version are installed specific to the PeopleTools release and operating system from the Certifications section of My Oracle Support. select web.48.48 and later. when a host failed. You can also specify a weight for each host so that more load is directed to more powerful machines.48 AND LATER) In PeopleTools 8. <param-name>joltPooling</param-name> <param-value>true</param-value> USE STRICT FAILOVER AND WEIGHTED LOAD-BALANCING (PEOPLETOOLS 8. © Copyright Oracle. AND JRE VERSION ARE INSTALLED Confirm that the required web server version.. With PeopleTools 8. the requests will be routed to appserver99. SERVICE PACK. the Jolt sessions are shared among users. which consumes valuable system resources. especially when the load is light. . For example: psserver=appserver1:9000#3[appserver99:10010]. If appserver1 fails. you can specify a failover target for each host and thus distribute the failover load.48 and later. Jolt Session Pooling is enabled by default. Without Jolt Session Pooling. check the web. the load was redirected to the next host on the server list. <init-param> . service pack.48 AND LATER) Prior to PeopleTools 8. appserver1 would receive three times more requests than appserver2. Redirection caused system load to increase significantly on that host and made the load unstable. which reduces system resource usage. To verify if Jolt Session Pooling is enabled.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 3 . All rights reserved.properties. 15 .Web Server Guidelines CONFIRM THAT THE REQUIRED WEB SERVER VERSION. To configure strict failover and weighted load balancing.xml under the appropriate directory for each web server platform. each user session requires a dedicated Jolt session between web server and app server..pt8. USE JOLT SESSION POOLING (PEOPLETOOLS 8.

locate the process type node for your PeopleSoft Internet Architecture installation. the Java Garbage Collector is invoked to deallocate unreferenced objects and free up more space for the program to continue its operation. You will use this password in a later step. add a String property named auditPWD and set the value. increasing KeepAlive © Copyright Oracle. Capture JOLT Request Timing Traces To collect JOLT request timing traces for an Oracle AS installation of PeopleSoft Internet Architecture: 1. and 30.xml in <ORACLE_HOME>\opmn\conf for editing. it may be beneficial to change the Apache KeepAlive Timeout from 15 to 30 seconds and set the Maximum KeepAlive Requests to zero. The garbage collection details are written to the log file <ORACLE_HOME>\opmn\logs\OC4J~<PIA Install Name>~default_island~<jvm instance number>. 2. you may need to set the heap size even higher. 3. Open opmn.PeopleTools Performance Guidelines White Paper 9/10/2010 ORACLE APPLICATION SERVER (ORACLE AS) Set JVM Heap Size to 256MB or Higher The Java virtual machine heap space is the memory region where the Java objects (both live and dead) resided. To set the heap size for PeopleSoft Internet Architecture. Setting the JVM heap size to a greater minimum value (preferably equal to the maximum value) avoids the performance hit incurred by dynamically growing the JVM and improves predictability. Modify Apache KeepAlive Setting Depending on the expected interval between your users’ requests. That's the log details that has been collected. Open <ORACLE_HOME>\Apache\Apache\conf\httpd. Before logging on. 16 . respectively. and KeepAliveTimeout lines and set them to On. Stop the webserver. 5. 4. 0. Using the Custom Properties page of the current WebProfile. and add -Dloggersize=0 to the value attribute of the java-options node. The JVM cannot service user requests during garbage collections. Depending on which applications you are using. Point to the logon URL and logon as usual. For more comprehensive data. repeat steps 4 through 7. it is possible that if there are a large number of concurrent users. 8. Locate the process-type node for your PeopleSoft Internet Architecture installation and add this line to the value attribute of the java-options node: -Xms256m –Xmx256m –verbosegc The –verbosegc switch enables you to monitor the amount of heap usage and the time Oracle AS took for garbage collections so that you can make further adjustments if necessary. Because KeepAlive controls how long OHS retain the connection between the client and OHS. A screen of messages appears on the browser window. Copy and paste the log from the browser to a text file. Many customers have their JVM heap size set to a minimum heap size of 64MB and maximum size of 256MB. All rights reserved. 7. point to the previously mentioned URL again (http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log. it also lessens the frequency of JVM garbage collection. After logging on.xml in <ORACLE_HOME>\opmn\conf for editing. submit the following URL to reset the existing log: http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>. MaxKeepAliveRequests. 6. Restart the webserver. When the Java heap runs out of space. open opmn. Locate the KeepAlive.conf for editing.

conf controls the number of concurrent threads (requests) that the Oracle HTTP Server can service. if you decide to increase ThreadsPerChild. the contents of the heap will be dumped to a file in the directory specified by: –XX:HeapDumpPath The heap dump file can be read by the Heap Analysis Tool (HAT). jhat (in JDK 6). For Windows. you should set the Oc4jCacheSize to the same value. When you increase KeepAlive. You should change this setting only if you see excessive CPU consumption of the OHS process (look for apache. In most cases. Setting the Oc4jCacheSize to the same value as ThreadsPerChild should provide the optimal performance.2_12 or later. This setting controls the number of connections between the Oracle HTTP Server and OC4J. To change this value. In most cases. You can add this comment to the JVM options: –XX:+HeapDumpOnOutOfMemoryError –XX:HeapDumpPath=/tmp If there is an OutOfMemoryError.PeopleTools Performance Guidelines White Paper 9/10/2010 from 15 to 30 will negatively impact performance because there will be fewer available connections to service the requests.4. or a profiler that supports the binary heap dump format. The heap dump file provides valuable information to Oracle development on what’s causing the OutOfMemoryError.exe in your Task Manager in Windows or do ps –ef | grep httpd in UNIX) and you expect a stable number of users making requests at interval to be longer than the default setting of 15 seconds. open <ORACLE_HOME>\Apache\Apache\conf\mod_oc4j. you may need to increase MaxClients or ThreadsPerChild (see the next section) to ensure incoming requests are not starving for connections. If the entry is not there. add the following line above the first Oc4jMount entry (this assumes that you have increased ThreadsPerChild to 150): Oc4jCacheSize 150 You do not need to change this setting for UNIX. Modify ThreadsPerChild and Oc4jCacheSize For Windows. Locate the appropriate <virtual host> section and comment out the line beginning with TransferLog. the default value of 150 is sufficient. WEBLOGIC © Copyright Oracle. All rights reserved. Generate Heap Dumps on OutOfMemoryError If you are using JDK 1. 17 . Disable HTTP Request Logging in mod_oc4j Open mod_oc4j. there is a new option to dump the JVM heap if you are running into OutOfMemoryError. the equivalent setting is MaxClients.conf and search for Oc4jCacheSize. the default value of 150 is sufficient. the ThreadsPerChild setting in <ORACLE_HOME>\Apache\Apache\conf\httpd. For UNIX.conf in <Apache_home>\conf for editing.

Log in to the Weblogic Admin console and follow this path to create a filter: i. To improve performance. To configure recommended logging level: a). When the Performance Pack is not loaded properly. and the Weblogic server must index all logs that caused performance degradation in internal performance tests. Filter= Critical viii. Click Save and then click Activate changes. Memory buffer. rotation. When you enable this option. Filter= Critical 3. you must use the filter because the log severity field does not provide Critical as one of the options. check your WebLogic output message and search for the reference to NT/Posix Performance Pack. The severity level produces too much logging information. We recommend that you set the log file severity level to Warning and set the log filter to Critical. Log severity levels and log filters are independent of one another.49 and Later) In Weblogic 9. Follow this navigation: Environment ->Servers ->PIA(admin) ->Logging -> Advanced ->click the Lock& Edit button iv. only three options are available for the log severity field: Debug. Severity level= Warning 2. Use these domain log broadcaster settings: 1. Use these memory buffer settings: 1.PeopleTools Performance Guidelines White Paper 9/10/2010 Log level Setting (PeopleTools 8. For the server log type. 18 . and so on. Severity level= Critical 2. generic socket implementation is not efficient and could cause performance issues or socket stability problems. Use these standard out settings: 1. v. These settings will improve performance by reducing the overhead of log indexing. Domain -> configuration -> Log Filter -> click the Lock& Edit button ->New -> Name=Critical -> Finish ii. © Copyright Oracle. you can set the log severity of three other types of logs (Standard out. Confirm That the Posix Performance Pack is Loaded Under normal circumstances. We recommend that you select the Redirect stdout logging enabled option. To verify that your WebLogic Server is loading the Performance Pack correctly. log file severity level has been set to Info by default. Click the Critical link -> Edit -> Enter (SEVERITY=Critical) -> Finish -> Save -> Click Activate changes To configure logging levels: iii. and Domain log Broadcaster) to Critical without using a filter. Severity level= Critical 2.2. However. This means setting log filters is not mandatory. In order to set the log severity (for server log) to Critical. Use these log file settings: 1. the stdout content is published to the server terminal console and performance is compromised. the stdout of the JVM in which a WebLogic Server instance runs is redirected to the WebLogic logging system. WebLogic should use the Posix Performance Pack. generic socket implementation is used. Ensure that the Redirect stdout logging enabled check box is enabled. Filter= Critical vi. If you do not select this redirect option. All rights reserved. Info. and this Posix Performance Pack will use the native OS's socket implementation. Filter= Critical vii. Severity level= Critical 2. and Warning.

See the following JVM Heap Size section to learn how to change the heap size for a specific web server.3 and 1. and there is no explicit parameter that controls them.com/docs/cd/E13196_01/platform/suppconfigs/index. threads are automatically allocated as needed. Note: For Unix platforms.1. To check the current file descriptor value. Set JVM Heap Size to 256MB or Higher Many customers have their JVM heap size set to a minimum heap size of 64MB and maximum size of 256MB. when you increase the ThreadCount.1. This setting applies to JRE1. you must increase the number of file descriptors (maxfiles and maxfiles_lim) accordingly. 1. For more information. and any other socket-based communication that was occurring on that machine.2. use the following command: csh –c “limit –h descriptors” You must also raise the number of threads limit per process (max_thread_proc) in UNIX.class file read in by WebLogic.2. As for Windows.PeopleTools Performance Guidelines White Paper 9/10/2010 Set Thread Count In WebLogic 9. For WebLogic 8. these are implicitly limited by other system resources such as memory. you are allowing more socket connections to be established. use the following command: ulimit –n 4096 © Copyright Oracle. please refer to My Oracle Support Document Id 638118. you may need to set the heap size even higher. Increasing the setting also lessens the frequency of JVM garbage collection. you do not set the thread count. Set OS File Descriptor to 100*ThreadCount A file descriptor is required for every file that is opened. Confirm JRE Version Confirm from BEA's platform page that the installed JRE is certified (may require OS patches). every jolt connection PIA/Portal make to the appserver.1. every *.html Note: For Linux. Setting the JVM heap size to a larger minimum value (preferably equal to the maximum value) avoids the performance hit incurred by dynamically growing the JVM and improves predictability. it is necessary to set an environmental variable to work around a JRE bug. $ export J2SE_PREEMPTCLOSE=1 The rationale behind this setting is that the current Linux is still using the old UNIX network/thread semantics. and the close() is not preemptive as in Solaris and AIX.1 for instructions to configure the Thread Count. Depending on which applications you are using. Therefore. Here is the path to the BEA’s platform page: http://download. every connection that has to open back to a client. see My Oracle Support Document Id 660080.3.2 onwards. 19 . To raise the file descriptors for UNIX.oracle. All rights reserved.

Lower OS TCP/IP Cleanup/Timeout Settings Socket-based applications that are opening and closing hundreds or thousands of sockets must have their sockets marked as closed. Disable Servlet Reload In %WLS_HOME%/<peoplesoft web domain>/config. there is not an explicit parameter for the number of file descriptors.cmd (instead of an NT service) to see the GC output. 15440712 bytes in 396 ms.xml. you can add the verbosegc switch to the setEnv. the Java Garbage Collector invokes to deallocate the dead objects and free up more space for the program to continue its operation. All rights reserved. The goals of tuning your heap size are twofold: minimize the amount of time that you spend doing GC while maximizing the amount of clients that you can handle at a given time. Planet PeopleSoft implements a 1-minute TCP wait time. it is marked as closed only until the OS (based on a cleanup/flush timeout) makes that socket available again. weak 0.cmd: SET JAVA_OPTIONS=-hotspot –Xms256m –Xmx256m –verbosegc Here is a sample output of the GC: Sat Nov 24 22:15:34 PST 2001:<I> <WebLogicServer> Invoking garbage collection Sat Nov 24 22:15:34 PST 2001:<I> <GC> GC: Before free/total=46867368/67108856 (69%) <GC: freed 249213 objects. Monitor JVM Garbage Collection The Java virtual machine heap space is the memory region where the Java objects (both live and dead) reside. To monitor the amount of heap usage and the time that WebLogic takes for the garbage collection. Lower this value to 1 minute. In setEnv.cmd script file. 20 . 35 conservatively pinned objects> <GC: last free block at 0x02A11B2C of length 35906768. and if so reloads it: <WebAppComponent Name="PORTAL" ServletReloadCheckSecs="-1" Targets="PIA" URI="PORTAL" /> © Copyright Oracle. scan handles: 105 ms. use the command line option -noclassgc. BEA also provides informationo on this topic. 95% free (51334096/53687088)> <GC: init&scan: 6 ms. The parameter is implicitly limited by hardware resources (mainly system memory). is at end> To minimize performance degradation from Garbage Collection. compact: 161 ms> <GC: 0 register-marked objects. When the Java heap runs out of space. This option inhibits a thread that would normally clear out unused classes (thus saving the load incurred by that thread). final 559. See the Reducing TCP Wait Time section to learn how to change the TCP Wait Time for a specific OS. The JVM cannot service user requests during garbage collections.startPIA. there is a parameter (ServletReloadCheckSecs) that dictates how often WebLogic checks whether a servlet has been modified. You have to start the WebLogic from the command line -. Once a process closes a socket. 140 stack-marked objects> <GC: 1 register-marked handles. 559 stack-marked handles> <GC: refs: soft 0 (age >= 32). phantom 0> <GC: compactHeap: blocks_moved=249506> <GC: 0 explicitly pinned objects. The default value for this is 11 minutes.PeopleTools Performance Guidelines White Paper 9/10/2010 In Windows NT/2000. sweep: 124 ms.

open startPIA. which reduces the amount of logs written in webserver log files.3. Point to the logon URL and logon as usual. repeat steps 4 through 7. 21 . add a String property named auditPWD and set the value. Restart the webserver Before logging on.Domain=%DOMAIN_NAME% -Dweblogic. In the weblogic domain directory.PeopleTools Performance Guidelines White Paper 9/10/2010 In a production environment.management. Stop the webserver. log detail level has been set as Info by default. Clear the Enable log check box.management. Log in to the Websphere admin console and navigate to ―Troubleshooting > Logs&Trace > server1 > Diagnostic trace.Server 4. Thus. We recommend that you disable the diagnostic trace log. point to the previous URL again (http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log. you should set ServletReloadCheckSecs to –1 for each of the components.Name=%SERVER_NAME% Dbea.policy==%BEA_HOME%/wlserver6. the value defaults to 0 – always reload.password=%SYSTEMPASSWORD% Dweblogic.) Capture JOLT Request Timing Traces To capture JOLT request timing traces: 1. All rights reserved. 6. the servlets are not modified. which degrades performance in internal performance tests. If this is the case. The messages represent the log that has been collected. 8.security.policy" Dweblogic. After logging on. submit the following URL to reset the existing log: http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1> A screen of messages appears on the browser window. introduce the field with a value of –1.home="%BEA_HOME%" -Dweblogic. Log in to the Websphere admin console and navigate to ―Troubleshooting> Logs&Trace> server1>Change Log Detail Levels.1/lib/weblogic. which is undesirable. Therefore. (If the field is not present. You will use this password in a later step. For more comprehensive data. checking and reloading only incurs unnecessary work. 5.ProductionModeEnabled=%STARTMODE% "Djava.discover=%DISCOVERY_MODE% -Dloggersize=0 weblogic.‖ Set the value to *=severe. This setting produces too much logging data to logfile.1. Using the Custom Properties page of the current WebProfile.0. 7. 3. We recommend changing the log detail level from *=info to *= severe to improve the performance up to 20 percent. 2. like the following: %JAVA_HOME%\bin\java" %JAVA_OPTIONS% -classpath %CLASSPATH% Dweblogic. © Copyright Oracle. WEBSPHERE Log Level Setting (PeopleTools 8. Copy and paste the log from the browser to a text file.cmd/startPIA.49 and Later) In Websphere 6.sh and add a command-line option -Dloggersize=0 to the firing of the java process.

For detailed installation instructions. By using Xverify:none with the just in time (JIT) compiler enabled. keep JIT enabled. All rights reserved.. JVM property: -Xverify:none. see the ―WebSphere Install‖ document posted on Customer Connection. Step 1..4 supports a native http server within WebSphere at port 9080 and 9443. review the PeopleSoft Platforms Database to make sure that you are installing WebSphere into a supported environment. Note: Install WebSphere eFixes in any order. <threadPools xmi:id="ThreadPool_1208430577008" minimumSize="10" maximumSize="50" inactivityTimeout="3500" isGrowable="false" name="WebContainer"/> . which listens at port 80 or 443 for http or https.PeopleTools Performance Guidelines White Paper 9/10/2010 Ensure That JIT is Enabled and Class Verification is Skipped Ensure that JIT is enabled by default in the Admin console. Login to WebSphere admin console and navigate to: servers -> Application server -> server1 -> Thread Pool -> WebContainer and modify the thread pool maximumSize for the web container. To remove eFixes. When using this value. . Setup and Configuration Note: PeopleTools 8. Locate server.. for performance reasons.. Note: Before you begin the installation. Step 2.. Set JVM Heap Size to 256MB or Higher and Monitor JVM Garbage Collection (Refer to the WebLogic section on how to decide the JVM heap size...xml at: %PS _HOME%\webserv\{profile_name}\config\cells\{cell_name}\nodes\{node_name}\servers\server1\ and modify the thread pool maximumSize for web container.) © Copyright Oracle. respectively. especially the required e-fixes needed for WebSphere. throughput decreases noticeably. performance test indicate that startup time is improves up to 15 percent. . </services> 2. <services xmi:type="threadpoolmanager:ThreadPoolManager" xmi:id="ThreadPoolManager_1208430577007" enable="true"> . If you disable the JIT compiler. 22 .. Use of IBM Http Server. the class verification stage is skipped during class loading. Therefore. for http and https. Set Thread Count 1. is optional. roll back efixes in the reverse order (from which you applied them).

23 .ibm.xmi" xmlns:webapplication="webapplication.xmi" xmlns:webapplication="webapplication. For example: <processDefinition xmi:type="server:JavaProcessDef" xmi:id="ProcessDef_1" executableName="${JAVA_HOME}/bin/java" commandLineArguments="-noclassgc" workingDirectory="${WAS_ROOT}/bin" executableTargetKind="JAVA_CLASS" executableTarget="com.${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entapplethttp.jar. the xmi file is located here: %WAS_HOME%\AppServer\config\cells\\applications\peoplesoftWAS.jar" bootClasspath="" verboseModeClass="false" verboseModeGarbageCollection="false" verboseModeJNI="false" initialHeapSize="256" maximumHeapSize="256" runHProf="false" hprofArguments="" debugMode="false" debugArgs="" genericCommandLineArgs="com.PeopleTools Performance Guidelines White Paper 9/10/2010 In %WAS_HOME%/config/server-cfg.${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp10.jar. On the left Navigation. Here you can change all the parameters where you need verbosegc and so on.StandardServer" disableJIT="false"></jvmSettings> Note that you can also turn on verbosegc here (verboseModeGarbageCollection). create a file called ibm-web-ext.jar. you can go to the administration console (http://:9090/admin/) to change settings.) <webappext:WebAppExtension xmi:version="2.ws. If this is the case.org/XMI" xmlns:webappext="webappext. Log in with a blank user ID. noglassgc) in the server-cfg.org/2001/XMLSchema-instance" xmi:id="WebAppExtension_1" reloadInterval="0" reloadingEnabled="false" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="false"> (In the PSINTERLINKS/WEB-INF directory.xmi" xmlns:xsi="http://www.xml file rather than the startup script (startserver).${WAS_ROOT}/properties.org/XMI" xmlns:webappext="webappext.WSLauncher"></processDefinition> Disable Servlet Reload The servlet reload parameters in WebSphere is located in %WAS_HOME%/<peoplesoft web domain>/[PORTAL/PSIGW/PSINTERLINKS]/WEB-INF/ibm-web-ext-xmi (usually this is the first line): (In Websphere 5. Select your server name (default is server1).${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp7. Click Java Virtual Machine under additional Properties.jar.bootstrap. select Servers -> Application Servers.ws. Click Process Definition under Additional Properties.0" xmlns:xmi="http://www.org/2001/XMLSchema-instance" © Copyright Oracle. All rights reserved.0" xmlns:xmi="http://www. Other JVM Options Insert other JVM options if needed (for example.${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletssl.ear\deployments\peoplesoftWAS\PSINTERLINKS\W EB-INF.runtime.${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp5.ibm.xml.${WAS_ROOT}/ins talledApps/peoplesoft/PORTAL/WEBINF/lib/entappletbase.xmi" xmlns:xsi="http://www.jar.omg.w3. such file may not exist.xmi with the following content: <webappext:WebAppExtension xmi:version="2.omg. With IBM Websphere 5.jar.jar.w3. locate the following lines: <jvmSettings xmi:id="JavaVirtualMachine_1" classpath="${WAS_ROOT}/lib/bootstrap.${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp12.

3.xmi" xmlns:application="application. In %WAS_HOME%/config/server-cfg. After logging on. 5. locate the following lines: <processDefinition xmi:type="server:JavaProcessDef" xmi:id="ProcessDef_1" executableName="${JAVA_HOME}/bin/java" commandLineArguments="-Dloggersize=0" workingDirectory="${WAS_ROOT}/bin" executableTargetKind="JAVA_CLASS" executableTarget="com. Using the Custom Properties page of the current WebProfile. Point to the logon URL and log on as usual.bootstrap. point to the previous URL again (http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log.xmi" xmlns:xsi="http://www.ws. Before logging on. add a String property named auditPWD and set the value. Stop the webserver.xml#Application_ID"/> </applicationext:ApplicationExtension> Refer to the same topic in WebLogic for further information.omg.DELETE THIS LINE <reloadInterval xsi:nil="true"/>DELETE THIS LINE --> <application href="META-INF/application. For more comprehensive data.WSLauncher"> 4. These messages are the log that has been collected. All rights reserved. %WAS_HOME%/<peoplesoft web domain>/META-INF/ibm-application-ext-xmi should look like this (with the reloadInterval line deleted): <applicationext:ApplicationExtension xmi:version="2.xml#Servlet_1"/> </extendedServlets> </webappext:WebAppExtension> Also copy the file ibm-web-bnd. You will use this password in a later step.PeopleTools Performance Guidelines White Paper 9/10/2010 xmi:id="WebAppExtension_1" reloadInterval="0" reloadingEnabled="false" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="false"> <defaultErrorPage xsi:nil="true"/> <additionalClassPath xsi:nil="true"/> <webApp href="WEB-INF/web.xml.xml#WebApp_1"/> <extendedServlets xmi:id="ServletExtension_1"> <extendedServlet href="WEB-INF/web. Restart the webserver.) Moreover. 8. Copy and paste the log from the browser to a text file.0" xmlns:xmi="http://www.org/2001/XMLSchema-instance" xmi:id="Application_ID_Ext" reloadInterval="0"> <!-. submit the following URL to reset the existing log: http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>. 6.xmi from the PORTAL/WEB-INF directory.org/XMI" xmlns:applicationext="applicationext.w3. 24 . 2.ibm. 7. © Copyright Oracle. A screen of messages appears on the browser window. Capture JOLT Request Timing Trace To collect JOLT request timing traces for WebSphere: 1. repeat steps 4 through 7.

. 7.com/software/webservers/appserv/infocenter. Click Enter when prompted for the Default data source JNDI name and the JNDI name. Enter this command: seappinstall-install .html. © Copyright Oracle.ibm. Go to the %WAS_HOME%\bin directory. 25 .0 WebSphere Application Server InfoCenter for the Advanced Edition at http://www.ear file (available under the %WAS_HOME%\installableApps directory). Start the Resource Analyzer. 2. 5. 3. 8.\installableApps\PmiSingleServerBean. see the Version 4. To use the Resource Analyzer with the Advanced Single Server Edition of WebSphere: 1. Restart the application server.PeopleTools Performance Guidelines White Paper 9/10/2010 Using Resource Analyzer The Resource Analyzer is a new tool for the Advanced Single Server Edition of WebSphere Application Server. Install the PmiSingleServerBean.ear -ejbdeploy false 4. For information on using the Resource Analyzer. Go to the %WAS_HOME%\bin directory. Enter this command: ra hostname 900 AES. All rights reserved. 6. Clicking Enter enable you to use of default values as required by the Resource Analyzer.

Verify these configurations to ensure correctness.Web Browser Configuration Take advantage of the browser’s caching ability to reduce unnecessary checking and downloading of the same Internet objects within the online transaction session. 2.1 compliant:  Internet Explorer version 6 onwoards © Copyright Oracle. Web browsers that are not HTTP 1. this means that the browser indicates to the server that it can accept content encoding. verify that Use HTTP 1. All rights reserved.1 is selected. 3. Here are the Internet objects that most likely remain unchanged during an online session:     Graphics objects Style Sheets Java Scripts Some HTML pages (such as the PeopleSoft Internet Architecture login page) The following web browser settings are the recommended configurations. This performance feature was added for the web browsers that are using the slower bandwidth medium. If using IE 6 or higher. Select the Advanced tab. Microsoft Internet Explorer Here is the configuration recipe: Internet Option->Temporary Internet Files-> Settings. it will then compress the data and transmit it. The browser decompresses the data and then renders the page.1 protocol: 1. therefore.1 compliant request and receive the files uncompressed.1 settings. These configurations are usually the default settings of the respective browsers. Here is the configuration recipe to verify if Internet Explorer is configured to use the HTTP 1. Automatically Netscape Browser Here is the configuration recipe: Edit->Preferences->Advanced->Cache->Once per session HTTP 1. 26 . Currently the following browsers are HTTP 1.properties file has the Compress Response switch turned on.1 standard known as "content-encoding. such as dialup connections or 56K lines. and if the server is capable.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 4 . Under HTTP 1.1 Compliant Web Browser Only HTTP 1. the Web Server cannot send any compressed HTML files to the browser (despite that the configuration." Essentially. select Tools menu -> Internet Options.) Most new browsers since 1998 and 1999 have been equipped to support the HTTP 1.1-compliant web browsers request compressed files.

PeopleTools Performance Guidelines White Paper 9/10/2010     Firefox 1.4 and Safari are also faster than IE7.1 Safari 2.7 Netscape 7. 8.2. we have found that IE8 is faster than IE7. IE8 processes Ajax requests faster and can download images and JavaScript files much faster than IE7. Firefox 3. © Copyright Oracle.0. Browser comparison Through informal testing using PeopleTools 8. 27 .4 Confirm That the Required Browser Version Is Installed Confirm that the required browser version to be installed is specific to your PeopleTools release and operating system from the certifications section of My Oracle Support.5 onwards Mozilla 1. All rights reserved.50.

Gzip and Compress are supported.Additional Configurations BROWSER COMPRESSION From PeopleTools 8. object changes won't take effect until the objects become stale and are refreshed (see Cache Stale Interval setting below) or you restart the web server.text/css. cache settings are configured via PeopleSoft Internet Architecture. However. Gzip and Compress are supported. the portal servlet (psp) will cache the following objects in web server memory:     Portal Registry Node (Remote and Local) Content Reference Template (Static only) If Cache Portal Objects is selected. CACHING Caching improves system performance by reducing service requests from the web server to the application server. Note: The main purpose of compression is to reduce the amount of data to be transmitted. in general. 28 . Note that this is applicable only when Compress Response References is set to true. This problem does not occur in PeopleTools 8. However. that is a rare scenario. Note: For PeopleTools 8. In particular.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 5 . A workaround (for PeopleTools 8. Gzip and Compress are supported. If Cache Portal Objects is selected. the compression settings would cause an error for certain updates of Internet Explorer 6. you should turn off these settings. The Compress Mime Types text field specifies a comma-delimited list of the MIME-type objects that should be sent in compressed form to the browser. For PeopleTools 8. All rights reserved. select the Web Profile that you are using. and then select the Caching tab. The check box is selected by default © Copyright Oracle.42 and later.44 on. The check box is selected by default. Only files that have their mime types specified in the Compress Mime Types field are compressed.41 and earlier. Go to PeopleTools->Web Profile->Web Profile Configuration. compression of additional resource files from web server to the browser is enabled. Therefore. this check box should be selected.44 and later. The check box is cleared by default because there were some versions of Internet Explorer with certain settings that didn't like javascript and css in compressed format. therefore. Note: Some query entries are truncated when IE tries to open queries in Mircosoft Excel. In cases where high-speed links are used and the gain in transmission time does not justify the loss in CPU processing time.text/javascript. and clear the Compress Response check box to turn off compression. If the Compress Response References check box is selected.0. you can enable compression between web server and browser by selecting the Compress Response check box via PeopleSoft Internet Architecture. which turns off JUST queries. compression comes at a price: extra CPU processing time. turn off compression.text/html.43 and later) is to turn off query compression by clearing the Compress Query check box. select the web profile that you are using. the PeopleSoft Internet Architecture menu may disappear when a user opens a PeopleSoft Internet Architecture page. Here is the default: application/x-javascript. Go to PeopleTools->Web Profile->Web Profile Configuration.

Setting this value to -1 disables hitcount purging. The default setting is 1000. set METAXP to 10080 (one week) or more. In other words. All rights reserved. The portal caches proxied javascripts to improve performance if the Cache Proxied JavaScripts check box is selected. Here is the default setting: 86200 (24 hours). We recommend that you set the METAXP to a high value. In any case. Target content is cached in memory when the TargetContent tag in the template specifies that the target should be cached. This check box is selected by default. The following table lists the default values of the parameters in PeopleSoft Internet Architecture: Cache-Related Properties and Default Values Cache Homepage=selected Homepage Stale Interval=1200 Homepage Stale Interval is measured in seconds. We recommend that you turn on homepage cache. Doing so will keep the menu pages inside the browser cache. this is the amount of time before changes to cached objects take effect. The portal automatically throws away all cache entries in memory after the number of requests specified in Cache Purge All Hit Count. This means that the browser does not access the web server after the homepage is initially retrieved. in seconds. Homepages can also be cached on each user's browser. Clearing this check box disables all target content caching in the portal servlet. This setting applies for all websites on this web server. if a user clicks the browser's Refresh button. Caching on each browser improves user response time in traversing between cached menu pages. The Cache Target Content check box should be selected to allow caching of target content. © Copyright Oracle. The TargetContent tag should look like this: <TargetContent Name="TransactionContent"><Cache Scope="application" Interval="1200" >dummy</Cache></TargetContent> You can cache pagelets using the same mechanism. If your menu pages are not going to change frequently. the homepage is accessed from the web server again. before portal cache is considered stale and updated with the latest copy from the application server. overwriting the homepage cached on the browser. Note: The Browsers section specifies which web browser that you can use with homepage caching. navigation pages can be cached on each user's browser. and also adjust the specific time interval that must pass before the web server is accessed again to get a "fresh" homepage. You can turn this feature on or off. NAVIGATION PAGES CACHING As with homepages. 29 . The check box is selected by default. The Portal Administrator can set system-wide options for navigation cache by using the Define Personalizations page and modifying the value for METAXP. Verify that your choice of browser is enabled for caching. Caching the homepage is beneficial in either a production or development environment. Only static content should appear in a template with a cached target tag. even if the target tag specifies cached content.PeopleTools Performance Guidelines White Paper 9/10/2010 The Cache Stale Interval is the amount of time. This setting applies to the same objects as Cache Portal Objects.

When the KeepAlive timing is set too long. you must delete browser cache for the new METAXP to take effect. For Windows NT Use the registry editor. Set the value to 60 secs (seconds). Users can override the METAXP value on their individual browser sessions. which is too long for PeopleSoft Internet Architecture usage and tends to leave too many socket connections staying in the TIME_WAIT state. Select the Format tab and then select Set Option Default Value in the METAXP row. After logging on. REDUCING TCP WAIT TIME The default TCP Wait Time for both NT and most UNIX operating systems is 4 minutes. go to My Personalizations. regedit. Enter PPTL (PeopleTools) as the Option Category level value.4x turn on KeepAlive. the following problems occur:   The web server must manage many idle connections. and the default is 1. All rights reserved. Then number of new connections available is reduced. Use the default or change the value to 2 for slower networks. the socket can be recycled more efficiently.PeopleTools Performance Guidelines White Paper 9/10/2010 Go to PeopleTools-> Personalization->. By shortening the TCP Wait Time. Key in the appropriate value and click OK. Then click save when being brought back to the previous screen. For AIX To see the current TCP_TIMEWAIT value. then click the Personalize Option button for General Options.Personalization Options. Do not use navigation caching during development time because any newly added menus will not be reflected in the cache. © Copyright Oracle. We generally advise that those with PeopleTools 8. WebLogic. HTTP KEEPALIVE HTTP KeepAlive is intended to maintain a persistent socket connection between the web browser and the web server so that no new connections are required when the HTML pages refer to other HTML objects. Use navigation cache only in production systems. It is given in 15-second intervals. and create a REG_DWORD named TcpTimedWaitDelay under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters. however. Note that a change to METAXP is picked up by the application server immediately. However. run the following command: /usr/sbin/no –a | grep tcp_timewait To set the TCP_TIMEWAIT values to 15 seconds. 30 . Change the METAXP value by entering a new value for Time page held in cache and then click OK. keeping the socket connection persistent occupies a socket pair between the browser and web server. and WebSphere. KeepAlive is the default for Oracle Application Server. run the following command: /usr/sbin/no –o tcp_timewait =1 The tcp_timewait option is used to configure how long connections are kept in the timewait state. because the users’ browsers already have cache control set by the previous value of METAXP.

PeopleTools Performance Guidelines White Paper 9/10/2010 Note: Be careful when you use no command.d/nddconf file without the need of the startup scripts.d scripts to get it to set automatically at boot time. which performs no range checks and instead accepts all values for the variables. Set up the following environment variables for the PeopleSoft Application Server user. place the following lines in the .8 and Later As root user.profile: export export export export export export AIXTHREAD_SCOPE=S AIXTHREAD_MNRATIO=1:1 AIXTHREAD_COND_DEBUG=OFF AIXTHREAD_GUARDPAGES=4 AIXTHREAD_MUTEX_DEBUG=OFF AIXTHREAD_RWLOCK_DEBUG=OFF For C Shell user. database user. place the following lines in the . All rights reserved. If used incorrectly. the no command can cause your system to become inoperable. and web server user: For Korn Shell user. For HP/UX 11. The command must be run again after each startup or after the network has been configured.8 Use the parameter name tcp_close_wait_interval instead of tcp_time_wait_interval. The no command operates only on the currently running kernel. you can place the ndd settings inside the /etc/rc. execute the following command: ndd -set /dev/tcp tcp_time_wait_interval 60000 where 60000 is for 60 secs. the minimum recommended value. You must put this command in one of the rc2.config. 31 . AIX THREAD MODEL IBM has recommended the following environment variables setup to improve the Threading model with PeopleSoft Internet Architecture. For Solaris Prior to 2. For HP/UX 11 or Solaris 2.cshrc file: set set set set set set AIXTHREAD_SCOPE = S AIXTHREAD_MNRATIO = 1:1 AIXTHREAD_COND_DEBUG = OFF AIXTHREAD_GUARDPAGES = 4 AIXTHREAD_MUTEX_DEBUG = OFF AIXTHREAD_RWLOCK_DEBUG = OFF TIMEOUT SETTINGS There are in general three types of timeouts: © Copyright Oracle.

 Webserver session timeout: <session-config><session-timeout>x</session-timeout></session-config> (in <webserver home dir>/<peoplesoft web domain>/PORTAL/WEB-INF/web.cfg) Type=intratransaction. For WebLogic 6. 3.LOG.timeout for the servlet. from bottom up:  Appserver: Service Timeout = x sec (default 300) (in psappsrv. tuexdo_receive_timeout = x sec (default 600) (in pstools.  Servlet: sessionTimeout = x sec (default 1200) (in configuration. In other words. 2. PSSAPSRV terminates itself and Tuxedo automatically restarts this process. it has to be large enough to accommodate the longest acceptable requests and queries. To reconnect. and it has to be bigger than appserver service timeout. The meta refresh tag is in seconds and should be less than or equal to the session. Timeout that "reserves" a resource until the expiration time before putting it back into the pool for recycling. Timeout between PeopleSoft Internet Architecture transaction (intertransactional): When the timeout expires. You must relogin to re-establish the state. the user has been idling for too long.PeopleTools Performance Guidelines White Paper 1. According to the PIA Answer Book: Service Timeout Specifies the number of seconds a PSAPPSRV waits for a service request.xml) © Copyright Oracle. which includes the time it takes at the DB server. Client disconnects are transparent to a client.properties) The receive timeout is also intratransactional. the transaction fails and must be resubmitted.  PeopleSoft Internet Architecture: tuxedo_send_timeout = w sec (default 50) . then increase the tuxedo_receive_timeout parameter to be greater than the Service Timeout values that appear in the PSAPPSRV. in minutes. that a client connection can remain idle (no work requested) before Tuxedo terminates a client connection. let’s review our timeout values.‖ In other words. but in most cases this can be reduced to 10 to conserve resources): Client Cleanup Timeout: Specifies the amount of time. See description (default is 60. the meta refresh tag should be less than or equal to <session-timeout> as discussed in the following section. The receive timeout indicates the maximum number of seconds that the servlet waits for a response from the application server. (for example.  JOLT: Client Cleanup Timeout = x min (default 60) (in psappsrv. before timing out. 32 . tcp_timewait). Note that for the intratransactional timeouts.CFG configuration file on the application server. It is recommended to set x=1200 (20 minutes). the end-to-end timeout value should always be greater than that of its intermediate legs. and the resources associated with the user are freed. In the event of a timeout.cfg) This is intertransactional.properties) This is intertransactional. All rights reserved. users must only click the mouse.1. as one has to relogin when the servlet expires (technically this is a security setting). such as MgrGetObj or PprLoad to complete. Service Timeouts are recorded in the TUXLOG and APPSRV. such as the Service Timeout setting for PSAPPSRV. If you increase your application server service timeouts. With this in mind. their values should be ―staged. 9/10/2010 Timeout during a PeopleSoft Internet Architecture transaction (intratransactional): When the timeout expires.

Set "meta-tag" session timeout to 3600 (which enables users to use the page for 60 minutes with no time out errors). 3.conf) HTTP timeout.  HTTP timeout: Apache: Timeout = x sec (in httpd. All rights reserved. In configuration. unfortunately. Solution: 1. Increase the values in pstools. so it may or may not be higher than the rest of the timeouts.properties if long queries are common: Set tuxedo_receive_timeout to 1500. 33 . Increase values in configuration. The amount of time between receipt of TCP packets on a POST or PUT request. © Copyright Oracle. especially when users close their browsers instead of logging out. 2. time out error occurs on PeopleSoft pages even when people are using the page. A common problem: Sometimes in PeopleSoft Internet Architecture.PeopleTools Performance Guidelines White Paper 9/10/2010 This is intertransactional and specifies the number of minutes (WebLogic) to wait before invalidating an unused session. 3.properties: sessionTimeout = 3600 sec In web.properties in Apache Group->Apache\htdocs\PeopleSoft.xml: <session-config> <session-timeout>60</session-timeout> </session-config> 2. This directive defines the amount of time Apache will wait on three occasions: 1. Increase the timeout values in servlet session timeout and webserver session timeout. Setting it to be the same as (or a bit higher than) the JOLT cleanup timeout is generally a good idea. Note that setting this value too high ties up web server resources. The total amount of time it takes to receive an HTTP GET request. serves as both intertransactional and intratransactional in different scenarios. The amount of time between acknowledgements on transmissions of TCP packets in responses.

After one segment is populated based on a configuration parm. then you may have to look at what is happening in the notification event and optimize that. Message segments enable a single message to load with all the data segmented by any chunkable size desired. that segment is serialized to XML and inserted into the IB database queue compressed. If physical resources are a problem. These particular service operations do not take advantage of partitioning due to the way that they currently have to chunk the content data and process the notifications. Integration Broker has come up with an alternative to this current chunking mechanism using message segments. The message can be sent either as one message (ordered segments) or multiple messages (unordered segments). If the data from x messages absolutely has to be run through the business logic in that one minute slice of time.Integration Broker CONFIGURE PSBRKHND MESSAGE BROKER HANDLER The primary purpose of this handler is to determine the appropriate routings based on the Tuxedo request received and update the appropriate database tables (queues) accordingly. The message object is responsible for this memory management. must you receive them as fast as other systems are sending them). One area of concern is the Oracle-delivered full sync service operations. Message segments provide a way to process and send large amounts of data (Gbytes) without impacting performance due to PeopleCode processing. OPTIMIZE MESSAGE QUEUE VERSUS MESSAGE CONSUMPTION There is a difference between the messaging system being able to receive a given number of messages per slice of time and being able to process the message data (that is. if a non-PeopleSoft system needs to send messages at a rate of x number per minute. The actual data is sent chunked by segments to the gateway and received by the target system. 34 . the PeopleSoft messaging system can receive and queue them at this rate. or overridden by PeopleCode. This type of loading continues until the message is completely loaded with all the desired data. USE OF MESSAGE SEGMENTS FOR ORACLE DELIVERED FULL SYNC SERVICE OPERATIONS Messages (service operations) should be designed to take full advantage of as much queue partitioning as possible. the application may not be able to consume the messages at the same rate that the messages are queued by the messaging system (given a particular hardware configuration). You might even look at deferring message consumption (running the business logic) until certain times of the day or night when additional system resources may be available. The next segment is then available for processing. a notification process) per slice of time. Note that the processing time to determine the routings is much faster then actually processing a PeopleCode event. or does the message data from x messages absolutely have to be run through the business logic within that minute slice of time? If the messages must be queued (that is. You should determine what the real requirement is for slice of time throughput. All rights reserved. For example.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 6 . The number of OnRoute and Transform events is typically low compared to the overall number of different messages. The consumption of a segmented message in PeopleCode is straightforward. These segments should be complete stand-alone data structures. Is the requirement the ability to have the messages queued at x number per minute (with the data from x messages being processed in more than that minute). One segment at a time is © Copyright Oracle. This handler also executes the OnRoute PeopleCode events (OnRouteSend or OnRouteReceive) and Inbound Transformations. But if the notification process involves a lot of business logic or actions that take up a lot of server resources. then you should explore additional configuration options for optimization. you can reduce the number of this handler without impacting performance. or running out of memory.

This count is based on the number of Tuxedo requests. Note that for AIX. This process repeats for the number of segments in the message. The current default is set to 1000. ideally you should put related messages in one queue and partition accordingly. if a recycle count is used. 35 . you should not have to cycle the dispatcher. After the data is inserted into the database. as this is the only mechanism to initially poll the database queue for work. The queues should not get corrupted. you should use an arbitrary value. You should not have to change this value because it scales well. The current default is set to 10. This value was obtained by many performance tests. Scan Interval: This is the interval that the dispatcher runs its on-idle processing. the dispatcher reads the number of queued requests and determines. From 8. This section discusses each of these parameters in detail and its impact on performance. OPTIMIZE ONE MESSAGE VERSUS MULTIPLE MESSAGES PER QUEUE Another design-time consideration when creating queues is whether to have one message per queue or many messages in one queue. the current default value of 1000 is set at such a high level that it does not impact performance and is recommended based on performance tests. Therefore it’s important that this value accurately reflects the actual size. For Unix systems. this value should be set to 1. there would be 20 queues. the recycle count is set to 0. © Copyright Oracle. the rowset is destroyed.43. however. Dispatcher Queue Max Queue Size: This value is the maximum number of items (messages) per queue that the dispatcher retains in memory. if there are 20 unrelated messages in a queue. However. which is fine if Pub/Sub is running in the same domain as the PeopleSoft Internet Architecture appservers. By default.PeopleTools Performance Guidelines White Paper 9/10/2010 decompressed and serialized into a rowset. create a queue for each message. This value is used for Tuxedo queue threshold determination by the pub/sub dispatchers. For NT. as these queues can then be part of a dedicated messaging server. if any or all requests should be sent out for this cycle. freeing up memory. the benefits of throttling are not realized. The dispatcher would have to traverse all 20 queues to process those 20 messages. it will affect performance because initialization will be performed which includes rebuilding all the inmemory queues for each active queue assigned to that dispatcher. Dispatch List Multiplier: This is a parameter used to throttle the number of requests sent to its associated handlers. The current value is set to 15. You should not have to change this value because it scales well. the Tuxedo queue size is dynamic. Therefore. and the next segment is then loaded. if the Pub/Sub servers are stand-alone. which would compromise performance due to more dispatch cycles and database reads and writes. it is a kernel parameter. based on this parameter. TUNING PSADMIN PARAMETERS FOR ASYNCHRONOUS MESSAGING Many configurable parameters in PSADMIN have significant impact on performance of asynchronous-based messaging. If you create a queue for each message. For high volume transaction messages. the Tuxedo queue size is a registry parameter. Otherwise. The actual list is the number of associated handlers multiplied by this value. DISPATCHER Parameters Recycle Count: The dispatcher automatically recycles itself when this value is reached. As Tuxedo requests get queued. Tuxedo Queue Size: The actual Tuxedo message queue size. there is a point where the queue can get full and any additional requests get disregarded. In general. For example. therefore. You should not have to change this value because it scales well. Refer to IB PeopleBooks for Message PeopleCode APIs with respect to message segments. However. which was obtained after many performance tests. All rights reserved. The answer to this question depends on many factors. the dispatcher will try to process the 20 messages in the queue assuming these messages are partitioned. Memory Queue Refresh Rate: This is the number of actual dispatches that the dispatcher will automatically rebuild in its inmemory queue for a particular queue. This value should be 1 or 2 MB instead of using the default of 64 KB.

This value can potentially have a big impact on overall performance of the messaging system. The dispatcher again sends the request after the restart period has elapsed. memory leaks are likely. you do not want to set this value too high. it will attempt to process it again. depending on the PeopleCode being run. Use this formula: ((Incoming requests per second)/ (# of associated handlers)) * (average processing time per request) PSPUBDSP only Ping Rate: This parameter—along with the scan interval—determines how often a node that is in the PSNODESDOWN table should be pinged to see if it is in a valid state to send a request to. If the Min Instance is not the same as the Max Instance. The problem with a recycle count on a handler is that with proper load balancing from Tuxedo.PeopleTools Performance Guidelines White Paper 9/10/2010 Restart Period: This is the time that the dispatcher attempts to redispatch messages that are still in the START status. Therefore. set the recycle count to 0 and create an automated script that will stagger the recycling of the handlers by using Tuxedo command line arguments to specify the specific handler. there are not enough handlers to process all the requests). Therefore. avoiding allocations during max load. The recycle count by default is 20000. Max Retries: This value represents the number of times that the handler will attempt to process a message before the status is set to TIMEOUT. 36 . All rights reserved. This leads to the Tuxedo queue overflowing and potentially losing requests. request that must be picked up when the restart period is reached. This value allows for a longer time between subsequent pings. This value is in hours. HANDLER Parameters Min Instances and Max Instances: These values should always be the same. Part of the on-idle processing performs these ping requests. A good guideline is to use the number of incoming requests per second divided by the number of associated handlers. with a thread count set to 5. then under load. This potentially leads to a lot of redundant requests that the available handlers must cycle through. TUNING PSADMIN PARAMETERS FOR SYNCHRONOUS MESSAGING © Copyright Oracle. PSPUBHND only Thread Pool Size: This value represents the number of concurrent threads that the handler can spawn for HTTP requests. the system sets the status of the message to START. This is something to consider if memory resources are scarce. and the next available handler will attempt to process this request and set the status to WORK. if the PeopleCode being run causes a crash of the process. It is better to boot all at one time. all associated handlers recycle at approximately the same time. one handler was able to replace three nonthreaded handlers. Recycle Count: Because the handlers run IB Events that contain PeopleCode. when the message system is under configured (that is. however. the system has to wait for the process (the handler) to boot up and initialize before it can be used. you should have a high recycle count and monitor it to determine if it grows to an undesirable size. When there are a lot of nodes that are down due to improper configuration of routings on Service Operations. However. you can set this value higher or lower. many CPU cycles are spent performing these pings. Note that with performance benchmark testing in this area. The Tuxedo request is queued. This value should be set to a low value—5 or lower—to limit the amount of handler crashes for one specific bad message. If this becomes a problem. multiplied by the average processing time per second. the request stays queued. Here is the algorithm used to determine the interval: Attempts * Ping Rate * Scan Interval) Maximum Ping Interval: This value is the maximum time between subsequent pings for a node that is in the PSNODESDOWN table. However. as messages would not be restarted in case of a handler crash. When the dispatcher dispatches a request.

Separate pub/sub domains work only for Asynch messaging. there will be database contention and the overall performance will be significantly impacted. use the PeopleSoft Internet Architecture install on the other online application servers. The default messaging server defined by _dflt at the end of each dispatcher process creates its own queue list based on all queues in the database. you can configure one or more domains. and vice versa. PeopleSoft Internet Architecture should not be accessed on the dedicated machine. Synch messaging runs as a service in the online app server. Sync messages should be as small as possible to improve response time.PeopleTools Performance Guidelines White Paper 9/10/2010 These are the configurable PSADMIN parameters for synchronous messaging that can affect performance. The dispatcher looks at the queue. as these will consume additional resources. as this will be the fastest initial poll rate from the database queue. The dispatcher is where the partitioning logic is applied. less the queues defined for the same type dedicated server process. The reason is that each domain has a publish dispatcher and a subscription dispatcher. CONFIGURE DEDICATED MULTIPLE DOMAINS FOR HIGH-VOLUME ASYNCHRONOUS MESSAGING Pub/sub domains for high-volume messaging should usually run on a box other than that used for online users. figures out how many messages can be processed next (based on partitioning). All rights reserved. It will continue to read the DB queue and make the Tuxedo calls even before the first set of calls have come back. When running pub/dub on a dedicated box. To access PeopleSoft Internet Architecture for configuring messaging. Therefore. ensure that the queue lists are indeed unique for the different dispatcher types. adjust the Scan Interval for each dispatcher in PSADMIN to 1. The default is set to 5 based on performance benchmarks. In general. Third-parties should always use compression if possible. For information on how to configure dedicated servers. This section discusses each of these parameters in detail and its impact on performance. Dedicated messaging servers are assigned a certain number of queue names that result in its queue list. Moreover. These domains should have application server processes (PSAPPSRV) configured in addition to pub/sub servers. The advantage of having the application server processes on the pub/sub machine is that if the server has only pub and sub services defined. add only the server type needed for the queue. Thread Pool Size: This value represents the number of concurrent threads that one PSAPPSRV process can spawn for HTTP requests. The roll of the subscription dispatcher is to take messages from the database queue and create Tuxedo calls to get them processed. 37 . Min Message Size For Compression: Size of message content data that will cause the Integration Broker to compress the data prior to posting to the Integration Gateway. Within a dedicated pub/dub machine. The second dispatcher can also © Copyright Oracle. The second dispatcher may not be able to read from the DB queue because the first dispatcher locks certain rows while processing. reference the Integration Broker PeopleBooks. This means that if you have long running notifications. CONFIGURE DEDICATED MESSAGE SERVERS FOR HIGH VOLUME ASYNCHRONOUS MESSAGING It is best to run pub/sub (asynchronous) messaging activity on dedicated servers when processing a high message volume. it must poll the database queue to determine if there is work to be done. This list must be unique across messaging servers pointing at the same database. and then puts them in the Tuxedo in-memory queue to be processed. With the (additional) application servers configured on the same machine as the pub and sub services. remove all queues no longer in use. There are few scenarios in which having multiple domains on one box will result in performance advantages. otherwise. The dispatcher doesn’t wait for the return of the first set of calls before moving on. to configure multiple dedicated servers on different domains (to spread across different machines). In addition. Doing so helps prevent messaging traffic from being affected by the number of online users. The gateway should ―point‖ to this application server domain for message processing. create only a subscription contract server. The dispatcher locks the rows in the DB message queue until the Tuxedo calls come back with either success or failure. you get event-driven notification of work to be done without the latency of polling.

Use CIs only if the base components are light and have quick response times. The Full Sync EIPs are one-time in nature and hence do not need to be archived. This will cause the message data to be archived into other IB PeopleTool tables. 3. blocking other messages in the same queue. Database Layout: Plan database layout by splitting PeopleTool tables from application tables for better throughput. APPLICATION GUIDELINES FOR ASYNCH MESSAGING You should partition messages as much as possible. You should use and reference the message that’s passed into the method whenever possible in PeopleCode. Minimizing calls reduces the amount of PeopleCode message overhead to instantiate request/response messages. Database Tuning: Create database statistics in a test environment from test runs and export them before production runs. configure using IB failover. In general. To reduce delays due to posting/queuing. Additional Tips:     Enable archiving for Full Sync EIPs or any process where archiving is not required. pack as much of the work into as few of calls as possible. Empty databases do not have database statistics. For third-party applications. By adding a simple relay servlet. a lock will be maintained on the queue sequence ID table. the slower the CI. If EIPs are using temp tables. 4. CIs should not be used for full sync processes. GetMessage is a relatively heavy call. third-party messaging can take advantage of compression. Keep the number of sync requests from a client to a minimum or use synchronous threading. They may be used in incremental sync processes where volumes are not expected to be high. sync messages should be small to improve response time. and use compression. and the transaction takes a long time to complete. Note that CI performance is dependent on the underlying component. Third-party clients should use compression. This will reduce locking and improve performance. so transforms and OnRequest PeopleCode should to be light. if you have a certain amount of work to be done on a remote system. Message compression is automatic for PeopleSoft-to-PeopleSoft transactions. then add handlers rather than a new domain. use large messages (multi-transaction) for full sync processes. If you are trying to configure for failover. If you are going to consume resources. or publish the message as late in the transaction as possible. The heavier the base component. All rights reserved. XSLT transforms will be much faster than PeopleCode transforms. Notification PeopleCode should be as light as possible. Deactivate all message queues that are not being used. In general. Transform code (either PeopleCode or XSLT) should be as light as possible. if possible (we do this by default between PSFT applications). Application Guidelines for Sync Messaging Response time tends to be important in synchronous requests. If the component is light. 2. If you publish a message early in a transaction. Keep commits at the transaction level and not at the message level. create the database statistics for these tables. make sure the indexes are available for reads. After Full Sync is run. use the enqueue option as much as possible. the DBA should update the database statistics for the new (grossly changed) table sizes. Archiving: Enable the archive option on the Queue page for queues designated for EIPs. Areas to review when using the Full Sync EIPs: 1. For multitransaction messages. 38 . Full Sync EIPs are used for initial database creation. commits should be frequent to minimize contention. Third-party clients should post to PeopleSoft in parallel. Compression can reduce response time by 20 to 80 percent based on message size. When publishing from PeopleCode. set the HTTP target connector property ―sendUncompressed‖ to N.PeopleTools Performance Guidelines White Paper 9/10/2010 add complications in debugging. it is possible to have a fast CI. After temp table population. Adding another domain takes up systems resources. Partitioning is not an issue with sync messaging. For example. Sync messaging should © Copyright Oracle.

48 AND LATER) During on-idle processing. Note: Make sure that you apply PeopleTools 8. If synch messaging is used for inserts/updates/deletes. In PeopleTools 8. © Copyright Oracle. All rights reserved. a component should not depend on the successful completion of a SyncRequest. the SyncRequest will not be rolled back. MASTER/SLAVE When setting up a master/slave configuration using machines with different CPU processing power.47.48. reducing the maximum app message size from default of 10MB to 25K enables the process to run significantly faster. Note: If needed. that machine may not keep up with the slave. the slaves would sit idle and throughput would not be maximized. As a result. If the remote system is down. We suggest manually setting the value back to the default after the FULLSYNC messages are complete because this setting affects all message types. the SyncRequest will fail. If you use the slower machine as master. If a SyncRequest has been completed. use threaded sync requests or possibly Asynch messaging.cfg is called Load Balance Interval. setting the thread count equal to the number of psappsrv. and the client transaction rolls back. not for remote inserts/updates/deletes.46. These patches fix an important thread leak issue associated with using this feature.exe processes in the target domain for the messages can improve message handling response times by as much as 80 percent over a single threaded implementation. 39 .46 provides a multithreaded version of IntBroker. If the dispatcher is constantly busy. resulting in failed messages not getting retried or new messages not getting processed. or should use the Asynch system. which could help avoid queues not getting processed due to the previously mentioned reasons.48 and later. Setting this parameter (measured in minutes) forces the dispatcher to perform on-idle processing at fixed intervals. For example.PeopleTools Performance Guidelines White Paper 9/10/2010 typically be used for remote queries. you can distribute PSPUBHND via a Master/Slave configuration if the number of threads is limited by the source domain hardware.46 AND LATER) Synchronous Messaging: PeopleTools 8. (Publishes will be rolled back). MULTITHREADED INTEGRATION BROKER (PEOPLETOOLS 8. Also. when running FULLSYNC message from a HCM instance to setup Enterprise Portal Resource Finder.12 or later and PeopleTools 8. If the remote system is down. the Asynch system will retry. In general.SyncRequest() and enables users to configure the number of message handling threads. go to PeopleTools->Utilities>Administration Options-> PeopleTools Options and change the Maximum App Message Size field. To reduce the maximum app message size.06 or later if you are not on PeopleTools 8. REDUCING MAXIMUM APP MESSAGE SIZE Some operations may benefit from smaller message size. the on-idle processing may not get run for extended periods of time. Asynchronous Messaging: As with synchronous messaging. the Integration Broker dispatcher will ping nodes that are down (Publication Dispatcher only) and also synchronize its in-memory queue with the database queue table. If you need to send data to multiple systems at the same time. we recommend setting the number of threads for PSPUBHND equal to the number of psappsrv processes in the target domain. a new configuration parameter in psappsrv. use the more powerful machine as the master. The requesting application should be prepared to deal with this by using exception logic. SyncRequests do not share a transaction context with the requesting system. CONFIGURE LOAD BALANCE INTERVAL (PEOPLETOOLS 8. The Asynch system is much more efficient at fanning out information to multiple target systems.

2253 [10/24/00 13:46:25 SubConProcess](1) (NET. When we tested shutting down everything in the correct order. Two-tier mode invoked no errors. Second Error: >PSSUBHND_dflt.333): The service PSSUBHND_dflt could not be sent because of a blocking condition within Tuxedo on the client. you can avoid this problem. 40 . PSSUBDSP_dflt.1784 [10/24/00 13:46:22](1) (NET.2253 [10/24/00 13:46:25](2) Service SubConProcess failed Resolution: This problem was appearing when the nightly backup inadvertently shut down the database while the appserver was running. The Archive Log (or Redo log) is a side effect created by the Application Messaging Dispatchers’ select statement. and process scheduler (not the DB) and restart them in the correct order. no access to the PS system was possible in three-tier mode. PSSUBDSP_dflt.PeopleTools Performance Guidelines White Paper 9/10/2010 SCAN TIME SETTING FOR APP MESSAGING An Oracle database user who has database logging turned on may see a large volume of archive log created. The contents of the Oracle Archive log contained the following: SET TRANSACTION READ WRITE. this problem does occur.346): Failed to execute SubConProcess request PSSUBHND_dflt. All rights reserved.1784 [10/24/00 13:46:22](1) (NET. While these errors occurred. COMMIT.333): The service PSSUBHND_dflt could not be sent because of a blocking condition within Tuxedo on the client. the problem disappeared. PSSUBDSP_dflt. The PSSUBHND instances were too busy erring out to handle even one subscription. If. © Copyright Oracle. INTERNAL. As long as you follow the correct shut down procedures. however. which is invoked periodically based on the value of the Scan Interval. shut down the web server. PUBSUB ERROR AND APP SERVER LOG FILE GROWING Problem: These PSSUBDSP_dflt errors were occurring upon starting the App server. application server. Application Messaging has been enhanced to minimize the side effect on Oracle logging. There are hundreds of entries like this.333): The service PSSUBHND_dflt could not be sent because of a blocking condition within Tuxedo on the client.1784 [10/24/00 13:46:22](1) (NET.

file-max = 65536 # use wider range for local ports.conf file.ipv4. use the following kernel parameters.Operating System Settings For a large environment with many domains. # these are system defaults. If you use this default. and PeopleTools component configuration. process.ip_local_port_range = 10000 65000 # allow more/larger IPC message queues kernel. the number of sockets that can be in a TCP_WAIT state is limited. To prevent DOS attacks. so information presented in this section may be incomplete. TCP_WAIT is not an adjustable parameter. which is loaded when the system boots.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 7 . # raise max open fd limits fs. # setup all Tools components to use port numbers between 1024 and 10000 net. FOR LINUX The default settings and available tuning options vary from one Linux kernel version to the next. The sysctl name is net. In the Linux kernel. The correct settings also vary depending on factors such as available physical memory.msgmni = 512 kernel. All rights reserved. For reliable TCP behavior. FOR SOLARIS MSGMAP=2048 © Copyright Oracle.shmall = 1073741824 # adjust IPC semaphore settings kernel. 41 . Kernel parameters of this size will provide a good deal of resources and are not uncommon in our customer environments. # except for shmall which is varies depending on physical memory kernel. <h4 These settings can be found in the /etc/sysctl.conf file. TCP_WAIT Unlike other systems.shmmni = 4096 kernel. and close more than 3000 sockets per second to see a problem. do not lower TCP_WAIT below 60 seconds on any system. the parameter is hard coded at 60 seconds and requires a recompile to change.tcp_max_tw_buckets and the default value is 180000.msgmnb = 1048576 # set IPC shared memory blocks.sem = 250 256000 64 1024 After you change the sysctl. you must establish.msgmax = 1048576 kernel. number of processors. you can load the updated values from that file into your running system with sysctl -p.ipv4.shmmax = 33554432 kernel.

PeopleTools Performance Guidelines White Paper MSGMAX=65536 MSGMNB=65536 MSGMNI=1024 MSGSEG=32767 MSGTQL=1024 SEMMAP=512 SEMMNI=512 SEMMNU=4096 SEMUME=10 SEMMNS=4096 SEMMSL=8 9/10/2010 FOR HP-UX dbc_max_pct=10 dbc_min_pct=8 default_disk_ir=1 fs_async=1 max_thread_proc=2048 maxfiles=2048 maxfiles_lim=4096 maxssiz=200802304 (191.5 MB) maxswapchunks=2048 maxuprc=512 maxusers=2000 msgmap=2048 msgmax=65535 msgmnb=65535 msgmni=1024 msgseg=32767 msgtql=2046 semmap=512 semmni=512 semmns=4096 semmnu=4096 FOR TRU64 ipc: msg_max msg_mnb msg_mni msg_map msg_tql shm_max shm_min shm_mni shm_seg sem_mni sem_mnu sem_mns sem_msl sem_opm sem_ume sem_vmx sem_aem = = = = = = = = = = = = = = = = = 262144 262144 16384 20000 4096 4294967295 1 300 100 4096 1048 819200 1000 400 1048 32767 16384 © Copyright Oracle. 42 . All rights reserved.

43 . require that you properly set per_proc_data_size.PeopleTools Performance Guidelines White Paper 9/10/2010 ssm_threshold=8388608 num_of_sems = 1024 max_kernel_ports = 22487 inet: tcpnodelack = 0 tcbhashnum = 16 tcbhashsize = 8192 ipqmaxlen = 1024 ipqmaxlen = 2048 ipqs = 1 ipqs = 32 tcp_mssdflt = 1460 tcp_msl = 60 pmtu_enabled = 0 tcp_sendspace = 61440 tcp_recvspace = 61440 udp_ttl=60 vfs: bufcache = 1 fifo_do_adaptive = 0 socket: somaxconn = 65535 sominconn = 65535 proc: per_proc_data_size = 3221225472 (3072MB. Many applications. the per_proc_data_size should be less than the physical memory available on the system. swapping will occur. All rights reserved. for example Oracle and the Tru64 Java Fast VM. or three-quarters of the value of perproc-address-space) per_proc_address_size = 4294967296 (4096MB) This is needed if you must compile large numbers of Cobol programs. However. © Copyright Oracle. otherwise.

PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 8 . must be at least "+5. which caused a steady increase in RENSERVER memory.TXT) reaper_interval How often (in sec) to look for and delete expired events. Default is 60.Call Telephony Interface (CTI) RENSERVER PARAMETERS (PSRENCONFIG. Default is 30000 (30 seconds). Use "infinity" or something like "+3600" for 1 hour. Default is 3600 (1 hour). 44 . which caused a steady increase in RENSERVER memory." Default is 3600 (1 hour).PROPERTIES) interval_topic_reaper Topic reaper interval in milliseconds. which increases the time the PSTOKEN of the agent is expired at the RENSERVER. Default is 2. which keeps the session alive for an extended period of time. interval_topic_reaper = 3000000 (Recommended) heartbeats_to_miss New parameter specifies the number of heartbeats to miss before the session is set for deletion. © Copyright Oracle. All rights reserved. ns_param default_kn_expires reaper_interval 600 (Recommended) Default to use if an event is received without a kn_expires header. ns_param permission_max_idle default_kn_expires "+10" (Recommended) How long (in sec) the permission can stay in cache if the tunnel is closed. ns_param mtu_size 1500 (Recommended) PSMCAPI PARAMETERS (RENCLIENT. ns_param mtu_size permission_max_idle 300 (Recommended) New parameter to pad the network TCP packets with additional data to reduce latency in TCP ACK packets.

mtu_size=1300 (Recommended) PSMCAPI JAVA OPTIONS (STARTSERVER. -Xms512m -Xmx768m (Recommended) © Copyright Oracle. 45 . Increase to below recommended value to handle higher call rate (more than 10 cps).PeopleTools Performance Guidelines White Paper 9/10/2010 heartbeats_to_miss = 10 mtu_size (Recommended) New parameter to pad the network TCP packets with additional data to reduce latency in TCP ACK packets. All rights reserved.BAT) Java Heap Size Options Default is –Xms256m –Xmx512m.

Our studies have shown that PSAE is as good as PSAESRV for most practical purposes. cleaning up any outstanding SQL cursors to the database that may have been left behind. To shutdown PSAESRV. when you configure the Process Scheduler. PSAE has the added advantage of being recycled at the end of each application engine job. PSAE does not have any possible memory leakage problem that may occupy the precious system memory.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 9 . you can change the default of the PSAESRV instance to 0. In short. 46 .PSAESRV Max Instances =0 Recycle Count=1000 Allowed Consec Service Failures=2 © Copyright Oracle. PSAE is a cleaner workhorse. Because PSAE recycles after each use. PSAE is equivalent to PSAESRV. All rights reserved. Values for config section .PSAE and PSAESRV The benefits of PSAESRV versus PSAE are a popular topic of discussion. If you have an application engine job that runs longer than 10 seconds.

Use SQR or other mechanisms to generate the XML File as a preprocessing step. You can change this setting from the BOE Management Console. While PSQuery and rowset data are supported data sources. if you are running large reports. BOE will request data via the integration gateway and Query Access Services (QAS).48 AND LATER) For customers who have a large reporting load and have converted the report format to Business Object Enterprise 11 (BOE). in effect. we recommend that you configure a dedicated application server domain and install the BOE server on a separate machine. they will. QAS repository files.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 10 . By default. if there is a burst of report requests.48 AND LATER) Consider the following tips when using XMLPublisher:    Increase JVM heap size to 512MB. BUSINESS OBJECTS ENTERPRISE (PEOPLETOOLS 8. it may be beneficial to set recycle count to a greater value to minimize the cost of restarting PSANALYTICSRV. take greater care when designing the RTF template and data source. configure these locations such that the physical files are created on fast disks that are optimized for faster read and write. to avoid the reporting load affecting other online users. set the Minutes Before an Idle Connection is closed setting to a lesser value (1 minute) to free up resources from inactive users more quickly. © Copyright Oracle. For better performance. If you are running many small reports that take less than 1 minute to finish. Using SQR or other mechanisms is one optimization technique. when generating BOE reports. See the "Set Application Server JVM Options" section on how to do this. In addition. All rights reserved. the memory footprint of the PSANALYTICSRV may be high.Reporting Tools XMLPUBLISHER (PEOPLETOOLS 8. For more complex reports that require the RTF template. be converted to XML File during the report processing. lots of physical files are created in various layers: BOE temporary files. 47 . the PSANALYTICSRV processes spawned to handle the request will continue to consume memory if you set recycle count to greater than 0 (eventually the idle processes will shut down). You should set the Max Instance Count of PSANALYTICSRV to a value equal to or greater than the maximum number of concurrent reports that you must run. However. While submitting BOE reports through your Peoplesoft application. PSANALYTICSRV recycles after each request. and Report Repository files. Reason: the XML File is the most optimal data source for an XMLP report. and it is better to set the recycle count to 0. Use PDF for reports where the PDF template will suffice. QAS will make requests to PSANALYTICSRV to retrieve the actual data. Depending on the size of the document.

see the White paper entitled "PeopleSoft Performance Monitor" on My Oracle Support.1 © Copyright Oracle. The Document Id is 747510. For more information on PPM. PeopleSoft Performance Monitor You can capture detailed performance information for individual requests using PeopleSoft Performance Monitor (PPM). See PeopleBooks for more details.Monitoring Tools PeopleSoft Ping PeopleSoft Ping is a convenient monitoring facility using PeopleSoft Internet Architecture. See the Application Server Guidelines section for more details. PPM provides a breakdown of the response time for the request and enables you to see time consumed by individual SQL statements or PeopleCode executions. 48 .PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 11 . Select PeopleTools->Utilities->PeopleSoft Ping. All rights reserved. psadmin You can use psadmin to monitor Tuxedo queueing. You can use this information to determine the optimal number of PSAPPSRV processes. and it shows the time spent in different tiers of the PeopleSoft system.

50 Enhancements Version 8. Modal Windows Modal Windows are used for a number of tasks including    messages prompt look ups secondary pages 49 © Copyright Oracle. The amount of time that the browser waits before requesting a list of values is . Autocomplete (aka Type Ahead) Autocomplete vastly improves the user experience. This value cannot be changed. the user can enter search data.50 GUI Enhancements Version 8. The Swan Look and Feel results in additional requests to your webserver including:    More javascript More images More CSS (Cascading Style Sheets) Once cached on the browser. style sheets and Javascript. This feature can be disabled via a user personalization change. The information in this chapter is intended to explain how some of the GUI enhancements actually work to give you a better understanding of how they might affect your environment. Ajax has been shown to reduce the number of bytes transferred to the browser in some situations when partial page updates occur.Version 8.49. there are no more requests for these files. All rights reserved. Javascript manipulation and XML processing can slightly increase the amount of time required by the browser to load the page. Swan Look and Feel To achieve a more modern look and feel requires additional images. It is enabled for all prompt fields. In one step. wait for the list to populate.5 seconds. Although these enhancements affect all of the tiers in your PeopleSoft environment. This is due to the browser HTML engine applying the new updates to the HTML page. It allows the user to perform partial searches on prompt fields without having to navigate to the prompt page. Partial Page Refresh (aka Ajax Updates) To achieve Ajax updates for a page required a new infrastructure on the browser to handle the responses as well as additional Javascript processing. and then choose from the list of retrieved values.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 12 . This reduces the amount of typing and clicks that the user has to perform to find the desired value.50 includes many GUI enhancements that improve the look and feel of the online experience. we have not encountered any required tuning or configuration above and beyond what was already being performed for release 8. This reduces your network utilization. .

All rights reserved. if any. 50 . Employee Info. the browser makes an additional request to the appserver   The additional request happens at page load time for the iFrame This iFrame infrastructure is reused for all the Modal lookups on the same page We have attempted to minimize the affect of this additional request from a performance perspective. Interactive Mode Ajax and the other features discussed here are considered Usability features and are not performance improvements. It is not recommended to change pages from deferred to interactive mode without considering the impact to performance as this will increase the load on your system. Department ID etc. This page generally contains additional data pertaining to Vendor ID. It Provides contextual data in an easy to access window on a transaction page without the need to navigate to another page. Deferred Mode vs. however it may be questioned during load testing.    You will see your http requests increase to support this feature and as a result more Jolt requests and some increase in web server CPU time This additional requests may increase the webserver and Appserver CPU time accordingly The impact of this enhancement is dependent upon the actual test that is performed during load testing Scrollable Grids / Grids Zoom Grids have been enhanced to allow for a much better user experience. but there is only a minor impact to performance. It also supplies additional data to the end user while reducing the number of clicks required to navigate within the application.PeopleTools Performance Guidelines White Paper 9/10/2010 To Achieve the look and feel of a floating modal window required the use of an HTML tag called an iFrame.1 applications to aid in providing additional data to the user on specific fields. thus there is a minor performance overhead.    An iFrame is a separate window within the main browser window or HTML page This enables the ability to display two HTML pages within the same browser window This iFrame can be resized and moved around within the browser window For each page with a Modal. Users can scroll through these rows while the column headers remain fixed Mouse Over Pages This features has been used across the 9. Features include:     One click Customization – grids can be customized using 1 click instead of navigating to another page Grid Zoom allows the user to see more rows of data in a modal window than they could have seen on the actual page Grid zoom also allows for quicker data entry into the grid Scrollable grids – allows more rows of data to be accessible to the user while not impacting the overall size of the page. These pages are loaded in the same appserver request as the main page. © Copyright Oracle.

. The amount of time that it takes to reply to the request depends on several factors. All rights reserved.Query Access Service (QAS) QAS QAS (Query Access Services) allows application developers to create web service-based applications that can retrieve data from PeopleSoft applications.g. When designing an application that will invoke QAS service operations. the calling application process must wait for a reply. QAS provides several web service operations. In particular. The full result of the query will be included in the reply. including but not limited to:      Network performance Application server performance Database server performance Query complexity Amount of data in the result set Note: Amount of data in the result set is determined by two factors:   Number of rows of data Numbe of columns in each row In general if you expect most queries to be simple in nature and result sets on the small size (e. there are three modes of query execution that each have particular performance characteristics:    Synchronous Query Execution Asynchronous Query Execution Sync/Poll Query Execution Synchronous Query Execution When a synchronous query execution request is issued.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 13 . QAS utilizes the PeopleSoft Integration Broker framework to satisfy requests. If you expect query complexity to be high and/or you expect that large result sets will be commonplace. 51 . hundreds of rows. Asynchronous Query Execution © Copyright Oracle. then synchronous query execution may be an appropriate query execution mode. or if response time is critical. then you may want to consider other modes of query execution. it is important to consider performance. not thousands of rows).

After QAS receives the request it queues the request internally in the Integration Broker Pub/Sub system.000) is used. It will have to issue additional web service calls to get the query results.000. the calling application process does not have to wait for the result set to be returned. this will result in too many blocks containing very few rows. Performance Considerations Which execution model to run will depend on the number of rows and columns returned in the response. Control returns very quickly to the calling process. it is recommended that asynchronous query execution be used only when you expect query result sets to be small. if the heap size in the web server is not sufficient to retrieve the large response block. of course. When the calling program requests query results using the Get Query Results web service operation and passing the unique transaction id. Thus.PeopleTools Performance Guidelines White Paper 9/10/2010 When an asynchronous query execution request is issued. In sync/poll execution. 52 . the larger the response block.000 to 1. QAS will post to the calling application the result set.000. Large result sets will take more time to convey in the network and take more time to process. This is probably not what you want to do. At this point the calling application does not have any query results. it will lead to a JAVA out of memory exception. In synch/poll execution. © Copyright Oracle. The calling application. This mode of execution is best suited for returning large or small numbers of rows of data. Sync/Poll Query Execution When a sync/poll query execution request is issued. In synch/poll execution. It is the mode typically used by reporting applications accessing PeopleSoft data via QAS. All rights reserved. the fewer blocks are returned and total response time for all blocks is less. Optimal request block size in KB is in the range from 100. but the user has to wait longer for the response. and the query result set will be stored internally. must be designed to be able to accept that post and process it accordingly. The query will be run. When the result set is created. the return to the request includes a unique transaction id. For a large result set this means that the message posted to the calling application can become quite large. even though the response size may be smaller. one block returned for each Get Query Results request. One query may result in one or more result blocks being passed. query results will be returned in blocks. Response data that consists of large number of columns with fewer rows of data has a slower response than response data which consists of fewer columns and more rows. Keep the following guidelines in mind:       Synchronous execution is not recommended for large result sets. The maximum size of the result block can be configured. Requesting a query be executed in synch/poll mode with block size = 0 or Max will result in all data in one block. if a smaller block size (less than 100. The query result set resulting from an asynchronous query execution request is posted to the requesting application in one result post.

All rights reserved. Client SocketTimeout=600000 ms or Max limit approved for the query response time. 53 . Sync/Poll: Optimal Request Block Size in KB in the range from 100000 to 1000000. © Copyright Oracle.PeopleTools Performance Guidelines White Paper 9/10/2010 Configuration Recommendations Recommended configuration options include:      Minimum Web Server Heap Size: Min & Max=512MB Client Heap Size: Min & Max=1024MB. Sync/Poll: PSBRKHND instance count needs to be increased as response block count increases.

Minor changes for browser performance and 8.50 Query Access Service (QAS) Added 8. the following people reviewed this White paper:       Marc Varennes Ravi Shankar Colleen Murray Willie Suh Sunil Kulkarni Syamala Aramandla Revision History Date 2010-09-10 2010-06-23 Description Posted new version on 8. Updated formatting. Modified file name.4 (inherited from 8.51 GA date although no content was changed.PeopleTools Performance Guidelines White Paper 9/10/2010 Appendix B – Revision History Authors        Samuel To Michael Turner Michael Simons Ravi Selvaraj Indraneel Ganguli Dhinakaran Veeraraghavan David Nix Reviewers On Octocber 2007. Created document for PeopleTools 8. version 8) 2010-06-22 2010-06-21 11/19/07 07/01/2002 © Copyright Oracle.1 Performance RedPaper. All rights reserved. 54 .50 content for GUI features.50 GUI features. Copy edited and inserted numerous queries. Added 8.

48 information:      Added information about preload cache. 55 .PeopleTools Performance Guidelines White Paper 9/10/2010 Date 12/20/2002 Description Revised. dynamic recycling and application server JVM options Added information on jolt session pooling.Added comment on compression and high-speed link.Added explanation on PSAPPSRV instance Web Server Guidelines – Updated Execute Thread Count discussion. Kernel Configurations – Modified file descriptor limit for HP-UXAdded proc parameters for Tru64  01/02/2004 Revised:    Application Server Guidelines – Increased Recycle Count value. and added Linux to the section 06/06/2007 Updated document with 8. Added section on load balancing Additional Guidelines . added workaround for Linux.Rearranged and expanded section on Navigation Pages Caching. weighted load-balancing and dumping heap on OutOfMemoryError Added Integration Broker section Added Reporting Tools section Renamed Kernel Settings section to Operating System Settings section. Added Jolt Request timing monitoring toolAdded WebSphere Resource Analyzer information Additional Guidelines – Updated discussion about Compression Web Server Guidelines – Updated with information about Oracle Application Server Call Telephony Interface – Added new chapter PSAE and PSAESRV – Added new chapter 11/04/2005    02/06/2006 05/23/2006 10/23/2006 Changed formatting Added missing step (set auditPwd) to the instructions to enable JOLT request timing trace Updated document with 8.2 & Websphere 6. All rights reserved.0.   Web Server Guidelines – Updated service pack information for WebLogicUpdated BEA link.49 information:  Added information about Weblogic9. Added explanation on session timeout.3 logging level settings to improve performance © Copyright Oracle.1.

650. All rights reserved. Worldwide Inquiries: © Copyright Oracle. Other names may be trademarks of their respective owners.7000 Fax: +1. 0110 document may not be reproduced or transmitted in any form or by any means. This document is not warranted to be error-free. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International. and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. Phone: +1. electronic or mechanical. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document.com Oracle and Java are registered trademarks of Oracle and/or its affiliates. This Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores.650. UNIX is a registered trademark licensed through X/Open Company. All rights reserved. CA 94065 U. Opteron. PeopleTools Performance Guidelines White Paper This document is provided for information purposes only and the contents hereof are subject to change without notice.7200 oracle. AMD. Inc.PeopleTools Performance Guidelines White Paper 9/10/2010 Date Description     Added information about to ensure JIT is enabled and class verification skipped Added information about tuning Asynch and Sync messaging on Integration Broker section Modified contents in PSAPPSRV instances. including implied warranties and conditions of merchantability or fitness for a particular purpose.506. nor subject to any other warranties or conditions. the AMD logo. without our prior written permission. for any purpose. Intel 56 and Intel Xeon are trademarks or registered trademarks of Intel Corporation.A.S. whether expressed orally or implied in law. App server Dynamic recycle. Pre-load Cache. . Oracle and/or its affiliates.506. Parallel boot sections Added information about supported browsers in browser section Copyright © 2010. Ltd.

Sign up to vote on this title
UsefulNot useful