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 |
|
2.40 |
- |
2.40 |
1.80 |
Passed |
|
|
0.32 |
- |
0.32 |
0.24 |
Passed |
|
|
0.26 |
- |
0.26 |
0.19 |
Passed |
|
|
0.24 |
- |
0.24 |
0.18 |
Passed |
|
|
0.25 |
0.56 |
0.81 |
0.61 |
Passed |
|
|
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.
|
|||||||
|
|
|
||||||
|
|
|
||||||
|
Context Variable : s_xmlsvcs_nprocs |
|
||||||
|
|
||||||
|
The context variable is found in the following templates under FND_TOP |
|||||||
|
|||||||
|
The context variable is found in the following templates under AD_TOP |
|||||||
|
|||||||
|
|
|||||||
|
|
|||||||
|
Context Variable : s_fnd_jdbc_stmt_cache_size |
|
||||||
|
|
||||||
|
The context variable is found in the following templates under FND_TOP |
|||||||
|
|||||||
|
The context variable is found in the following templates under AD_TOP |
|||||||
|
|||||||
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!


0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment