Tuesday, May 22, 2007
Merging patches
I started with the e-Business Suite patches, you also have to patch all other environments that work with the EBS. Every part of the EBS environment has to be patched. Oracle recommends that patches are applied in the following order :
1. Oracle database (opatch)
2. Oracle Application server
3. Oracle e-Business Suite
This means, I had to patch the database (9.2.0.8), the http server, forms and the 8.0.6 home.
After these patches I also had to apply 20 EBS patches. The EBS CPU patches are not cumulative, so you also have to apply earlier CPU patches.
Because of this, I had to apply 20 patches for the EBS 11.5.9 release. I decided to use the admerge tool to merge the patches into one big patch. Admerge merges all patches from one directory into one patch. The tool knows in which order to apply the patches. Using admerge will save time. Just be sure to know if any patch has any post-install steps...
Before merging, be sure to place all patches to be merged into one directory...for example the 'patches' directory. Also create a target directory for the merged patch..'merged'.
admrgpch patches merged
Executing the merge of the patch drivers
-- Processing patch: patches/3578012
-- Done processing patch: patches/3578012
-- Processing patch: patches/3578012_NL
-- Done processing patch: patches/3578012_NL
-- Processing patch: patches/3748835
-- Done processing patch: patches/3748835
-- Processing patch: patches/4278155
-- Done processing patch: patches/4278155
-- Processing patch: patches/4278155_NL
-- Done processing patch: patches/4278155_NL
-- Processing patch: patches/5479643
-- Done processing patch: patches/5479643
-- Processing patch: patches/5479643_NL
-- Done processing patch: patches/5479643_NL
-- Processing patch: patches/5571208
-- Done processing patch: patches/5571208
-- Processing patch: patches/5571208_NL
-- Done processing patch: patches/5571208_NL
-- Processing patch: patches/5571211
-- Done processing patch: patches/5571211
-- Processing patch: patches/5571211_NL
-- Done processing patch: patches/5571211_NL
-- Processing patch: patches/5658489
-- Done processing patch: patches/5658489
-- Processing patch: patches/5661617
-- Done processing patch: patches/5661617
-- Processing patch: patches/5711474
-- Done processing patch: patches/5711474
-- Processing patch: patches/5711474_NL
-- Done processing patch: patches/5711474_NL
Copying files...
5% complete. Copied 4 files of 70...
10% complete. Copied 7 files of 70...
15% complete. Copied 11 files of 70...
20% complete. Copied 14 files of 70...
25% complete. Copied 18 files of 70...
30% complete. Copied 21 files of 70...
35% complete. Copied 25 files of 70...
40% complete. Copied 28 files of 70...
45% complete. Copied 32 files of 70...
50% complete. Copied 35 files of 70...
55% complete. Copied 39 files of 70...
60% complete. Copied 42 files of 70...
65% complete. Copied 46 files of 70...
70% complete. Copied 49 files of 70...
75% complete. Copied 53 files of 70...
80% complete. Copied 56 files of 70...
85% complete. Copied 60 files of 70...
90% complete. Copied 63 files of 70...
95% complete. Copied 67 files of 70...
100% complete. Copied 70 files of 70...
Character-set converting files...
15 unified drivers merged.
Patch merge completed successfully
Please check the log file at ./admrgpch.log.
So, this way I have to only apply one patch...the u_merged.drv
Tuesday, May 15, 2007
Oracle 10g OCA exam scheduled
So I checked the Prometric site, and scheduled the 1z0-042 exam for July 10. This is the Oracle 10g Database: Administration I exam (OCA) and can be used for the Oracle EBS Dba OCP path...
I don't have that much time left to study, so no time to waste...study !!!!!
Friday, May 11, 2007
Autoconfig templates ?
But how do you know which templates are customized ?
I ran into the following script in the $AD_TOP/bin directory.... adtmplreport.sh
Use the following syntax
./adtmplreport.sh contextfile=
And you get a report with all the templates used by autoconfig, the target directory and if there is a custom version of the template. Very nice script...
So for example the adovars.env file and its custom version...
TEMPLATE FILE : /opt/software/applmgr/EBS/appl/ad/11.5.0/admin/template/adovars_ux.env
TARGET FILE : /opt/software/applmgr/EBS/appl/admin/adovars.env
TEMPLATE FILE : /opt/software/applmgr/EBS/appl/ad/11.5.0/admin/template/APPLSYS_ux.env
CUSTOM TEMPLATE : /opt/software/applmgr/EBS/appl/ad/11.5.0/admin/template/custom/APPLSYS_ux.env
TARGET FILE : /opt/software/applmgr/EBS/appl/EBS_ebs-p01.env
Wednesday, May 09, 2007
EBS Dba Exam results
Monday, May 07, 2007
Diagnostics using Oracle Application Manager
My plan was to use OAM to run the diagnostics. And recently the diagnostics patch was applied on the production database, so what could go wrong.
But when starting a diagnostics script or opening a lov, a ' page cannot be displayed ' error was shown. Because the http 500 error is not very useful to us, I started to search for errors in the Apache log files. In the access.log I found the following error :
10.73.100.59 - - [04/May/2007:12:22:02 +0200] "GET /OA_HTML/jtfqaerror.jsp?JTFQAERR=You%20do%20not%20have%20sufficient%20privileges%20to%20perform%20this%20function. HTTP/1.1" 500 540
It is a little bit hard to see, but the error tells me I am not allowed to view the diagnostics page ?
So it seems a setup problem ? Metalink brought me the solution.
Login EBS as system administrator
Select the "Menu" item under this responsibility
Search for "FND_NAVIGATE4.0" menu, which is the root menu of the System Administrator responsibility.
In this menu add a submenu called "Diagnostics: JSP Pages Menu", save it and make sure the request for adding this submenu gets compiled
But still the diagnostics is not working. This time in the access.log
10.73.100.59 - - [04/May/2007:14:08:09 +0200] "GET /OA_HTML/jtfqaerror.jsp?JTFQA
ERR=User+has+no+responsibilities+valid+for+this+test.+Please+contact+the+system+
administrator+and+request+a+responsibility+belonging+to+the+following+application%28s%29%3A+Cash+Management&JTFQASTACKTRACE
So now I don't have the right responsibility to run a cash management diagnostic script.
Adding the cash management responsibility to my list of responsibility's did the trick.
Now I was able to run the diagnostics they asked me.
Wednesday, May 02, 2007
OCP 10g
Monday, April 23, 2007
Patching Oracle e-Business Suite
The options I mostly work with are :
- hotpatch, I don't want to put the database in maintenance mode every time
- noautoconfig, because of the multi node installation over here don't run autoconfig
But there are many more options to use. Check the following post for more options..
http://appsdbablog.com/blog/patching/
Thursday, April 05, 2007
optimize parameters
When running the query in the dev database, the session seems to hang and no records are returned.
So, first I looked at the explain plan from the query running in the test database. It looked like this..
Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop
SELECT STATEMENT Optimizer Mode=CHOOSE 339 K 103359
NESTED LOOPS 339 K 8 M 103359
TABLE ACCESS BY INDEX ROWID CSI.CSI_T_EXTEND_ATTRIBS 339 K 6 M 103358
INDEX RANGE SCAN CSI.CSI_T_EXTEND_ATTRIBS_N02 339 K 4066
INDEX UNIQUE SCAN CSI.CSI_T_TXN_LINE_DETAILS_U01 1 6
Then I tried running the query in the dev database and the explain plan looked like..
Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop
SELECT STATEMENT Optimizer Mode=CHOOSE 339 K 56396
HASH JOIN 339 K 8 M 56396
TABLE ACCESS BY INDEX ROWID CSI.CSI_T_EXTEND_ATTRIBS 339 K 6 M 7
INDEX RANGE SCAN APPS.XXX_CSI_T_EXTEND_ATTRIBS_N1 339 K 2
TABLE ACCESS FULL CSI.CSI_T_TXN_LINE_DETAILS 11 M 64 M 51170
It seems in the dev database the query is doing a full table scan, instead of indexed scan in the test database. Also in the test database a NESTED LOOP is used, while the dev database uses a HASH JOIN ??
I focussed on the last finding and searched for a reason why the query should use HASH JOIN instead of a NESTED LOOP.
I found out the following two init.ora parameters were different in the dev database, the optimizer_index_caching parameter and the optimizer_index_cost_adj parameter. So, I tried running the query after I changed my session settings..
SQL> alter session set optimizer_index_caching=x;
SQL> alter session set optimizer_index_cost_adj=x;
And this time the query returned the desired rows ! Next step is to edited the init.ora so the whole dev environment can use these settings...
Tuesday, April 03, 2007
Changed Oracle EBS Dba OCP program
At the end of 2006 we were able to participate in the beta program of EBS OCP for dba's. I completed two exams, the Oracle 11i Install Patch and Maintain Applications beta exam and the Oracle 11i System Administration beta exam.
Now Oracle has changed the OCP program and added two new exams to the list. They also deleted two exams, the Oracle 11i System Administration and Implement Oracle Workflow 11i were removed out of the OCP program and they added Applications DBA Fundamentals I and II. Also, when you are already an OCP 9i or 10g, you only have to pass the 1Z0-233 Oracle 11i Install Patch and Maintain Applications exam to become a certified EBS Dba professional.
Also, the results of the beta exams are supposed to be known in April...
See also http://www.oracle.com/global/us/education/certification/appsdba.html
Lost root password
Another colleague of mine showed me some Google results, and we tried to change a unknown root password. This is what we did..
- We restarted the operating system (Suse..) and interrupted the start up so we could use a command line
- we typed in : init=/bin/bash and resumed startup
- on the following command prompt : mount -o remount,rw /
- at this point you can enter passwd and change the root password without knowing the old one !
Tuesday, March 20, 2007
Forum ?
So, if you have any question and you cannot find the answer on the site, post a question on the forum and I will try to answer the question !
http://www.createforum.com/oracleebsdba/
Oracle Applications Manager in R12

