08.01.2013 Views

Oracle's JD Edwards EnterpriseOne 8.11 Tuning Guidelines for - IBM

Oracle's JD Edwards EnterpriseOne 8.11 Tuning Guidelines for - IBM

Oracle's JD Edwards EnterpriseOne 8.11 Tuning Guidelines for - IBM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>IBM</strong> / Oracle International Competency Center<br />

September 2005<br />

Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong><br />

<strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong><br />

eServer pSeries<br />

By Larry Grubbs<br />

pSeries IT Specialist<br />

<strong>IBM</strong> / Oracle International Competency Center<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 2<br />

Table of contents<br />

1 2 Table Introduction of contents<br />

1 2 Highlights Test environment <strong>for</strong> establishing<br />

3 Subheads recommendations<br />

4 3 Bulleted <strong>JD</strong> <strong>Edwards</strong> copy <strong>EnterpriseOne</strong> opti-<br />

5 Graphics mization <strong>for</strong> and POWER4 illustrations or<br />

5 Trademark<br />

POWER5 s and special special<br />

4 WebSphere characters application server<br />

6 5 Quotations<br />

HTTP server<br />

7 6 Charts <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS<br />

8 Legal server copy<br />

7 Oracle database settings<br />

Introduction<br />

The reduced total cost of ownership and an increasingly internet<br />

sophisticated enterprise user base has driven the demand of the <strong>JD</strong><br />

<strong>Edwards</strong> <strong>EnterpriseOne</strong> HTML solution. This increased demand in<br />

turn calls <strong>for</strong> a tuning guide that will optimize the per<strong>for</strong>mance of such<br />

a system. For the best per<strong>for</strong>mance of the HTML client, parameters in<br />

the WebSphere® Application Server, the HTTP Server, and the <strong>JD</strong><br />

<strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS and enterprise servers need to be tuned<br />

along with the Oracle database itself. Many of these configurable<br />

parameters are based on the number of users.<br />

Consider these parameter guidelines as a starting point. Your environment<br />

will be different from our lab and your results may vary. For<br />

example, if you run a different mix of batch jobs (UBEs), or have other<br />

applications running on your system, additional iterations may be<br />

required to optimize the per<strong>for</strong>mance of your implementation. Keep in<br />

mind that there are steady improvements and fixes in the <strong>IBM</strong>®<br />

eServer pSeries® software and <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> code so,<br />

over time, the guidelines established by our ongoing testing will<br />

continue to improve as well.<br />

For each configurable parameter, we have included:<br />

• an explanation<br />

• where practical, the actual settings <strong>for</strong> 350 users (175 users<br />

running distribution applications, 87 users running<br />

manufacturing applications, and 88 users running financial<br />

applications). These settings should be extrapolated <strong>for</strong><br />

your environment based on your number of users.<br />

• the recommendation summarized in general terms.<br />

Test environment <strong>for</strong> establishing recommendations<br />

We tested with AIX® 5.3 ML02 on the pSeries server with WebSphere<br />

5.0.2 and <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong>. The hardware configuration<br />

that we tested was Physical 3-Tier (P3T), each tier was a separate<br />

LPAR on a single eServer pSeries 570 POWER5 server. The first<br />

LPAR was set up as the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS server with<br />

WebSphere, the second pSeries LPAR was set up as the <strong>JD</strong> <strong>Edwards</strong><br />

<strong>EnterpriseOne</strong> enterprise server, and the last pSeries LPAR was set<br />

up as the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> Database server. All partitions<br />

were initially setup as Dedicated Processor partitions.<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 3<br />

All pSeries servers used in this testing had the level of software installed as shown in the table below.<br />

This combination of software offered the latest fixes available at the time of the testing and is included <strong>for</strong><br />

your reference. Keep in mind that software does change and improve over time, and we generally<br />

recommend that customers stay current on service packs. Check the <strong>JD</strong> <strong>Edwards</strong> Customer Connection<br />

web site <strong>for</strong> latest versions of supported software.<br />

Software <strong>for</strong> test environment Description Service Pack:<br />

