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

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

PeopleTools Performance Guidelines White Paper 9/10/2010 Additionally. BEA. This white paper has not been submitted for any formal PeopleSoft testing process and has not undergone rigorous review. we recommend that you to read documentation on Oracle Application Server. 7 . BEA Weblogic/Tuxedo. The material here is published as is. and IBM documentation. © Copyright Oracle. and IBM Websphere. All rights reserved. Oracle assumes no responsibility for its accuracy or completeness. See your PeopleSoft Installation and Administration PeopleBooks for directions on accessing the Oracle. 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.

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

Reduce the number of PSAPPSRV processes or add more memory to the server. but only the amount of physical RAM that the process is using. Because PeopleSoft shares a lot of the common libraries. and then select Select Columns. the paging file) than physical memory. 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. under Memory. we have created several UNIX vendor-specific shell scripts to monitor the Performance Monitor parameters. you will be ―double counting‖ the shared libraries portion. with NT.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.PeopleTools Performance Guidelines White Paper 9/10/2010 PeopleSoft process names begin with ps. This is the sum of Pages Input/sec and Pages Output/sec. you must select both of these fields. Determining If Excessive Memory Swapping Happens Under NT To determine if excessive memory swapping happens under NT: 1. This value also includes the pages to/from noncached mapped memory files. 2. However. Start the NT Performance Monitor. 2.543 MB 11 % © Copyright Oracle. Sort the process by name. not an absolute measurement of memory usage. Determining Memory Usage on UNIX To help the end user better understand the memory consumption and CPU usage of the PeopleSoft Application Domain. When page/sec is greater than 100 hard pages per second. perfmon. Pick the Memory Usage and Virtual Memory Size columns. 9 . Start TaskManager and select View from the menu bar. an application may be using much more Virtual Memory (that is. therefore. if you add up all the processes. 3. 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. and the two memory columns will tell you approximately the amount of memory that each PeopleSoft process is using. You can obtain the monitoring shell scripts from My Oracle Support document id 333300. so if you're gauging memory at all. the summation of all PeopleSoft processes is a quick estimator. and then the Page/sec. there is a swapping problem. Add the Object Counter. 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. All rights reserved. This is the primary counter to observe if you are concerned about excessive memory pressure (that is. The Memory Usage columns includes the shared libraries loaded into each process. thrashing) and the excessive paging that may result.

run vmstat and check out the pi column to see if you are doing much paging in and po for paging out.PeopleTools Performance Guidelines White Paper Virtual memory size is: 9/10/2010 198. the AppServer terminates and restarts itself.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. When the amount of memory occupied by the AppServer becomes too large (relative to the real memory available at the time). use vmstat to determine if the OS is swapping. which includes memory that has been paged out to the physical disk. 10 . the amount of physical memory occupied by the AppServer processes also increases. When the AppServer reaches the specified Recycle Count value. as the number of requests serviced by the AppServer increases.098MB For all PSAPPSRV Processes: Resident memory size is: 108.559 MB Resident memory refers to the real physical memory currently required by the process for its operation.) © Copyright Oracle. Virtual memory refers to the process virtual address size. Background The AppServer processes use physical runtime memory to cache Panel objects in order to speed up user response time. instead of fetching the Panel objects from the database server every time. you should lower the RecycleCount of the AppServer. Recommendation We recommend that you set the recycle count to 5. APPLICATION SERVER RECYCLE COUNT The Application server recycle count parameter dictates the number of services after which the AppServer automatically restarts.453MB CPU for PS Processes: 9% Virtual memory size is: 106. In order to effectively manage the memory footprint of the AppServer. When the AppServer terminates. 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. (See the previous session for information how to determine memory swapping. Determining If Excessive Memory Swapping Occurs Under UNIX To determine if excessive memory swapping occurs under UNIX. All rights reserved. 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. the occupied memory is released. The output of ps_chk_domain. keep the Recycle Count at a realistic level. 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. To check whether paging is a problem.000. If the virtual memory continues to increase. However.

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

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. 7. [Cache Settings] . [Cache Settings] .cfg file (Process Scheduler configuration file) and set it appropriately.CacheBaseDir=%PS_SERVDIR%\CACHE . 5. Wait for the process to become Success. EnableServerCaching . However. set it to 2.4x. it may take 4 to 5 hours.42 and earlier only) Check your psprcs. do not enable shared caching for Process Scheduler.0 Server File caching disabled . The first time that you run the process.2 Server File caching for all types EnableServerCaching=2 . (For PeopleTools 8. Enable shared caching with the ServerCacheMode parameter (ServerCacheMode=1) in psappsrv. 12 .----------------------------------------------------------------------.============================================ . You may have to add a new value here. The Load Application Server Cache page appears.0 Server File caching disabled . Utilities. Settings for Tools that use Cache .============================================ CacheBaseDir=%PS_SERVDIR%\CACHE .2 Server File caching for all types EnableServerCaching=2 © Copyright Oracle. ServerCacheMode .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. All rights reserved.cfg is where you specify the type of objects to cache using the EnableServerCaching parameter. CacheBaseDir = the base cache directory .----------------------------------------------------------------------. Navigate to PeopleTools>Process Monitor. Select the correct process scheduler and click Run. psprcs.1 Shared Cache ServerCacheMode=0 3. EnableServerCaching . 3. The LOADCACHE reads this setting and caches metadata according to the value specified in the Process Scheduler configuration. For PeopleTools 8. Load Application Server Cache.1 Server File caching limited to most used classes . Ensure that ServerCacheMode equals 0.----------------------------------------------------------------------. 8. Ensure that the Run Location is set to Server.----------------------------------------------------------------------. Enter the appropriate Run Control ID.40 and later) Select PeopleTools. (For PeopleTools 8. Shut down your application server domain. Settings for Tools that use Cache .0 One cache directory per App Server Process .1 Server File caching limited to most used classes . Administration.cfg of the domain.============================================ CacheBaseDir=%PS_SERVDIR%\CACHE . In the Output Directory.============================================ . and reconfigure the domain so that the changes are reflected. 4.

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

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

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

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

the default value of 150 is sufficient. or a profiler that supports the binary heap dump format. All rights reserved. you may need to increase MaxClients or ThreadsPerChild (see the next section) to ensure incoming requests are not starving for connections. You should change this setting only if you see excessive CPU consumption of the OHS process (look for apache. Locate the appropriate <virtual host> section and comment out the line beginning with TransferLog. the equivalent setting is MaxClients. To change this value.conf in <Apache_home>\conf for editing. jhat (in JDK 6).4. Modify ThreadsPerChild and Oc4jCacheSize For Windows. For UNIX. Disable HTTP Request Logging in mod_oc4j Open mod_oc4j. open <ORACLE_HOME>\Apache\Apache\conf\mod_oc4j. Setting the Oc4jCacheSize to the same value as ThreadsPerChild should provide the optimal performance.conf and search for Oc4jCacheSize. In most cases. When you increase KeepAlive. you should set the Oc4jCacheSize to the same value. 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). For Windows.conf controls the number of concurrent threads (requests) that the Oracle HTTP Server can service. In most cases. If the entry is not there. WEBLOGIC © Copyright Oracle. 17 . 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. 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.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. the default value of 150 is sufficient.2_12 or later. You can add this comment to the JVM options: –XX:+HeapDumpOnOutOfMemoryError –XX:HeapDumpPath=/tmp If there is an OutOfMemoryError. if you decide to increase ThreadsPerChild. Generate Heap Dumps on OutOfMemoryError If you are using JDK 1. there is a new option to dump the JVM heap if you are running into OutOfMemoryError. the ThreadsPerChild setting in <ORACLE_HOME>\Apache\Apache\conf\httpd. This setting controls the number of connections between the Oracle HTTP Server and OC4J.

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

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

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

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

review the PeopleSoft Platforms Database to make sure that you are installing WebSphere into a supported environment. respectively. If you disable the JIT compiler. Step 2. </services> 2. When using this value. 22 . Use of IBM Http Server. for performance reasons. see the ―WebSphere Install‖ document posted on Customer Connection. .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.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. throughput decreases noticeably. For detailed installation instructions... for http and https. Therefore. Set Thread Count 1. Locate server.. especially the required e-fixes needed for WebSphere.. Note: Install WebSphere eFixes in any order.) © Copyright Oracle... Step 1. By using Xverify:none with the just in time (JIT) compiler enabled. . which listens at port 80 or 443 for http or https. To remove eFixes.4 supports a native http server within WebSphere at port 9080 and 9443. JVM property: -Xverify:none. the class verification stage is skipped during class loading. Setup and Configuration Note: PeopleTools 8. roll back efixes in the reverse order (from which you applied them). 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. performance test indicate that startup time is improves up to 15 percent.. 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. Note: Before you begin the installation. <services xmi:type="threadpoolmanager:ThreadPoolManager" xmi:id="ThreadPoolManager_1208430577007" enable="true"> . keep JIT enabled.. <threadPools xmi:id="ThreadPool_1208430577008" minimumSize="10" maximumSize="50" inactivityTimeout="3500" isGrowable="false" name="WebContainer"/> . is optional. All rights reserved.

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