Thursday, March 15, 2007
Date and time on virtual machine....
I placed the following lines in a fiel called time.cron
[root@vamisux32 ~]# crontab -l
# ntp update statement - workaround
0-59 * * * * /usr/sbin/ntpdate amisnt10 >>/var/log/ntpdate 2>&1
But on my Oracle Linux virtual machines, the cron job did not run. So, the virtual clock was still running slower than the real clock.
In the logfile of the crontab, the following error was shown
"ntpdate[23109]: the NTP socket is in use, exiting"
So it seems the cronjob cannot connect to the external time server, because the NTP socket is already in use.
I found out that Oracle Linux starts a NTPD process when booted. This NTPD process is blocking my NTP socket....So, I stopped the NTPD process and made sure it would not start up again when booting the virtual machine. Checked the date and time and everything seems oke now. Even the crontab logfile is without errors...
"ntpdate[18258]: step time server 10.252.252.10 offset...."
So, don't run ntpd and ntpdate next to each other...
Wednesday, March 14, 2007
Oracle E-Business Suite R12 with OEM10G

h, my first 11.5.10 configuration didn't work anymore, so I had to rediscover both R12 and 11i again. After rediscovering both environments, I was able to drop the old 11i target. So, now I have both environments in OEM10G. The services to be monitored look a little bit different for R12, because of the 10g iAS...Also OAM is integrated into OEM10G, so you can drill down into the EBS R12. How to configure R12 and 11i with the new Oracle Application plugin is documented in a Getting Started.pdf (can be downloaded from Metalink). So, now I am ready to monitor.... Tuesday, March 06, 2007
Oracle EBS 11i with 10G OEM

