The Triora Group

Oracle E-Business Suite and the Oracle Database

The Triora Group header image 2

Force Coagulation, Caution Focal Ogre and Inaccurate Fool Go

July 30th, 2008 by Lon White · No Comments

What am I talking about? I love playing with anagrams. Each of the anagrams above describes the topic we are going to talk about. Can you decipher it before reading on? The answer is given at the end of this article…

How about some cool Autoconfig stuff for this month’s article? Last week I upgraded an Oracle Release 11i payroll system that called for the application of the latest Autoconfig patch. This patch, 6372396, was released just last month, so hopefully I may be getting this information to some of you before you have had a chance to read it for yourselves. Before I explain some of the new features included with this latest patch, I should probably mention that you can look some of this information up for yourself using Metalink Doc. ID: 165195.1. This note is the master document for helping you understand more about Autoconfig, as well as providing steps on running Autoconfig on both the application tier and the database tier. This note is also quite helpful, since it provides the specific syntax for generating the new appsutil directory from the application tier and getting it configured on the database side. But, I digress…

I’m assuming that most of you reading this article have a good understanding of what Autoconfig is and its use as the context management system for the E-Business Suite. Briefly speaking, though, Oracle uses Autoconfig to manage the configurations needed for the E-Business Suite. These values are stored in two local repositories, one for the application and one for the database. These repositories are often referred to as the context directories and take the form of <sid>_<host>. You should recognize this label format, as it is the same format as the context file itself, <sid>_<host>.xml, which is a key file used for storing context variables. The notion of “context” is Oracle’s way of grouping information about a singular instance. Release 12 follows this contextual notion and goes even further to group information relevant to a specific instance by developing their $INST_TOP methodology. When you apply a patch or make configuration changes, Autoconfig is the tool that propagates those values. So, as you can see, Autoconfig is something you really want to know if you’re going to be an Apps DBA. But, as I said earlier, this is all stuff that most of you probably already know. Keep reading though – it’s going to get good.

Working on this upgrade required me to install the latest Autoconfig patch, 6372396. While reading through the associated Metalink note, I hit the appendix where some new features were introduced. Oracle now provides a method to “profile” our Autoconfig runs. This is interesting, as I have been at clients whose Autoconfig runs take only 10 - 15 minutes, and I have also seen runs take upwards of 90 minutes. So, what’s in it for me? What is profiling? Why do I care? In the past we have had to resort to watching the wall clock, or some kind of clock, to get timing information. Sure, we can also look at timestamps of the start and finish as well, but the important notion here is that the timing information is generally not straight forward and for the most part is relevant only to the entire run of Autoconfig. Now we have the option to pass a “profile” flag for our Autoconfig session that results in a nice HTML report that shows every script that has been run, as well as the time it took to run that particular step. Even more helpful, the report has a column for the status of that section, so we can see specifically where the session failed and what script it was on when it did so. The example below is a section of this report:

As you can see, the profile report shows us the step Autoconfig ran along with the instantiation time, execution time and then the combined total time. Oracle has also included a column that helps all of us evaluate this profile, as Cary Millsap would want us to… Millsap has long professed that we should first look at the performance impactor with the greatest time contributed to the overall elapsed time. For example, looking at the output above, cutting the running time by 50% for “ecx” would only save you half a second. While cutting the “ad/fnd” process by 50% would save you 66.5 seconds. Therefore, Millsap would say that we should be looking at the “ad/fnd” process first.

As you can see, there is also a column that shows the status for the process. Again, this overall information has been available when traversing the log file but here it is plain and simple, and easy to see specific problems. Furthermore, the following excerpt is a section of what you would see if you clicked on the “ad/fnd” link in the report:

Product : ad/fnd

Script Name

Instantiation Time (sec)

Execution Time (sec)

Total Time (sec)

Time (%)

Status

adconfig.txt

2.40

-

2.40

1.80

Passed

instantiate file: 
   source : /oa41/apps/oracle/oaptchappl/ad/11.5.0/admin/template/adconfig.txt
   dest   : /oa41/apps/oracle/oaptchappl/admin/adconfig.txt
   backup : /oa41/apps/oracle/oaptchappl/admin/adconfig.txt to /oa41/apps/oracle/oaptchappl/admin/oaptch_hpux3/out/07282234/adconfig.txt
 

close

adalldefaults.txt

0.32

-

0.32

0.24

Passed

instantiate file: 
   source : /oa41/apps/oracle/oaptchappl/ad/11.5.0/admin/template/adalldefaults.txt
   dest   : /oa41/apps/oracle/oaptchappl/admin/oaptch/adalldefaults.txt
   backup : /oa41/apps/oracle/oaptchappl/admin/oaptch/adalldefaults.txt to /oa41/apps/oracle/oaptchappl/admin/oaptch_hpux3/out/07282234/adalldefaults.
txt
 

close

runform.htm

0.26

-

0.26

0.19

Passed