xml#Servlet_1"/> </extendedServlets> </webappext:WebAppExtension> Also copy the file ibm-web-bnd. 6. Point to the logon URL and log on as usual.bootstrap. 8. Copy and paste the log from the browser to a text file. 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.ibm. 7. %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.WSLauncher"> 4. For more comprehensive data. Stop the webserver.xml#Application_ID"/> </applicationext:ApplicationExtension> Refer to the same topic in WebLogic for further information.w3.) Moreover.xml.ws. After logging on. 2. Using the Custom Properties page of the current WebProfile. In %WAS_HOME%/config/server-cfg.xml#WebApp_1"/> <extendedServlets xmi:id="ServletExtension_1"> <extendedServlet href="WEB-INF/web. repeat steps 4 through 7. © Copyright Oracle. 24 . submit the following URL to reset the existing log: http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>.org/2001/XMLSchema-instance" xmi:id="Application_ID_Ext" reloadInterval="0"> <!-.org/XMI" xmlns:applicationext="applicationext. Before logging on. Capture JOLT Request Timing Trace To collect JOLT request timing traces for WebSphere: 1.xmi" xmlns:xsi="http://www. Restart the webserver.DELETE THIS LINE <reloadInterval xsi:nil="true"/>DELETE THIS LINE --> <application href="META-INF/application. These messages are the log that has been collected. 3.xmi" xmlns:application="application. point to the previous URL again (http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log.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. add a String property named auditPWD and set the value. 5. A screen of messages appears on the browser window. You will use this password in a later step.xmi from the PORTAL/WEB-INF directory.0" xmlns:xmi="http://www.omg. All rights reserved.