Tuesday, February 27, 2007
First patch on Oracle E-Business Suite R12
I could not help feeling a little bit excited, because patching is changed in EBS R12.
The manual steps to be taken before patching are removed from the readme and placed into an xml file. Before patching you are supposed to run a new perl script called $AD_TOP/bin/admsi.pl
This script creates an install_{patch_number}.html.
After performing the steps in the html file, you have to run $AD_TOP/bin/admsi.pl –done (to let the system know you have performed the manual steps….).
The admsi.pl also creates a custom readme which you have to read before patching.
I was a little bit disappointed, because the patch I downloaded is maybe to small. Nothing about admsi.pl in the readme…Tried to run admsi.pl anyway
cd /ebs/patches/5856453/ad/patch/115/manualsteps
[oracle@vamisux34 manualsteps]$ $AD_TOP/bin/admsi.pl
Invoking Oracle Patch Application Assistant….
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.jgoodies.looks.plastic.PlasticLookAndFeel.
at oracle.apps.ad.msi.LaunchUI._useOracleLookAndFeel(LaunchUI.java:69)
at oracle.apps.ad.msi.LaunchUI.
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at sun.awt.HeadlessToolkit.getScreenResolution(HeadlessToolkit.java:189)
at com.jgoodies.looks.LookUtils.isLowResolution(LookUtils.java:436)
at com.jgoodies.looks.LookUtils.
… 3 more
Maybe with X-manager and $DISPLAY set ? No, admsi.pl returns a java exception…
Invoking Oracle Patch Application Assistant….
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1762)
at oracle.apps.ad.msi.LaunchUI.main(LaunchUI.java:107)
Running admsi.pl like this.....
[oracle@vamisux34 manualsteps]$ perl $AD_TOP/bin/admsi.pl -cli
Gathering Information..
Enter the patch_top : /ebs/patches/5856453
Enter the APPS user password:
Logfile for this session is located at admsi.log
Generating installation instructions for patch 5856453..
Updating database....
install_5856453.html generated successfully
install_5856453.txt generated successfully
[oracle@vamisux34 manualsteps]$
The install_5856443.html is the new readme. Because there are no manual actions to perform, the new generated readme is the same as the old one and I can apply the patch using adpatch..
oracle@vamisux34 appl]$ cd /ebs/patches
[oracle@vamisux34 patches]$ ls
5856453 p5856453_R12[1].AD.A_R12_LINUX.zip
[oracle@vamisux34 patches]$ cd 5856453/
[oracle@vamisux34 5856453]$ adpatch options=hotpatch
************* Start of AutoPatch session *************
AutoPatch version: 12.0.0
AutoPatch started at: Tue Feb 27 2007 11:05:47
…..
AutoPatch is complete.
AutoPatch may have written informational messages to the file/appl/apps/apps_st/appl/admin/PROD/log/u5856453.lgi
Errors and warnings are listed in the log file/appl/apps/apps_st/appl/admin/PROD/log/u5856453.log
and in other log files in the same directory.
The patch finished without problems….
Monday, February 26, 2007
OAUG meeting in Amsterdam