instantiate file: 
   source : /oa41/apps/oracle/oaptchappl/ad/11.5.0/admin/template/runform.htm
   dest   : /oa41/apps/oracle/oaptchora/8.0.6_10222/tools/web60/html/runform.htm
   backup : /oa41/apps/oracle/oaptchora/8.0.6_10222/tools/web60/html/runform.htm to /oa41/apps/oracle/oaptchappl/admin/oaptch_hpux3/out/07282234/runfo
rm.htm
 

close

runrep.htm

0.24

-

0.24

0.18

Passed

instantiate file: 
   source : /oa41/apps/oracle/oaptchappl/ad/11.5.0/admin/template/runrep.htm
   dest   : /oa41/apps/oracle/oaptchora/8.0.6_10222/tools/web60/html/runrep.htm
   backup : /oa41/apps/oracle/oaptchora/8.0.6_10222/tools/web60/html/runrep.htm to /oa41/apps/oracle/oaptchappl/admin/oaptch_hpux3/out/07282234/runrep
.htm
 

close

adadmat.pl

0.25

0.56

0.81

0.61

Passed

instantiate file: 
   source : /oa41/apps/oracle/oaptchappl/ad/11.5.0/admin/template/adadmat.pl
   dest   : /oa41/apps/oracle/oaptchcomn/admin/install/oaptch_hpux3/adadmat.pl
   backup : /oa41/apps/oracle/oaptchcomn/admin/install/oaptch_hpux3/adadmat.pl to /oa41/apps/oracle/oaptchappl/admin/oaptch_hpux3/out/07282234/adadmat
.pl
 
script execution command:
 
/oa41/apps/oracle/oaptchora/iAS_10222/Apache/perl/bin/perl -I /oa41/apps/oracle/oaptchora/iAS_10222/Apache/perl/lib/5.00503 -I /oa41/apps/oracle/oaptc
hora/iAS_10222/Apache/perl/lib/site_perl/5.005 -I /oa41/apps/oracle/oaptchappl/au/11.5.0/perl /oa41/apps/oracle/oaptchcomn/admin/install/oaptch_hpux3/
adadmat.pl -nopromptmsg
 
script returned:
****************************************************
##########################################################################
             Validating information in AD_APPL_TOPS table........
##########################################################################
 
SQL*Plus: Release 8.0.6.0.0 - Production on Mon Jul 28 22:37:58 2008
 
(c) Copyright 1999 Oracle Corporation.  All rights reserved.
 
Enter value for 1: Enter value for 2: Enter value for 3: Enter value for 4: Enter value for 5: Enter value for 6: Enter value for 7: Enter value for 8
: Enter value for 9: Enter value for 10: Enter value for 11: Connected.
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Current data
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
APPL_TOP Names in AD_APPL_TOPS:
 
 
*PRESEEDED*
GLOBAL
hpux3
mr
 
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Updating tables...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
PL/SQL procedure successfully completed.
 
 
PL/SQL procedure successfully completed.
 
 
Register a node ...
 
 
PL/SQL procedure successfully completed.
 
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Updated data
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
APPL_TOP Names in AD_APPL_TOPS:
 
 
*PRESEEDED*
GLOBAL
hpux3
mr
 
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Done
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
Commit complete.
 
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production
ERRORCODE = 0 ERRORCODE_END
.end std out.
 
.end err out.
****************************************************
 

close

adunzip.pl

0.24

0.44

0.68

0.51

Passed

Clearly these new features provide us geeks with excellent information as we look to deconstruct Autoconfig for a more thorough understanding of how things work.

And, if that new feature wasn’t cool enough, Oracle has also delivered a “context search” capability that is very helpful. I really like looking through the context file (remember the <sid>_<host>.xml file?) at client sites, as it provides a wealth of information. This new feature isn’t as handy as strolling through the context file, but it is definitely more pointed and more robust. Below is an excerpt from the html output of the context information report:

Technology Stack (TXK) Context Variable Information.

Entered Keyword :

JVM

Context Variables Matched:

s_xmlsvcs_nprocs, s_fnd_jdbc_stmt_cache_size, s_oacore_nprocs, s_disco_nprocs, s_forms_servlet_nprocs, s_mwaJVMb, s_jvm_options, s_jvm_startup, s_appsjreopts, s_adjvaprg, s_afjvaprg, s_apjserv_vmtimeout, s_sessionCheck_frequency, s_fnd_cache_port_range, s_long_running_jvm, s_xmlparser_soap, s_disco_jvm_options, s_forms_jvm_options

Context Variable : s_xmlsvcs_nprocs

Description

Specifies the number of JVM processes to serve the XmlSvcsGrp group. A group is a set of processes across which request traffic is distributed. This configuration parameter is used with the directive ‘ApJservGroup’. Syntax: ApJServGroup <groupname> <nprocs> <weight> <profile>. For more details, please refer Oracle to MetaLink Note 202664.1.

Current Value

1

Default Value