Go to the %WAS_HOME%\bin directory. Go to the %WAS_HOME%\bin directory. For information on using the Resource Analyzer. 3.0 WebSphere Application Server InfoCenter for the Advanced Edition at http://www. 7. 25 . Install the PmiSingleServerBean. Clicking Enter enable you to use of default values as required by the Resource Analyzer.ibm. To use the Resource Analyzer with the Advanced Single Server Edition of WebSphere: 1. © Copyright Oracle.\installableApps\PmiSingleServerBean. All rights reserved. 8. Click Enter when prompted for the Default data source JNDI name and the JNDI name. 6. Start the Resource Analyzer.ear file (available under the %WAS_HOME%\installableApps directory). 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. Enter this command: seappinstall-install .html. Enter this command: ra hostname 900 AES.. 2. see the Version 4.com/software/webservers/appserv/infocenter.ear -ejbdeploy false 4. 5.

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

Firefox 3. 27 .7 Netscape 7. All rights reserved. Browser comparison Through informal testing using PeopleTools 8.PeopleTools Performance Guidelines White Paper 9/10/2010     Firefox 1. IE8 processes Ajax requests faster and can download images and JavaScript files much faster than IE7.2.1 Safari 2.0. © Copyright Oracle.5 onwards Mozilla 1. 8.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. we have found that IE8 is faster than IE7.50.4 and Safari are also faster than IE7.