Friday, February 23, 2007
Oracle Partner Release 12 Update seminar
After the lunch I went to the Applications Technology meeting. This seminar was also an overview, but still there were some interesting issues. For example, in R12 the Integration Repository is part of the EBS, instead of the static html page it was in EBS 11i (http://irep.oracle.com/index.html). And now that it's part of the EBS, when a patch updates a api, the irep is also updated !!! The irep, by the way, is used for integration with the Oracle EBS. It shows us how you can integrate with the EBS. Making irep a part of the EBS R12 is also a part of the Oracle Fusion development.
Friday, February 16, 2007
Oracle Applications Manager in Oracle EBS R12
Wednesday, February 14, 2007
Guest password in Oracle EBS
What the current password is, is shown by the following sql
SQL> select profile_option_value from fnd_profile_option_values
2 where profile_option_id = 3805;
To see if the login password for user GUEST is the default password...
select fnd_web_sec.validate_login('GUEST','ORACLE)
from dual;
Because autoconfig was no option at that time, I suggested to change the profile back to it's default by using the SAVE function from the FND_PROFILE package.
DECLARE
stat boolean;
BEGIN
dbms_output.disable;
dbms_output.enable(100000);
stat := FND_PROFILE.SAVE('GUEST_USER_PWD', 'GUEST/ORACLE', 'SITE');
IF stat
THEN
dbms_output.put_line( 'Stat = TRUE - profile updated' );
ELSE
dbms_output.put_line( 'Stat = FALSE - profile NOT updated' );
END IF;
commit;
END;
After running this function the password was set to ORACLE. The GUEST user password is also mentioned in the dbc file and in the xml file. If all the entry's are the same, everything should work fine.
Well, at Sunday we lost contact. But last Monday I received an email saying the problem was solved. I asked what solved the problem in the end, but I did not receive an answer yet.