1

The context variable is found in the following templates under FND_TOP

Template

Configuration

jserv_nt_ias1022.conf

ApJServGroup XmlSvcsGrp %s_xmlsvcs_nprocs% %s_xmlsvcs_node_weight% %s_iASconfig _home%/Apache/Jserv/etc/xmlsvcs.properties

jserv_ux_ias1022.conf

ApJServGroup XmlSvcsGrp %s_xmlsvcs_nprocs% %s_xmlsvcs_node_weight% %s_iASconfig _home%/Apache/Jserv/etc/xmlsvcs.properties

The context variable is found in the following templates under AD_TOP

Template

Configuration

Context Variable : s_fnd_jdbc_stmt_cache_size

Description

Sets the parameter fnd_jdbc_stmt_cache_size in the DBC file. FND_JDBC_STMT_CACHE_SIZE controls how many parsed SQL statements are retained in the JDBC cache. Statements stored in the JDBC cache will not require a reparse operation and therefore are highly optimized. The parameter should not be increased to an extreme value because maintaining this cache takes up memory in the JVM. The recommended value is between 200 and 400.

Current Value

200

Default Value

0

The context variable is found in the following templates under FND_TOP

Template

Configuration

The context variable is found in the following templates under AD_TOP

Template

Configuration

adgendbc_nt.cmd

( echo %APPS_UNAME%/%APPS_PWD%%ADMIN_ALIAS% ) | %s_jretop%\bin\%JCMD% -clas spath %dbcclasspath% oracle.apps.fnd.security.AdminAppServer ADD FNDNAM=%APPS_UN AME% GWYUID=%s_gwyuid_user%/%s_gwyuid_pass% %DBC_CONNECT_ID% TWO_TASK=%s_tools_t wotask% GUEST_USER_PWD=%s_guest_user%/%s_guest_pass% SECURE_PATH=%s_fnd_secure% APPS_JDBC_DRIVER_TYPE=THIN DB_PORT=%s_dbport% DB_HOST=%s_dbhost%.%s_dbdomain% NO DE_NAME=%s_hostname% FND_MAX_JDBC_CONNECTIONS=%s_fnd_max_jdbc_connections% FND_J DBC_STMT_CACHE_SIZE=%s_fnd_jdbc_stmt_cache_size% -nopromptmsg

adgendbc_ux.sh

{ echo $USERNAME/$PASSWORD$ADMIN_ALIAS; } | %s_adjvaprg% -classpath “%s_ad ovar_classpath%” oracle.apps.fnd.security.AdminAppServer ADD FNDNAM=$USERNAME GW YUID=%s_gwyuid_user%/%s_gwyuid_pass% “$DBC_CONNECT_ID” TWO_TASK=%s_tools_twotas k% GUEST_USER_PWD=%s_guest_user%/%s_guest_pass% SECURE_PATH=%s_fnd_secure% APPS _JDBC_DRIVER_TYPE=THIN DB_PORT=%s_dbport% DB_HOST=%s_dbhost%.%s_dbdomain% NODE_N AME=$HOST_NAME FND_MAX_JDBC_CONNECTIONS=%s_fnd_max_jdbc_connections% FND_JDBC_ST MT_CACHE_SIZE=%s_fnd_jdbc_stmt_cache_size% -nopromptmsg

The search string I used here was “JVM” as noted in the very first row labeled “Entered Keyword”. There was much more information returned than this small excerpt, but you can see where this could really be handy. I really like that in addition to the values matching the search criteria being returned, we can also see in what files they exist. Even better, for some, is the inclusion of the current value of the variable as well as the default value. I know, I know… we can get the same thing using the Unix find command paired with greps and awks, or perhaps you’re a wizard with Perl. On second thought, you would have to do some additional work to get the default value as a comparison… No matter, if you still want to get your information using those techniques, that is awesome. In fact, if you have some good command lines, pass them on; I’m always looking for good code to make my job easier… In the end, Oracle has provided some useful new options that I am really looking forward to playing with. I’ll let you know if I find anything interesting as I stress them.

The syntax used for these two examples were:

perl $AD_TOP/bin/adconfig.pl contextfile=$CONTEXT_FILE –profile

The above command gets you the profile output we talked about first. Appendix E, titled AutoConfig Performance Profiler, in the Metalink note, provides additional information you’ll want to read. The following code gets you the context search information:

$FND_TOP/bin/txkrun.pl -script=GenCtxinfRep -keyword=”JVM”

There are some additional flags to this command, which can be found in Appendix F of Metalink Doc. ID: 165195.1, Context Variable Information Utility.

And now for the answer, if you haven’t deciphered it yet… The anagrams above were derived from the phrase: Oracle Autoconfig.

If you enjoyed this post, make sure you subscribe to my RSS feed!

Tags: DBA · Database · E-Business Suite · Release 11i

0 responses so far ↓

  • There are no comments yet...Kick things off by filling out the form below.

Leave a Comment