43 and later) is to turn off query compression by clearing the Compress Query check box. Only files that have their mime types specified in the Compress Mime Types field are compressed. 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.42 and later. this check box should be selected. In particular. compression of additional resource files from web server to the browser is enabled. compression comes at a price: extra CPU processing time. However. A workaround (for PeopleTools 8.0. Therefore.text/html. Gzip and Compress are supported.Additional Configurations BROWSER COMPRESSION From PeopleTools 8. and clear the Compress Response check box to turn off compression. that is a rare scenario. The check box is selected by default © Copyright Oracle. therefore. select the web profile that you are using. Go to PeopleTools->Web Profile->Web Profile Configuration.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 5 . Note: Some query entries are truncated when IE tries to open queries in Mircosoft Excel. you can enable compression between web server and browser by selecting the Compress Response check box via PeopleSoft Internet Architecture. If the Compress Response References check box is selected. For PeopleTools 8. Note: For PeopleTools 8. in general.44 and later. and then select the Caching tab. select the Web Profile that you are using. 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. the PeopleSoft Internet Architecture menu may disappear when a user opens a PeopleSoft Internet Architecture page. 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. All rights reserved. CACHING Caching improves system performance by reducing service requests from the web server to the application server. The check box is selected by default. If Cache Portal Objects is selected. This problem does not occur in PeopleTools 8. Note: The main purpose of compression is to reduce the amount of data to be transmitted. turn off compression. Go to PeopleTools->Web Profile->Web Profile Configuration.text/css. 28 . 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/javascript. Note that this is applicable only when Compress Response References is set to true. In cases where high-speed links are used and the gain in transmission time does not justify the loss in CPU processing time. cache settings are configured via PeopleSoft Internet Architecture. Gzip and Compress are supported. you should turn off these settings. which turns off JUST queries. the compression settings would cause an error for certain updates of Internet Explorer 6.44 on. Here is the default: application/x-javascript.41 and earlier. Gzip and Compress are supported. However.

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

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

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

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

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

PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 6 . This type of loading continues until the message is completely loaded with all the desired data. Note that the processing time to determine the routings is much faster then actually processing a PeopleCode event. 34 . must you receive them as fast as other systems are sending them). 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. then you may have to look at what is happening in the notification event and optimize that. All rights reserved. Integration Broker has come up with an alternative to this current chunking mechanism using message segments. or running out of memory. The next segment is then available for processing. If physical resources are a problem. For example. These segments should be complete stand-alone data structures. One segment at a time is © Copyright Oracle. The number of OnRoute and Transform events is typically low compared to the overall number of different messages. 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). After one segment is populated based on a configuration parm. or overridden by PeopleCode. The message object is responsible for this memory management.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. that segment is serialized to XML and inserted into the IB database queue compressed. 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. 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. if a non-PeopleSoft system needs to send messages at a rate of x number per minute. If the data from x messages absolutely has to be run through the business logic in that one minute slice of time. One area of concern is the Oracle-delivered full sync service operations. a notification process) per slice of time. But if the notification process involves a lot of business logic or actions that take up a lot of server resources. Message segments enable a single message to load with all the data segmented by any chunkable size desired. The actual data is sent chunked by segments to the gateway and received by the target system. 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). Message segments provide a way to process and send large amounts of data (Gbytes) without impacting performance due to PeopleCode processing. the PeopleSoft messaging system can receive and queue them at this rate. you can reduce the number of this handler without impacting performance. then you should explore additional configuration options for optimization. You should determine what the real requirement is for slice of time throughput. The consumption of a segmented message in PeopleCode is straightforward. The message can be sent either as one message (ordered segments) or multiple messages (unordered segments). This handler also executes the OnRoute PeopleCode events (OnRouteSend or OnRouteReceive) and Inbound Transformations. 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. 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.

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

If the Min Instance is not the same as the Max Instance. This value allows for a longer time between subsequent pings. A good guideline is to use the number of incoming requests per second divided by the number of associated handlers. 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. This value should be set to a low value—5 or lower—to limit the amount of handler crashes for one specific bad message. When the dispatcher dispatches a request. many CPU cycles are spent performing these pings. However.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. the system sets the status of the message to START. Therefore. then under load. It is better to boot all at one time. you should have a high recycle count and monitor it to determine if it grows to an undesirable size. with a thread count set to 5. The problem with a recycle count on a handler is that with proper load balancing from Tuxedo. This potentially leads to a lot of redundant requests that the available handlers must cycle through. the system has to wait for the process (the handler) to boot up and initialize before it can be used. This value is in hours. PSPUBHND only Thread Pool Size: This value represents the number of concurrent threads that the handler can spawn for HTTP requests. This value can potentially have a big impact on overall performance of the messaging system. multiplied by the average processing time per second. TUNING PSADMIN PARAMETERS FOR SYNCHRONOUS MESSAGING © Copyright Oracle. Therefore. This is something to consider if memory resources are scarce. memory leaks are likely. it will attempt to process it again. 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. as messages would not be restarted in case of a handler crash. all associated handlers recycle at approximately the same time. 36 . This leads to the Tuxedo queue overflowing and potentially losing requests. Recycle Count: Because the handlers run IB Events that contain PeopleCode. when the message system is under configured (that is. 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. HANDLER Parameters Min Instances and Max Instances: These values should always be the same. one handler was able to replace three nonthreaded handlers. you do not want to set this value too high. If this becomes a problem. When there are a lot of nodes that are down due to improper configuration of routings on Service Operations. Note that with performance benchmark testing in this area. if the PeopleCode being run causes a crash of the process. depending on the PeopleCode being run. there are not enough handlers to process all the requests). you can set this value higher or lower. the request stays queued. and the next available handler will attempt to process this request and set the status to WORK. All rights reserved. The Tuxedo request is queued. However. avoiding allocations during max load. however. Part of the on-idle processing performs these ping requests. The recycle count by default is 20000. The dispatcher again sends the request after the restart period has elapsed. request that must be picked up when the restart period is reached. 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.

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

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

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

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

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