AIX 5.3 ML02<br />

Oracle Database 9.2.0.6 Fixpak 6<br />

<strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> 8.94 System<br />

HTTP 1.3.26.2<br />

WebSphere 5.0.2 CF3<br />

Java 1.4.2<br />

Table 1. Test environment update levels<br />

<strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> optimization <strong>for</strong> POWER4 or POWER5<br />

The <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> Optimization Flags section of the jde.ini file was changed. In addition to<br />

the already present –O2 flag which is a direct result of previous <strong>IBM</strong> testing, include the –qarch=pwr5<br />

flag, or –qarch=pw4 <strong>for</strong> POWER4 architecture. This flag optimizes the code <strong>for</strong> the POWER4 or<br />

POWER5 architecture. See below <strong>for</strong> an actual copy of the BSFN Build section of the jde.ini file used.<br />

The OptimizationFlags section has been Bold printed with the new compiler flag additions being underlined.<br />

[BSFN BUILD]<br />

BuildArea=/u01/peoplesoft/b9/packages<br />

OptimizationFlags=-O2 -qarch=pwr5 (OptimizationFlags=-O2 –qarch=pwr4)<br />

DebugFlags=-g -qfullpath -qdbextra -D_DEBUG -D<strong>JD</strong>EDEBUG<br />

InliningFlags=<br />

DefineFlags=-DKERNEL -DPRODUCTION_VERSION -DNATURAL_ALIGNMENT<br />

CompilerFlags=-qalign=natural -qflag=I:I -c<br />

OSReleaseLevel=<br />

LinkFlags=-bI:/u01/peoplesoft/b9/system/bin32/funclist.imp -bM:SRE -bexpall -brtl -lc -lm -bnoentry -L. -<br />

L/u01/<br />

peoplesoft/b9/system/lib -ljdelib -lcallobj -lerror -lgentext -ljdb -ljde_erk -ljdecache -ljdeddapi -ljdeknet -<br />

ljderepl -ljdeschr -ljdesec -ljdespec -ljdetam -llanguage -lmisc -lpackage -lport -lqueueknl -lruntime -lsrc -l<br />

transmon -lube -lworkflow -ljdesaw -ljdenet -lowver -ljdeunicode -lv_verify -bloadmap:loadmap<br />

LinkLibraries=v_verify.so<br />

SimultaneousBuilds=5<br />

This change should be followed by a package build and redeployment of this package. After the package<br />

deployment the change should net up to a 3% decrease of the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> CPU.<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 4<br />

WebSphere application server<br />

Most of these settings are changed by starting the WebSphere Administrative Console using a Web<br />

browser.<br />

WebSphere Application Server instances (or JVMs)<br />

HTML Clients use a web browser running Internet Explorer 6.0 which connects through the HTTP Server<br />

running on the pSeries server to pass requests to WebSphere running <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS<br />

servlets and JSPs. We followed the JAS installation instructions <strong>for</strong> creating the JAS server instance<br />

(referred to as a JVM because each instance runs in its own Java Virtual Machine). We found that each<br />

JVM provided the best per<strong>for</strong>mance if it supported up to 350 users. Running 350 or fewer users per JVM<br />

reduces the memory contention within WebSphere and there<strong>for</strong>e reduces the response time <strong>for</strong> the HTML<br />

clients. If you have more than 350 users, you will need to create additional instances to provide <strong>for</strong> the<br />

additional users, as needed.<br />

350 user example: we created one JVM to accommodate our 350 users.<br />

Recommendation: Follow the JAS installation instructions and create one or more instances to run the<br />

JAS code <strong>for</strong> up to 350 users running in each instance.<br />

Heap size memory settings<br />

You can control how much of the pSeries server’s total memory is available <strong>for</strong> the JAS server by varying<br />

the heap size. The way you vary the heap size <strong>for</strong> each instance is via the command line arguments<br />

within each JVM. WebSphere allows <strong>for</strong> an initial heap setting and a maximum heap setting. We found<br />