All rights reserved.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 .

for example Oracle and the Tru64 Java Fast VM. Many applications. All rights reserved. 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. require that you properly set per_proc_data_size. 43 . otherwise. the per_proc_data_size should be less than the physical memory available on the system. swapping will occur.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. © Copyright Oracle.

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

mtu_size=1300 (Recommended) PSMCAPI JAVA OPTIONS (STARTSERVER.BAT) Java Heap Size Options Default is –Xms256m –Xmx512m. Increase to below recommended value to handle higher call rate (more than 10 cps). 45 . All rights reserved. -Xms512m -Xmx768m (Recommended) © Copyright Oracle.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.

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

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

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

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

   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.    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. however it may be questioned during load testing. It also supplies additional data to the end user while reducing the number of clicks required to navigate within the application.1 applications to aid in providing additional data to the user on specific fields. It Provides contextual data in an easy to access window on a transaction page without the need to navigate to another page. but there is only a minor impact to performance. © Copyright Oracle. 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. 50 . 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. Interactive Mode Ajax and the other features discussed here are considered Usability features and are not performance improvements. thus there is a minor performance overhead. All rights reserved. Deferred Mode vs. if any.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. 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. Department ID etc. Users can scroll through these rows while the column headers remain fixed Mouse Over Pages This features has been used across the 9. This page generally contains additional data pertaining to Vendor ID.

Asynchronous Query Execution © Copyright Oracle. hundreds of rows. In particular. the calling application process must wait for a reply. or if response time is critical. QAS utilizes the PeopleSoft Integration Broker framework to satisfy requests. The amount of time that it takes to reply to the request depends on several factors. 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. then you may want to consider other modes of query execution. When designing an application that will invoke QAS service operations. The full result of the query will be included in the reply. All rights reserved.g.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. not thousands of rows). 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. QAS provides several web service operations. then synchronous query execution may be an appropriate query execution mode.PeopleTools Performance Guidelines White Paper 9/10/2010 Chapter 13 . If you expect query complexity to be high and/or you expect that large result sets will be commonplace.. it is important to consider performance. 51 .

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

Sync/Poll: PSBRKHND instance count needs to be increased as response block count increases.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: Optimal Request Block Size in KB in the range from 100000 to 1000000. 53 . © Copyright Oracle. Client SocketTimeout=600000 ms or Max limit approved for the query response time. All rights reserved.

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.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.50 GUI features. Copy edited and inserted numerous queries. All rights reserved. Minor changes for browser performance and 8. Updated formatting.50 Query Access Service (QAS) Added 8. Added 8. 54 .51 GA date although no content was changed.1 Performance RedPaper. Modified file name.50 content for GUI features. version 8) 2010-06-22 2010-06-21 11/19/07 07/01/2002 © Copyright Oracle.4 (inherited from 8. Created document for PeopleTools 8.

and added Linux to the section 06/06/2007 Updated document with 8.   Web Server Guidelines – Updated service pack information for WebLogicUpdated BEA link. Kernel Configurations – Modified file descriptor limit for HP-UXAdded proc parameters for Tru64  01/02/2004 Revised:    Application Server Guidelines – Increased Recycle Count value. dynamic recycling and application server JVM options Added information on jolt session pooling.Rearranged and expanded section on Navigation Pages Caching. All rights reserved.Added explanation on PSAPPSRV instance Web Server Guidelines – Updated Execute Thread Count discussion. 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.3 logging level settings to improve performance © Copyright Oracle.Added comment on compression and high-speed link. Added explanation on session timeout. 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.1. added workaround for Linux.49 information:  Added information about Weblogic9. 55 .0.48 information:      Added information about preload cache.PeopleTools Performance Guidelines White Paper 9/10/2010 Date 12/20/2002 Description Revised. Added section on load balancing Additional Guidelines .2 & Websphere 6.

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.