that WebSphere on the pSeries server per<strong>for</strong>med best when both the initial and maximum heap size<br />

settings were the same.<br />

In our test, we used both 768 MB and 1024MB heap size. We found using anything higher than 1024 MB<br />

will cause excess garbage collection times, thus affecting overall response times. A 1024 MB heap size<br />

seams to be ideal <strong>for</strong> most situations. However, 768 MB would work when a shortage of physical<br />

memory is present. Note that the response times may suffer due to smaller heap size. You can review<br />

your heap size by using the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong>’s “web” saw.<br />

350 user example: we set the JVM’s command line parameters to include –Xms1024m <strong>for</strong> initial and –<br />

Xmx1024m <strong>for</strong> maximum.<br />

Recommendation: <strong>for</strong> the heap size in each JVM, on the command line, set an initial heap of 1024 MB<br />

memory per user and a maximum heap of 1024 MB.<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 5<br />

JAS servlet connections<br />

Within the instance, we configured the servlet running the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS code to control<br />

how many concurrent servlet request that a JVM can accept. Because we allow 350 maxclients in the<br />

HTTP Server, we set the maximum number of connections <strong>for</strong> the servlet to be 350. The maximum<br />

should be equal to or less than the number of HTTP Server child process. This setting should not exceed<br />

350 per instance because each user uses a thread and we only want to allow 350 threads per instance.<br />

Because more of a user’s time is spent on data input than running the servlet, changing this setting did<br />

not significantly affect per<strong>for</strong>mance.<br />

350 user example: we set the maximum number of connections <strong>for</strong> the servlet to 350.<br />

Recommendation: set the number of <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> servlet connections to equal the<br />

number of users connecting to the WebSphere instance, with a maximum of 350.<br />

HTTP server<br />

All of the tuning in this section <strong>for</strong> the HTTP Server involves changing the HTTP configuration file. The<br />

following shows how to access the HTTP configuration file using VI Editor. On the pSeries server<br />

command line, type in and hit Enter:<br />

cd /usr/HTTPServer/conf<br />

and then open the “httpd.conf” file with the vi editor:<br />

vi httpd.conf<br />

At this point you now have the “httpd.conf” file open and ready to edit. When finished with the httpd.conf<br />

file type the following to save your changes:<br />

:wq<br />

If you wish to exit without saving your changes type:<br />

:q!<br />

Server-Pool size regulation<br />

Rather than making you guess how many server processes you need, Apache dynamically adapts to the<br />

load it sees. That is, it tries to maintain enough server processes to handle the current load, plus a few<br />

spare servers to handle transient load spikes (e.g., multiple simultaneous request from a single Internet<br />

Explorer browser). It does this by periodically checking how many servers are waiting <strong>for</strong> a request. If<br />

there are fewer than MinSpareServers, it creates a new spare. If there are more than MaxSpareServers,<br />

some of the spares die off.<br />

350 user example:<br />

MinSpareServers 5<br />

MaxSpareServers 50<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 6<br />

Recommendation: The default settings shown above should be sufficient <strong>for</strong> 350 users.<br />

MaxClients<br />

The MaxClients HTTP server parameter limits the total number of servers running, i.e., limits the number<br />

of clients who can simultaneously connect. If this limit is ever reached, clients will be locked out, so it<br />

should not be set too low. It is intended mainly as a brake to keep a runaway server from taking AIX with<br />

it as it spirals down.<br />

350 user example:<br />

MaxClients 500<br />

Recommendation: Set this number equal to the total number of HTML clients connecting to the system.<br />

You must then stop and restart your HTTP Server <strong>for</strong> this change to take effect.<br />

<strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS server<br />

All of the tuning in this section <strong>for</strong> the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS Server involves changing either the<br />

jdbj.ini or the jdelog.properties file. The following shows how to access the jdbj.ini file using VI Editor,<br />

access the jdelog.properties the same way. Keep in mind that each JVM you create will have an associated<br />

jdbj.ini & jdelog.properties file, thus all of them will need to be changed if one is changed.<br />

On the pSeries server command line, type in and hit Enter:<br />

cd<br />

/usr/WebSphere/AppServer/installedApps/”nodename”/EA_JS_”portname”_”nodename”.ear/webc<br />

lient.war/WEB-INF/jdbj.ini<br />

and then open the “jdbj.ini” file with the vi editor:<br />

vi jdbj.ini<br />

At this point you now have the “jdbj.ini” file open and ready to edit. When you are finished editing the file<br />

and wish to close and save the file type:<br />

:wq<br />

To edit the jdelog.properties file, just replace jdbj.ini with jdelog.properties in the above instructions as<br />

they are both located in the same directory.<br />

<strong>JD</strong>BC Connection pool settings in the jdbj.ini<br />

<strong>JD</strong>BC is the database interface used between the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> JAS code running on<br />

WebSphere and the database enterprise server. We ran with various numbers of initial, minimum,<br />

maximum, and pool growth settings. These settings affect the number of QZDASOINIT and/or QSQSRVR<br />

jobs that get used. Connection pooling allows HTML clients to use fewer of these jobs than fat and TSE<br />

clients because they can be reused. While running with 350 users, we found that, having a base amount<br />

<strong>for</strong> minimum number connections and small growth rate up to a maximum equal to the number of users,<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 7<br />

delivered the best per<strong>for</strong>mance. Initial connections can be set to one <strong>for</strong> every 10 users.<br />

350 user example:<br />

[<strong>JD</strong>Bj-CONNECTION POOL]<br />

MaxConnection=350<br />

MinConnection=5<br />

PoolGrowth=5<br />

InitialConnection=30 (350 users/10 connections per user=30)<br />

Recommendation: if the <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> userids are all mapped to a single pSeries server<br />

system user profile (proxy userid), set initial connections to 1 <strong>for</strong> every 10 users, minimum connections to<br />

5, pool growth to 5, and maximum connections equal to the number of users, up to a maximum of 400 per<br />

instance.<br />

Turn off Debug in jdelog.properties<br />

<strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> uses log4j <strong>for</strong> logging in <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> Web Runtime and<br />

JAS. The logging is controlled by a configuration file called jdelog.properties. Currently the setting in this<br />

file has enabled debug level logging at the root level. Since the component level settings in this file are<br />

not enabled, no logging occurs but the logging modules are called frequently. This has the potential to<br />

severely impact per<strong>for</strong>mance of the web solution.<br />

Fix/Workaround: If logging is disabled <strong>for</strong> the web components, change following settings in the<br />

jdelog.properties file to improve the per<strong>for</strong>mance.<br />

Possible Settings:<br />

jdelog.rootLogger=DEBUG,<strong>JD</strong>ELOG,JASLOG<br />

New Settings:<br />

jdelog.rootLogger=ERROR,<strong>JD</strong>ELOG,JASLOG<br />

Oracle database settings<br />

<strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> running on Oracle requires a few tuning parameters to run efficiently.<br />

The first of these tuning parameters is Oracle DB Processes. By default Oracle runs 150 processes total.<br />

In a <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> environment this ration of Oracle DB processes/user should be in<br />

the range of 10/12 processes per user. So <strong>for</strong> 150 Oracle DB processes you could run approximately 15<br />

<strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> users effectively with the default settings. Ideally you would take the number<br />

of intended active users to be run concurrently and divide this number by 10 to determine the appropriate<br />

number of Oracle DB processes to run.<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 8<br />

It should be changed in the following way:<br />

Logon to SQL Server, usually ‘sqlserver “/ as sysdba” will do the trick. Once logged in to determine the<br />

current level of set processes type:<br />

show parameter process – this will show the current setting.<br />

To change the parameter to the correct value type:<br />

alter system set processes=xxxx scope=spfile;<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


Oracle’s <strong>JD</strong> <strong>Edwards</strong> <strong>EnterpriseOne</strong> <strong>8.11</strong> <strong>Tuning</strong> <strong>Guidelines</strong> <strong>for</strong> the <strong>IBM</strong> eServer pSeries<br />

Page 9<br />

Contact in<strong>for</strong>mation<br />

Larry Grubbs<br />

pSeries Specialist<br />

<strong>IBM</strong> / Oracle International Competency Center<br />

lwgrubbs@us.ibm.com<br />

303-334-8765<br />

Boyd Fenton<br />

Manager<br />

<strong>IBM</strong> / Oracle International Competency Center<br />

bafento@us.ibm.com<br />

303-334-2524<br />

For more in<strong>for</strong>mation<br />

For additional in<strong>for</strong>mation on integrated, collaborative enterprise solutions from <strong>IBM</strong> and Oracle, call<br />

1 888 426-5505 or visit ibm.com/solutions/businesssolutions/oracle<br />

®<br />

© Copyright 2005, <strong>IBM</strong> Corporation


©Copyright <strong>IBM</strong> Corporation 2005<br />

<strong>IBM</strong> Corporation<br />

Integrated Marketing Communications<br />

Server Group<br />

Route 100<br />

Somers, NY 10589<br />

U.S.A.<br />

ibm.com<br />

Visit www.ibm.com/pc/safecomputing periodically <strong>for</strong> the latest in<strong>for</strong>mation on safe and effective computing. Warranty In<strong>for</strong>mation: For a copy of<br />

applicable product warranties, write to: Warranty In<strong>for</strong>mation, P.O. Box 12195, RTP, NC 27709, Attn: Dept. <strong>JD</strong>JA/B203. <strong>IBM</strong> makes no representation<br />

or warranty regarding third-party products or services including those designated as ServerProven or ClusterProven.<br />

This publication was developed <strong>for</strong> products and services offered in the United States. <strong>IBM</strong> may not offer the products, services or features discussed<br />

in this document in other countries. In<strong>for</strong>mation is subject to change without notice. Consult your local <strong>IBM</strong> representative <strong>for</strong> in<strong>for</strong>mation on offerings<br />

available in your area.<br />

The examples given in this paper are hypothetical examples of how a customer can use the products described herein and examples of potential cost<br />

or efficiency savings are not based on any actual case study. There is no guarantee of comparable results. Many factors determine the sizing<br />

requirements and per<strong>for</strong>mance of a systems architecture. <strong>IBM</strong> assumes no liability <strong>for</strong> the methodology used <strong>for</strong> determining the configurations<br />

recommended in this document nor <strong>for</strong> the results it provides. Any per<strong>for</strong>mance data contained in this presentation was determined in a controlled<br />

environment. There<strong>for</strong>e, the results obtained in other operating environments may vary significantly. Some measurements quoted in this presentation<br />

may have been made on development-level systems. There is no guarantee these measurements will be the same on generally-available systems.<br />

Some measurements quoted in this presentation may have been estimated through extrapolation. Actual results may vary. Users of this presentation<br />

should verify the applicable data <strong>for</strong> their specific environment.<br />

In<strong>for</strong>mation in this presentation concerning non-<strong>IBM</strong> products was obtained from the suppliers of these products, published announcement material or<br />

other publicly available sources. <strong>IBM</strong> has not tested these products and cannot confirm the accuracy of per<strong>for</strong>mance, compatibility or any other claims<br />

related to non-<strong>IBM</strong> products. Questions on the capabilities of non-<strong>IBM</strong> products should be addressed to the suppliers of those products.<br />

<strong>IBM</strong>, the <strong>IBM</strong> logo, the e-business logo, AIX, eServer, POWER4, POWER5, pSeries, and WebSphere are trademarks or registered trademarks of <strong>IBM</strong><br />

Corporation in theUnited States, other countries, or both.<br />

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.<br />

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.<br />

Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are<br />

trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.<br />

UNIX is a registered trademark of The Open Group in the United States and other countries.<br />

Linux is a trademark of Linus Torvalds in the United States, other countries, or both.<br />

Oracle, <strong>JD</strong> <strong>Edwards</strong>, and PeopleSoft are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their<br />

respective owners.<br />

Other company, product, or service names may be trademarks or service marks of others.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!