Tuesday, June 30, 2009

How to check if a certain Patch was applied to Oracle Applications instance using 'adpatch'?


Method 1
Check Patches applied from Oracle Applications Manager (OAM).
a) Connect to OAM:
http://hostname.domain:PORT/servlets/weboam/oam/oamLogin
Go to Site Map-->Maintenance-->Applied Patches
Enter Patch ID and press 'Go'
See if Patch was returned

Method 2
You might also use the following query, however methods 1 and 2 are more reliable.


SQL> SELECT DISTINCT RPAD(a.bug_number,11) RPAD(e.patch_name,11) RPAD(TRUNC(c.end_date),12) RPAD(b.applied_flag, 4) BUG_APPLIED FROM ad_bugs a,ad_patch_run_bugs b,ad_patch_runs c,ad_patch_drivers d ,ad_applied_patches e WHERE a.bug_id = b.bug_id AND b.patch_run_id = c.patch_run_id AND c.patch_driver_id = d.patch_driver_id AND d.applied_patch_id = e.applied_patch_id AND a.bug_number in ('','');ORDER BY 1 DESC;

Monday, June 29, 2009

How can one set a profile option value without accessing the applications?

How can one set a profile option value without accessing the applications?

To set a profile option without accessing the applications, you need to use the SAVE function from FND_PROFILE package. It is NOT supported to update in the tables directly using the "update" statement.
As a test case, below is the detailed procedure of changing the "Guest User Password" profile option value to be profile option value to be GUEST/ORACLE.
This function takes the internal name of the profile option, while the name that appears in the Applications is the user friendly name, thus the internal name should be obtained first.


1. Obtain the internal name of the profile option using the following select statement as APPS:

SQL> select profile_option_name from fnd_profile_options_tl where user_profile_option_name like '';
e.g. For the "Guest User Password" profile option that has the internal name GUEST_USER_PWD

SQL> select profile_option_name from fnd_profile_options_tl where user_profile_option_name like 'Guest%';
PROFILE_OPTION_NAME--------------------GUEST_USER_PWD

Note that the user profile option name is case sensitive.
2. Use the following sample code to set the profile option to the required value:
===========Sample Code===========


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;
===============End of Sample Code===============

For a description of the SAVE function parameters, use the specification below:

Function SAVE( X_NAME in varchar2, /* Profile name you are setting */ X_VALUE in varchar2, /* Profile value you are setting */ X_LEVEL_NAME in varchar2, /* Level that you're setting at: 'SITE','APPL','RESP','USER', etc. */ X_LEVEL_VALUE in varchar2 default NULL, /* Level value that you are setting at, e.g. user id for 'USER' level. X_LEVEL_VALUE is not used at site level. */ X_LEVEL_VALUE_APP_ID in varchar2 default NULL, /* Used for 'RESP' and 'SERVRESP' level; Resp Application_Id. */ X_LEVEL_VALUE2 in varchar2 default NULL /* 2nd Level value that you are setting at. This is for the 'SERVRESP' hierarchy. */ ) return boolean;

How to find the versions of the following TechStack Components

How to find the versions of the following TechStack Components

Oracle9i Application Server Release 1 Enterprise Edition
Oracle HTTP Server Patch
Oracle Developer 6i Patchset
Oracle Portal
Oracle Login Server
Oracle Discoverer
Oracle Java Server Pages (OJSP)

The following are the steps to find out the versions of the Techstack Components for Oracle Applications :
1. Oracle Developer 6i Patchset
Login to E-Business Suite and choose a forms based responsibility - then do Help-About Oracle Applications.This will show the E-Business Suite Release and the Oracle Developer 6i Patchset level.


2. Application Server version and patchset level (9iAS)
General Configuration Questions

--------------------------------
What versions of Oracle HTTP Server and Apache were shipped with Oracle E-Business Suite Release 11i?


To verify which version of Oracle HTTP Server (Apache) which has been installed, issue the following command:

$APACHE_TOP/Apache/bin/httpd* -version
For a comprehensive summary of all Oracle HTTP Server and Apache versionsdelivered with all Oracle products, Everything YouWanted to Know About The Apache-Based OHS Version.

3. Oracle Portal
begin

execute immediate 'select fnd_oracle_schema.getouvalue(''PORTAL'') from
dual' into portal_user;
begin
execute immediate 'select user_name from fnd_user where user_name like
upper('''portal_user''')'
into portal_user_name;
if portal_user is not null then
execute immediate 'select version from 'portal_user'.wwc_version$'
into portal_ver;check_message := ' [PASS] Your Applications database containsPortal version: 'portal_ver;
dbms_output.put_line(check_message);
end if;
exception
when no_data_found then
null;
end;
exception
when others then
null ;
end;

4. Oracle Login Server
begin
execute immediate 'select fnd_oracle_schema.getouvalue(''LOGINSERVER'') from
dual' into sso_user;
begin
execute immediate 'select user_name from fnd_user where user_name like
upper('''sso_user''')' into
sso_user_name;
if sso_user is not null then
execute immediate 'select version from 'sso_user'.wwc_version$' into
sso_ver;
check_message := ' [PASS] Your Applications database contains Login
Server version: 'sso_ver;
dbms_output.put_line(check_message);
end if;
exception
when no_data_found then
null;
end;
exception
when others then
null ;end;

5. Oracle Discoverer
Again, from the same note -Get the value of %s_disco_ver_comma%Check the applications context file for the variable %s_disco_ver_comma%.


6. Oracle JSP version
Log on to your HTTP Server node, and change to the OA_HTML directory. Using a text editor, create a file called test.jsp with only the following line: <%= application.getAttribute("oracle.jsp.versionNumber") %>


Access this JSP from a web browser, using the URL: http://[your web server]:[your port]/OA_HTML/test.jsp

Friday, June 26, 2009

Enable tracing in Jinitiator for troubleshooting webform applications


For support individuals who would like to obtain additional information when theapplication is running - For e.g. to know the files being loaded when the web form application uses images.

Enabling Tracing in Jinitiator

Method 1
Open the Jinitiator Control Panel. On Windows select Start - Settings - Control Panel - Jinitiator 1.3.1.x. Enter the following in the "java Run Time parameters" textfield:-Djavaplugin.trace=true-Djavaplugin.trace.option=basicnetsecurityextliveconnect.Tracing set through the Control Panel will take effect when the Plug-in is launched, but changes made through the Control Panel while a Plug-in is running will have no effect until restart.You can see the trace information in the jinitiator console or in the fileC:\Documents and Settings\\jinitiator131x.trace

Method 2
This method assumes you are running a web forms application and the Java Consoleis active. Press an appropriate number using your alphanumeric keypad (0-5). This enables tracing on the fly.The trace level options (0-5) are increasingly verbose with the various levels corresponding to the following:0 - off1 - basic2 - network and basic3 - security, network and basic4 - extension, security, network and basic5 - LiveConnect, extension, security, network and basic

How to submit a concurrent program using the CONCSUB utility from the operating system.

You can submit a concurrent request to run any concurrent program by running the CONCSUB program with the following syntax::

CONCSUB / \ \ \ \ [WAIT=NY] \ CONCURRENT \ \ \ [PROGRAM_NAME=””] \ [REPEAT_TIME=] \ [REPEAT_INTERVAL= ] \ [REPEAT_INTERVAL_UNIT=<>] \ [REPEAT_INTERVAL_TYPE=<>] \ [REPEAT_END=] \ [START=] \ [IMPLICIT=<> \ [ ... ]

For parameters that follow the CONCURRENT parameter and include spaces, enclose the parameter argument in double quotes, then again in single quotes. Oracle Application Object Library requires this syntax because it parses the argument string twice. For example, to pass this argument to a program:

This is an example pass this argument through CONCSUB: ’”
This is an example”’

Example:
Here is an example of the command to run CONCSUB: $ CONCSUB APPS/APPS \ SYSADMIN \ ”System Administrator” \ SYSADMIN \ WAIT=N \ CONCURRENT \ FND \ FNDFMRTC \ PROGRAM_NAME=’”Register Custom Tables Weekly”’ \ REPEAT_INTERVAL=7 \ REPEAT_INTERVAL_UNIT=”DAYS” \ REPEAT_INTERVAL_TYPE=”START” \ START=’”08–JUN–96 23:55:00”’ CGL APPLSYS ALL CGL

Please note that the above example uses the UNIX line continuation character '\', not all operating systems support the use of this character. If the line continuation character is not supported then the CONCSUB command should be submitted as one continuous line...


Example
$ CONCSUB APPS/APPS SYSADMIN ”System Administrator” SYSADMIN WAIT=N CONCURRENT FND FNDFMRTC PROGRAM_NAME=’”Register Custom Tables Weekly”’

REPEAT_INTERVAL=7 REPEAT_INTERVAL_UNIT=”DAYS” REPEAT_INTERVAL_TYPE=”START” START=’”08–JUN–96 23:55:00”’ CGL APPLSYS ALL CGL

The following entries explain the required and optional parameters for submitting a concurrent program with CONCSUB. Default values are listed to the right.
Required. The ORACLE username and password that provides access to the data that your program uses.
Required. The application short name of the responsibility whose concurrent processing options you want to use. Required. The name of your responsibility. If the name of your responsibility includes spaces, enclose that name in double quotes.
Required. The uppercase username of the application user whose concurrent processing options you want to use.
Optional. A flag that indicates whether to wait for the submitted request to complete. If you leave this parameter out, the default value of N makes CONCSUB return you to the operating system prompt without waiting for your request to complete. Set WAIT=Y to have CONCSUB check the request status every 60 seconds and return you to the operating system prompt when your request is completed. You can also enter an integer value for a number of seconds, as in WAIT=30, for CONCSUB to check for request completion every seconds.
Attention: Using WAIT=Y or WAIT= requires that your request completes before CONCSUB returns you to the operating system. If the concurrent manager is down, your CONCSUB process waits indefinitely until the concurrent manager is started and the request completes.
Required. A flag that separates the program–specific parameters from the operating system parameters. Required. The application short name of your concurrent program. Required. The uppercase name of your program. It must be the short name that you enter in the Concurrent Programs window when defining a concurrent program.
Optional. A descriptive name for your program. The program field on the View Requests form displays this as the user–friendly program name. The concurrent program short name passed to CONCSUB is often hard for end users to understand, so the PROGRAM_NAME parameter allows you to pass a more easily remembered name for your concurrent program. If you do not specify a PROGRAM_NAME, the View Requests form displays the user–friendly program name specified in the Concurrent Programs window. You may also use the PROGRAM_NAME parameter to indicate the batch that your request processes for programs that process a set of data, where there could be several requests for a given program that are active at the same time.
Optional. The time of day to resubmit the request. The format for the time is HH24:MI or HH24:MI:SS. For example, REPEAT_TIME=14:30 resubmits your request daily at 2:30 p.m. Attention: Do not use REPEAT_TIME with other resubmission parameters except for the optional parameters REPEAT_END and START.
Optional. The interval between resubmission (a positive integer or real number). Use this parameter along with REPEAT_INTERVAL_UNIT to specify the time between resubmissions.
Optional. The unit of time used for the interval between resubmissions. The available units are MINUTES, HOURS, DAYS or MONTHS. Use this parameter along with REPEAT_INTERVAL to specify the time between resubmissions. For example, setting REPEAT_INTERVAL=12 and REPEAT_INTERVAL_UNIT=HOURS resubmits your request every twelve hours. The default value is DAYS. Attention: Do not use REPEAT_INTERVAL and REPEAT_INTERVAL_UNIT with REPEAT_TIME. Optional. Whether to time the resubmission interval from the requested start time of the request or from its completion. Set this parameter either toSTART or END. The default value is START. Attention: Use REPEAT_INTERVAL_TYPE only if you use REPEAT_INTERVAL.
Optional. The date and time to stop resubmitting the concurrent request. Use one of the following for the format of the end date: ’”DD–MON–RR HH24:MI:SS”’ (as in ’”07–APR–02 18:32:05”’) or ’”DD–MON–RRRR HH24:MI:SS”’ (as in ’”07–APR–2002 18:32:05”’) Note that because this date format includes a space, you must enclose the date in double quotation marks and single quotation marks. You can also specify just the date: ’DD–MON–RR’ or ’DD–MON–RRRR’
Optional. A start date and time for your program in this format: ’”DD–MON–RR HH24:MI:SS”’ (as in ’”07–APR–02 18:32:05”’) Because this date format includes a space, you must enclose the date in double quotation marks and single quotation marks. If you do not specify a start time, your program submits immediately and is processed by the next available concurrent manager. The default value is the current time.
Optional. Whether to show this concurrent request on the View Requests form. Specify NO, YES, ERROR or WARNING. The value IMPLICIT=NO allows the request to appear on the View Request form. The default value is NO. The value IMPLICIT=YES means that only the System Administrator’s privileged View Concurrent Requests form displays this request. Use this value if the request is not interesting to the user. Specify IMPLICIT=ERROR or IMPLICIT=WARNING, respectively, if you want the request to appear only if it fails or completes with warnings.
Optional. The number of days after which to repeat the concurrent request, calculated from the last requested start date. The number can be a positive integer or real number.
For example, REPEAT_DAYS=1.5 resubmits your request every 36 hours. Attention: Do not use REPEAT_DAYS with other resubmission parameters except for the optional parameters REPEAT_END and START. Suggestion: REPEAT_DAYS will become obsolete in a future release. You may therefore want to use REPEAT_INTERVAL, REPEAT_INTERVAL_TYPE and REPEAT_INTERVAL_UNIT instead of REPEAT_DAYS.
... Optional. Your program–specific parameters. If a parameter includes spaces, enclose that parameter in double quotes, then in single quotes. If a parameter contains a double quotation mark as part of the argument, precede that mark with a backslash [\].

How to add or remove the "About This Page" link on E-Business Suite Framework pages?

This document describes:-

1. How to remove the 'About this page' link from OA Framework based Self Service pages

2. How to add the 'About this page' link to OA Framework based Self Service pages

Solution

1. How to remove the 'About this page' link
In order to hide the 'About this Page' link, BOTH of the following system Profile options need to be set to a value of "No"
"FND: Diagnostics" (Short name : FND_DIAGNOSTICS) and "Personalize Self-Service Defn" (Short name : FND_CUSTOM_OA_DEFINTION)
Once these profile options have been changed, users will need to logout and re-login for the change to take effect
If after making the above changes the pages still show the 'About this Page' link, then you can take these steps to confirm the issue:-


a. Check the profile options are not set to "Yes" at any level
The profile options can be set at different levels, so need to be sure the profile option values have been changed at all levels that may effect the users

Run this script two times, once for each of the following profile values FND%Diagnostics Personalize


b. Restart Apache
If all profile options are set correctly, then restarting Apache will ensure the profile options are not cached in Apache's Java Cache


2. How to add the 'About this page' link
To enable the 'About this Page' link on OA Framework pages, you should set EITHER or BOTH of the following system Profile options to a value of "Yes"
For this purpose of enabling the 'About this page' link' it does not matter which profile option you enable, but be sure you are aware of the additional effects of the profile option you decide to enable. Review the Profile Option documentation listed in the references section below if you need explanations of these effects
You can set these profile options at different levels to effect all or some users as appropriate for your requirement
"FND: Diagnostics" (Short name : FND_DIAGNOSTICS) and/or"Personalize Self-Service Defn" (Short name : FND_CUSTOM_OA_DEFINTION)
Once these profile options have been changed, users will need to logout and re-login for the change to take effect
If after making the above changes the pages still do not show the 'About this Page' link, then you can take the same steps described above to investigate the issue

How to Merge Patches Using admrgpch

You can merge multiple patches into a single patch by using AD Merge Patch.
This AD utility is an executable located in AD_TOP/bin that merges multiple
AutoPatch compatible patches into a single, integrated patch. Once the merge is
complete, you use AutoPatch to apply the resulting patch in a single operation.
Using a merged patch reduces the time it takes to complete the patching process.
The command for merging patches is admrgpch.


AD Merge Patch reads the c.drv, d.drv, and g.drv

for each patch in the source directory and merges them to create a single set
of driver files (for example, cmerge99.drv, dmerge99.drv, and gmerge99.drv) in
the destination directory. It also merges the set of files contained in the
individual patches under the source directory according to file revision and
copies them to the destination directory. If a file exists in more than one
source patch, only the highest revision of the file is copied to the
destination directory.


Complete these steps:

1. Review the readme files carefully.
Some patch readme files contain special instructions for applying merged
patches. The patch may also require manual steps.


2. Create directories.
In the patch top area, create a source directory and a destination directory.
Choose any name for these directories.


3. Unzip patches.
Copy all the patches to be merged into the source directory and unzip them.


4. Run AD Merge Patch.
Run AD Merge Patch and supply the arguments for the destination directory
name and the source directory name. You also need to specify the merged patch
name, or accept the default.


5. Check AD Merge Patch log files.
After AD Merge Patch runs, check the admrgpch.log file for errors. The file
is located in the current working directory (where AD Merge Patch was run).


6. Run the merged patch.

Once a merged patch is created, apply it just like a single patch.
AD Merge Patch cannot merge patches of different releases, different parallel
modes, or different platforms. However, it can merge patches for a specific
platform with a generic patch, or patches with different source character sets.
AD Merge Patch notifies you if you try to merge incompatible patches.

How to Append Time to access_log file

To append the timestamp to the access_log file to identify the time a new access_log
file is created is done by adding timestamp information to the CustomLog directive.
1. Edit the httpd.conf
2. Locate the CustomLog directive
3. Add the timestamp parameters. For example:


Windows:
CustomLog "D:\oracle\portal\Apache\Apache\bin\rotatelogslogs/access_log.%Y_%m_%d_%H_%M_%S 86400" common

Unix:
CustomLog " /home/oracle/portal/Apache/Apache/bin/rotatelogs/home/oracle/portal/Apache/Apache/logs/access_log.%Y_%m_%d_%H_%M_%S 86400" common

Where:
%Y = year
%m = month
%d = day
%H = hour
%M = minute
%S = second
86400 = rotation time in seconds, every 24 hours
4. Save the file
5. Save changes to the DCM repository

dcmctl updateconfig
6. Stop and restart HTTP Server

opmnctl stopproc ias-component=HTTP_Server
opmnctl startproc ias-component=HTTP_Server

This will create an access_log file with date and time in GMT appended to it at a duration ofevery 24 hours.

Can the hostname and IP address for the database tier be changed?

For the database, you need to look at the tnsnames.ora, listener.ora and sqlnet.ora files, and make changes as needed (IP, Hostname, etc.). DBConsole uses a WEB URL that also includes either the hostname or IP address. Other than that, nothing else is be needed for the database. As with any change like this, it is recommended you make a good back up and then test it on another server before putting it into production.

Steps to Clean Nonexistent Nodes or IP Addresses from FND_NODES

After completing the ADCLONE process, or implementing Autoconfig,
the FND system tables have incorrect values.


If a clone was done, the OAM Dashboard reflects the target machine name and the
source machine name although the source machine is no longer being used.


In some cases, there are IP addresses from nonexistent machines in FND_NODES.
The Nodes in the OAM Dashboard are retrieved from the FND_NODES table. Further
investigation showed that the FND_NODES table had both node names and node_modes
'O' as activated.
ie:


SQL> select node_name "Node Name", node_mode "Mode", support_cp "C",
support_web "W", support_admin "A", support_forms "F"
from FND_NODES;


NODE_NAME N S S S S
------------------------------ - - - - -
TARGET O Y Y Y Y
SOURCE O Y Y Y Y



NOTE:
=====
Do not directly Delete from FND_NODES table because the
'support_' columns will be affected and will not
incorporate the correct information througout in OAM.


The data cleanup issues with cloning that surface in the OAM UI have been fixed in the latest
cloning patches.


1) Retrieve the latest patch for the cloning tools.
(Currently TXK AUTOCONFIG ROLLUP PATCH Q (JUL/AUG 2007) 5985992)

2) After applying the above patch to the system that is to
be cleaned, run the following in SQL*Plus:
SQL> EXEC FND_CONC_CLONE.SETUP_CLEAN;
COMMIT;
EXIT;


3) Run AutoConfig on all tiers, firstly on the DB tier and then the APPS tiers,
to repopulate the required system tables.
Note that step two will delete all data from system tables
such as FND_NODES, FND_OAM_CONTEXT_FILES, etc. The correct
information for the current system will be repopulated when
AutoConfig is run.

Can The Apps Tier & The Db Tier Be On Different Subnets?

In a multi node environment, can the Database Tier be on a different subnet to the Application Tier?
ie Application Tier = 192.168.1.92 & Database Tier = 192.168.2.92

What if the Application Tier node have 2 network cards?
So The 1st card is used for communication with end users and 2nd is used for communication with Database node.

Yes, it is possible to implement the such configuration, having the Database Tier connected on the 2nd network cards.
The subnets are to do with IP addresses, we are only concerned if we can find each other's host name.It is ok for tiers to be in different domains, although that would suggest they were physically separated by some distance which Oracle does not encourage, so subnets are not a problem, so long as the host names are resolvable by all tiers Locating different tiers in physically distant locations is not encouraged, due to the performance problems, customer should make sure that the network latency between tiers is as low as possible.
Spanning across subnets or domains will only increase this latency and therefore affect performance.

Wednesday, June 24, 2009

How To Purge Obsolete Workflow Runtime Data For Applications

Purging Oracle Workflow tables of obsolete workflow runtime information for completed workflow processes is a required regular maintenance task। The recommended way to perform this task is to run the Concurrent Request "Purge Obsolete Workflow Runtime Data." The steps to do this are described below.

Solution:
Submit the Concurrent Request "Purge Obsolete Workflow Runtime Data" with the following settings:
1. Item Type: The item type associates with the obsolete runtime data you want to delete. Leave this parameter null to delete obsolete data for all item types.

2. Item Key: This is a string generated from the application object's primary key. The string uniquely identifies the item within an item type. Leave this parameter null to purge all items for the specified item type.

3. Age: This is the minimum age of data to purge specified in days if Persistence Type is set to 'Temporary'. The default is set to 0 (zero).

4. Persistence Type: Persistence type to be purged, either 'Temporary' or 'Permanent'. Temporary: the Item will be deleted in 'n' days.Permanent: the Item will be deleted only when forced.The default is 'Temporary'.Notes:
a. Workflow Purge will only remove the data if:
i) the item type definition has been defined as temporary or its persistence days have expired.
ii) the activities are complete or the notification is closed and have reached their given end date.
b. All should have an end date.

HOW TO UNINSTALL A PRODUCT THAT IS NOT BEING USED?

How to de-install / make inactive certain applications?
Certain modules (e.g. PO, AP, GL, PER) are marked as installed or shared in License Manager or the output of $AD_TOP/sql/adutconf.sql. How can this status be changed so the modules are no longer installed in anyway.
SolutionThere is no supported way of achieving this. Once an application is installed, or shared installed, this is a permanentstate.Oracle Applications products are tightly integrated and share common code and data model in order to provide a seamless and consistent look-and-feel. If a product has been implemented, setup data, configuration data, transaction data, and patches may all rely upon specific choices that have been made previously and changing the license status will potentially create data corruption. This is not a simple matter of updating a flag in a table.Imagine a legal system where decisions are made based upon precedent. You cannot revise history and change the precedent without adversely impacting all decisions related to the precedent.
Even if the customer has no longer purchased a license to use the product, because the product is fully licensed, all the pre- and post-upgrade steps for that product must be followed and all the files needed by the product will continue to be generated. However there may be a feature in This option is not available in R11 and R12.

What is the parameter names for parameters in the context file for Workflow?

What is the parameter names parameters in the context file for Workflow?
For example:
Outbound EMail Account (SMTP) Server Name.
Inbound EMail Account (IMAP) Server Name,
Username,
Reply-To Address?

Parameters for the seeded Workflow Notification Mailer appear in AutoConfig as well as in the notification mailer configuration wizard.When you specify values for these parameters through the notification mailer configuration wizard, your AutoConfig context file is synchronized with those values as well.Likewise, if you specify values for these parameters through AutoConfig, the Workflow Notification Mailer configuration will be synchronized with those values as well. The following parameters appear in AutoConfig:
* SMTP Server
* IMAP Server
* Inbox Username
* Reply To E-mail Address
* HTML Agent Name ex. http:///pls/

Alternatively, you can check the context file and here are the names of the parameters:
* s_javamailer_imap_user - Oracle Workflow Java Mailer IMAP User Name
* s_javamailer_reply_to - Oracle Workflow Java Mailer IMAP ReplyTo Address
* s_javamailer_imaphost - Oracle Workflow Java Mailer IMAP Host
* s_javamailer_imapdomainname - Oracle Workflow Java Mailer domain
* s_wf_admin_role - Oracle Workflow Admin Role * s_smtphost - SMTP Server Host
* s_smtpdomainname - Email Server Domain

What is The URL When Apache Restricted Mode Is Enabled on Release 12 ?

After the restriced mode is set, what is the url to access OAM as user ad_monitor

Access to OAM
For system administrators, a user named ad_monitor is available to access OAM during the restricted mode. Login from this user provides access to the maintenance wizards and status pages in the Oracle Applications Manager.

Solution:
The url to access OAM during restrict mode on Release 12 is:
http://Hostname:port/OA_HTML/weboamLocal/oamLogin

Can You Delete $ORACLE_HOME/.patch_storage Directory

Is it necessary to keep the $ORACLE_HOME/.patch_storage directory after successful installation of a patch?

Yes, It is necessary to keep the $ORACLE_HOME/.patch_storage directory even after successful installation of a patch.

1) When you apply an interim patch to an Oracle home, OPatch stores the patch information in $ORACLE_HOME/.patch_storage directory. Inside this directory, there are separate directories created for each patch applied to the Oracle home. Interim patches are bug fixes that are made available to customers in response to specific bugs. CPU (Critical Patch Update) is also a kind of. The latest CPU will rollback the previously applied CPU as CPU is cumulative. So this rollback information is from the .patch_storage directory.

2) You may come across a bug conflict and might want to remove the conflicting patch. This process is known as patch rollback. During patch installation, OPatch saves copies of all the files that were replaced by the new patch before the new versions of these files are loaded and stores it in $ORACLE_HOME/.patch_storage/patch ID/. These saved files are called rollback files and are the key to making patch rollback possible.

3) Every time you apply a patch, you make changes to your inventory. Sometimes that change may corrupt the inventory. In Oracle RDBMS 10.2.0.X.X (Opatch 10.2.0.X.X) when you apply a patch, OPatch creates a snapshot of your inventory and stores it in $ORACLE_HOME/.patch_storage/ directory. The $ORACLE_HOME/.patch_storage//restore.sh script that comes with OPatch to remove any changes that were made to the inventory after the application of the patch. More over the .patch_storage directory is made hidden also adds to the fact that it should not be deleted.


Script For Checking The Environment Before Opatch Operations

The script, “deopatch.bat” is a precheck for the 10.2.0.X.X opatch.
This script will check the environment settings which are required for executing opatch and also provide some recommendations.
This script can be executed as a precheck before performing any of the inventory operations such as patch apply, patch rollback, lsinventory, etc.
This script can also executed to find the problem if opatch fails with any environment settings and will display detailed information about the reason for failure. According to the reason for failure, recommendations are also displayed.
This script also shows the detailed information about how opatch is checking and setting the environment variables, java etc.
This script will not perform the actual inventory operation which opatch is doing, but will do the check if all the settings are correct for opatch to proceed.
Software Requirements/Prerequisites
This script can be invoked from the command prompt in Windows.
Configuring the Script
The name of the batch file is “deopatch.bat”.
You can download and keep the script in any location.
Running the Script
This script will not perform the actual inventory operation which opatch is doing, but will do the check to see if all the settings are correct for opatch to proceed.
This script can run in the same way as opatch is executed. For example: To apply a patch: The opatch command is : “opatch apply”.

So opatch will first check if :
> All the environment variables are set
> Opatch is able to find the location of “java”
> Also if java.exe exists in the java location.

If opatch is able to find java, the opatch will proceed with the java operations for applying the patch. If opatch is not able to do the same the opatch will error out accordingly.
You can execute the script “deopatch” in the same way if opatch fails with above checks or before executing the opatch.


The command is : “deopatch apply”
“deopatch” will do all the above mentioned checks and will display the result if you can proceed with the opatch apply. If any errors found “deopatch” will give recommendations accordingly for rectifying the error

This script will check the following:

All the environment variables are set
If ORACLE_HOME is set in the environment
If ORACLE_HOME is specified using “-oh”
If java location is specified using “-jdk”
If java location is specified using “-jre”
If java location is found under ORACLE_HOME\jdk
If java location is found under ORACLE_HOME\jre
If java location is found under ORACLE_HOME\jre then the version is greater than or equal to 1.4
If java location is found under ORACLE_HOME\oui\oraparam.ini
If java location is found then does “java.exe” exists in the java location.
Also display the version of java.


Script:

=============================================================
@echo off
cls
echo.
echo SCRIPT : DEOPATCH.BAT
echo PURPOSE : OPATCH ENVIRONMENT CHECK
echo.
echo.
echo DISCLAIMER
echo ===========
echo:This script will only check the environment variables in the same way how opatch checks
echo the environment variables before any inventory operation.This script also provides some
echo recomendation before precoeding.
echo.
pause
setlocal
echo.
REM ###################################################################
REM # Set the base path
set BASE=%~DP0%
echo deopatch :is invoked from %BASE%
REM ###################################################################
echo.
REM ####################################################################
REM # Get ORACLE_HOME from environment variable "ORACLE_HOME"
set OH=%ORACLE_HOME%
if "%OH%" == "" goto ORAHOMENOTSET
echo ORACLE_HOME :is set as %ORACLE_HOME% in the Environment
goto DEBUGTEST
:ORAHOMENOTSET
echo ORACLE_HOME :is not set in the Environment
REM ####################################################################
echo.
REM ####################################################################
:DEBUGTEST
REM # Check for OPATCH_DEBUG env variable
set DEBUG=%OPATCH_DEBUG%
if "%DEBUG%" == "" goto DEBUGNOTSET
echo OPATCH_DEBUG :is set as %DEBUG% in the Environment
goto PLATFORMTEST
:DEBUGNOTSET
echo OPATCH_DEBUG :is not set in the Environment
REM #####################################################################
echo.
REM #####################################################################
:PLATFORMTEST
REM # Look for OPATCH_PLATFORM_ID
set PLATFORM=%OPATCH_PLATFORM_ID%
if "%PLATFORM%" == "" goto PLATFORMNOTSET
echo OPATCH_PLATFORM_ID:is set as %PLATFORM% in the Environment
goto PATHTEST
:PLATFORMNOTSET
echo OPATCH_PLATFORM_ID:is not set in the Environment
REM #####################################################################
echo.
REM #####################################################################
:PATHTEST
REM # Preserve the PATH environment variable
set PATHENV=%PATH%
echo PATH is set as :
echo %PATHENV%
REM #####################################################################
echo.
REM #####################################################################
REM getOH: If -oh is specified, use it to over-ride env. var. ORACLE_HOME
REM getJRE,getJDK If -jre or -jdk are specified, use it to launch opatch
REM JDK,JRE :f -jre or -jdk are specified, use it to launch opatch
echo INITILAIZING THE REQUIRED VARIABLES
echo -----------------------------------
set getOH=0
echo getOH is set to %getOH%
set getJRE=0
echo getJRE is set to %getJRE%
set getJDK=0
echo getJDK is set to %getJRE%
set JDK=
echo JDK is set as %JDK%
set JRE=
echo JRE is set as %JRE%
REM #######################################################################
echo.
REM #######################################################################
REM Storing all the parameters passed with the opatch
set PARAMS=%*
echo INVOKING OPATCH WITH THE PARAMETERS : "deopatch %PARAMS%"
REM #######################################################################
echo.
REM #######################################################################
if "%1" == "" goto INVALIDOPTION
if "%1" == "apply" goto PROCEED
if "%1" == "lsinventory" goto PROCEED
if "%1" == "rollback" goto PROCEED
goto INVALIDOPTION
REM #######################################################################
:PROCEED
REM ######################################################################
echo BEGINING THE FOR LOOP
echo ---------------------
:FORLOOP
if "%1" == "" goto DONELOOP
echo.
echo ITRATION STARTED
echo : The parameter is : "%1"
:CHECK1
if NOT "%getOH%" == "1" goto CHECK2
set OH=%1
echo : ORACLE_HOME is specifed as %OH% when invoking Opatch
echo : Setting ORACLE_HOME to %OH%
set getOH=0
:CHECK2
if NOT "%getJRE%" == "1" goto CHECK3
set JRE=%1
echo : JRE location is specifed as -jre %JRE% when invoking Opatch
echo : Setting JRE to %JRE%
set getJRE=0
:CHECK3
if NOT "%getJDK%" == "1" goto CHECK4
set JDK=%1
echo : JDK location is specifed as -jdk %JDK% when invoking Opatch
echo : Setting JDK to %JDK%
set getJDK=0
:CHECK4
if NOT "%1" == "-oh" goto CHECK5
set getOH=1
:CHECK5
if NOT "%1" == "-jre" goto CHECK6
set getJRE=1
:CHECK6
if NOT "%1" == "-jdk" goto FORCHECK
set getJDK=1
:FORCHECK
shift
goto FORLOOP
:DONELOOP
echo.
echo END OF THE FOR LOOP
echo -------------------
REM ########################################################################
echo.
REM ########################################################################
REM # Check for OPATCH_DEBUG env variable
:CHECK7
set DEBUGVAL=false
if NOT "%DEBUG%" == "TRUE" goto CHECK8
set DEBUGVAL=true
:CHECK8
if NOT "%DEBUG%" == "true" goto CHECK9
set DEBUGVAL=true
REM #########################################################################
echo.
REM #########################################################################
:CHECK9
REM # If Oracle Home not set, error out
if NOT "%OH%" == "" goto INVOKEJAVA
echo.
echo DEOPATCH FAILED
echo ===============
echo.
echo REASON
echo ------
echo Oracle Home is not set. OPatch cannot proceed!
echo.
echo SUGGESTION
echo ----------
echo Set the ORACLE_HOME using any of the following and proceed:
echo 1) At the environament level
echo set ORACLE_HOME=[path]
echo eg : set ORACLE_HOME=d:\oracle\product\ora102
echo.
echo 2) Using "-oh" whne invoking opatch
echo opatch apply -oh [path]
echo eg : opatch apply -oh d:\oracle\product\ora102
goto OPATCHDONE
REM #########################################################################
echo.
REM #########################################################################
:INVOKEJAVA
set CP=%OH%\oui\jlib
REM #########################################################################
REM #########################################################################
REM # Use ORACLE_HOME to set Java CLASS_PATH
REM # default location
set JAVA=
REM #########################################################################
echo CHECK FOR JAVA
echo --------------
echo.
REM #########################################################################
echo 1) Checking if java was supplied with "-jdk".
if NOT "%JAVA%" == "" goto CHECKJRE
if "%JDK%" == "" goto CHECKJRE
echo "-jdk" is specifed and the java location is %JDK%
set JAVA=%JDK%\bin\java.exe
goto JAVATEST
REM #########################################################################
echo.
REM #########################################################################
:CHECKJRE
echo "-jdk" is not specifed
echo.
echo 2) Checking if java was supplied with "-jre".
if NOT "%JAVA%" == "" goto CHECKOHJDK
if "%JRE%" == "" goto CHECKOHJDK
echo "-jre" is specifed and the java location is %JRE%
set JAVA=%JRE%\bin\java.exe
goto JAVATEST
REM #########################################################################
echo.
REM #########################################################################
:CHECKOHJDK
echo "-jre" is not specifed
echo.
echo 3) Checking if java is present in ORACLE_HOME\jdk.
if NOT "%JAVA%" == "" goto CHECKOHJRE
if NOT EXIST %OH%\jdk\ goto CHECKOHJRE
echo java location found under ORACLE_HOME\jdk\bin
set JAVA=%OH%\jdk\bin\java.exe
if NOT EXIST %JAVA% goto JAVANOTINJDK
goto JAVATEST
:JAVANOTINJDK
echo But java.exe is missing from %OH%\jdk\bin
goto CHECKOHJRE
REM #########################################################################
echo.
REM #########################################################################
:CHECKOHJRE
set JAVA=
echo java is not present in "ORACLE_HOME\jdk\bin"
echo.
echo 4) Checking if java is present in ORACLE_HOME\jre.
if NOT "%JAVA%" == "" goto CHECKORAPARAM
set JRE_HIGH=
for /F "usebackq tokens=1" %%A in (`dir /ON /B %OH%\jre`) do set JRE_HIGH=%%A
if "%JRE_HIGH%" == "" goto CHECKORAPARAM
set JRE_HIGH_FIRST=
set JRE_HIGH_SECOND=
for /F "tokens=1,2 delims=." %%A in ("%JRE_HIGH%") do set JRE_HIGH_FIRST=%%A
for /F "tokens=1,2 delims=." %%A in ("%JRE_HIGH%") do set JRE_HIGH_SECOND=%%B
if "%JRE_HIGH_FIRST%" LSS "1" goto CHECKORAPARAM
if "%JRE_HIGH_SECOND%" LSS "4" goto CHECKORAPARAM
echo java location found:java %JRE_HIGH% is present under %OH%\jre
set JAVA=%OH%\jre\%JRE_HIGH%\bin\java.exe
if NOT EXIST %JAVA% goto JAVANOTINJRE
goto JAVATEST
:JAVANOTINJRE
echo But java.exe is missing from %OH%\jre\%JRE_HIGH%\bin
goto CHECKORAPARAM
REM #########################################################################
echo.
REM #########################################################################
:CHECKORAPARAM
set JAVA=
echo java is not present under "ORACLE_HOME\jre"
echo.
echo 5) Checking if java is present in ORACLE_HOME\oui\oraparam.ini
REM # Last option is to look inside oraparam.ini for JRE_LOCATION
if NOT "%JAVA%" == "" goto JAVATEST
if NOT EXIST %OH%\oui\oraparam.ini goto NOORAPARAMINI
set JRE_LOCATION=
for /F "usebackq tokens=2 delims==" %%A in (`findstr "JRE_LOCATION=" %OH%\oui\oraparam.ini`) do set JRE_LOCATION=%%A
if "%JRE_LOCATION%" == "" goto NOJREORAPARAM
set ABS_PATH=
for /F "eol=\ tokens=1" %%A in ("%JRE_LOCATION%") do set ABS_PATH=%%A
if "%ABS_PATH%" == "" goto JAVAABSPATH
for /F "tokens=1,2 delims=:" %%A in ("%JRE_LOCATION%") do set ABS_PATH=%%B
if NOT "%ABS_PATH%" == "" goto JAVAABSPATH
echo Relative path for java found under "%JRE_LOCATION%"
set JAVA=%OH%\oui\bin\%JRE_LOCATION%\bin\java.exe
goto JAVATEST
REM #########################################################################
:JAVAABSPATH
set JAVA=%JRE_LOCATION%\bin\java.exe
echo Setting absloute path
echo Absolute path for java found under %ABS_PATH%
goto JAVATEST
REM #########################################################################
:NOORAPARAMINI
echo The file "ORACLE_HOME\oui\oraparam.ini" is not present.
goto JAVATEST
REM #########################################################################
REM #########################################################################
:NOJREORAPARAM
echo "JRE_LOCATION" is not in "ORACLE_HOME\oui\oraparam.ini"
goto JAVATEST
REM #########################################################################
echo.
REM #########################################################################
:JAVATEST
if NOT "%JAVA%" == "" goto JAVATEST1
echo.
echo DEOPATCH FAILED
echo ===============
echo.
echo REASON
echo ------
echo Java could not be located. OPatch cannot proceed!
echo OPATCH failed to find java location from
echo -jdk
echo -jre
echo ORACLE_HOME\jdk
echo ORACLE_HOME\jre
echo ORACLE_HOME\oui\oraparam.ini
echo.
echo SUGGESTION
echo ----------
echo provide java location using any of the following and proceed:
echo 1) Use -jdk when invoking opatch
echo opatch apply -jdk [java_location]
echo eg : opatch apply -jdk c:\jdk14
echo.
echo 2) Use -jdk when invoking opatch
echo opatch apply -jre [java_location]
echo eg : opatch apply -jre c:\jre\1.4.2
echo.
echo 3) Check if the java under ORACLE_HOME\jdk is working
echo ORACLE_HOME\jdk\bin\java -version
echo.
echo 3) Check if the java under ORACLE_HOME\jre\version is working
echo ORACLE_HOME\jre\version\bin\java -version
echo eg : ORACLE_HOME\jre\1.4.2\bin\java -version
goto OPATCHDONE
REM #########################################################################
echo.
REM #########################################################################
:JAVATEST1
if EXIST %JAVA% goto OPATCHDONEPERFECT
echo.
echo DEOPATCH FAILED
echo ===============
echo.
echo REASON
echo ------
echo Java could not be located. OPatch cannot proceed!
echo Java location was specified
echo But "java.exe" does not exist at %JAVA%
echo.
echo SUGGESTION
echo ----------
echo provide a proper loction and use using any of the following and proceed:
echo 1) Use -jdk when invoking opatch
echo opatch apply -jdk [java_location]
echo eg : opatch apply -jdk c:\jdk14
echo.
echo 2) Use -jdk when invoking opatch
echo opatch apply -jre [java_location]
echo eg : opatch apply -jre c:\jre\1.4.2
echo.
echo 3) Check if the java under ORACLE_HOME\jdk is working
echo ORACLE_HOME\jdk\bin\java -version
echo.
echo 3) Check if the java under ORACLE_HOME\jre\version is working
echo ORACLE_HOME\jre\version\bin\java -version
echo eg : ORACLE_HOME\jre\1.4.2\bin\java -version
goto OPATCHDONE
REM #########################################################################
REM #########################################################################
:INVALIDOPTION
echo DEOPATCH FAILED
echo ===============
echo Please invoke patch with appropriate option:
echo Usage: deopatch [ command ]
echo.
echo command := apply
echo lsinventory
echo rollback
echo version
goto OPATCHDONE
REM #########################################################################
:OPATCHDONEPERFECT
echo SUMMARY
echo =======
echo.
echo ALL THE ENVIROMNET VARIABLES ARE SET
echo.
echo 1)deopatch Location : %~DP0%
echo 2)deopatch Invoked as : "deopatch %PARAMS%"
echo 3)ORACLE_HOME is : %OH%
echo 4)DEBUG Is set as : %DEBUGVAL%
echo 5)Java Location : %JAVA%
echo 6)Java Version :
echo ________________________________________________________________________
%java% -version
echo ________________________________________________________________________
:OPATCHDONE

=============================================================

What is the Difference Between The AD.I.6 Delta(patch 6502079) and The AD.I.6(6502082), Is This The Same ?

The answer is Yes and No, it is not totally the same, AD.I.6 Delta(patch 6502079) is smaller than AD.I.6(6502082), both are to bring your AD module to AD.I.6 level.
a- AD.I.6(6502082), is to be applied over the older AD.E, AD.F, AD.G or AD.H.x
b- Delta AD.I.6 (patch 6502079) is to apply over the AD.I.x version.

To be very clear, please see the example below :
You are at AD.F, AD.Gor AD.H, apply the AD.I.6(6502082), you will be up to date to the AD.I.6.
If you are already at AD.I.x ( AD.I.1, AD.I.2, 3 ,4, or 5), just need the delta, then apply the AD.I.6 Delta(patch 6502079) to be up to date to The AD.I.6.

Nb: You can safely move from 11i.AD.I.2 to 11i.AD.I.6

How to Send a File to Oracle Support Using FTP (ftp.oracle.com)

Place the file on your local machine.

Open a DOS-prompt window or a shell.

Start ftp:
C:\Temp> ftpftp>


Connect to the oracle ftp server and connect as user anonymous:
ftp> open ftp.oracle.comUser (bigip-ftp.oracle.com:(none)): anonymous


Use as a password a valid email address:

331 Please specify the password.Password:230 Login successful.

Move into the directory "support/incoming":
ftp> pwd

257 "/"
ftp> cd support/incoming
250 Directory successfully changed.

Create a new directory with the name of your service request number:
ftp> mkdir

257 "/support/incoming/" created
ftp> cd
250 Directory successfully changed.

Set the transfer mode to binary:
ftp> bin200 Switching to Binary mode.


Put the files on the ftp server:
ftp> put


Use the command pwd to check the current directory:
ftp> pwd

257 "/support/incoming/"

REMARK: For security reasons the command ls cannot be executed

Exit from ftp site:
ftp> quit


Inform your Support contact that the file has been uploaded in:
ftp://ftp.oracle.com/ftp/anonymous/support/incoming/NEWDIR/filename.ext

Tuesday, June 23, 2009

Oracle Bug Status Codes, Descriptions and Usage

Status Description Usage
10 New, not ready for development Use to file a bug without all the needed information (for instance, trace files from the customer), to inform Development that a bug will soon become Status 11.
11 Assigned to Development Use to indicate that the bug is ready for Development, or to indicate that additional required information has been provided for a Status 30 bug.
12 To External (User Group) Review Use to send an enhancement to Oracle User Group review.
13 Assigned to a Technical Writer Use to request documentation enhancement.
14 Bug Assigned to Solution Partner Use to keep track of bugs which are fixed by third party companies.
15 To Internal (Oracle) Review Use to send an enhancement to Oracle's product managers.
16 Support bug screening Used by BDE to pre-sort well-formed bugs before development start fixing.
19 Approved for User Group Voting Use to include the enhancement to the report for the User Group.
20 To Requestor, Need More Information Use to request more information from the filer.
21 Cost Required, To Development Use to request a product enhancement cost estimate from product managers.
22 Approved for Future Release Use to send an enhancement to product managers for scheduling.
23 Scheduled for Future Release Use to send an enhancement to Development to be included in a release.
30 More Info Required. To Filer Use to request more information from the bug filer.
31 Could Not Reproduce. To Filer Use to notify filer that bug cannot be reproduced
32 Not a Bug. To Filer Use to notify filer that bug was not valid
33 Suspended, Req'd Info not Avail Use to notify filer that the work has been suspended until info is received.
35 To Filer for Review Use to request verification of the bug fix from bug filer.
36 Duplicate Bug. To Filer Use to respong to filer that the bug is a duplicate.
37 To Filer for Review/Merge required Use to request verification of the bug fix from bug filer and to request that integration merge the fix into the base code.
39 Approved, waiting for codeline to open Use to indicate that a backport has been approved and is waiting for codeline to open. When the codeline is opened, status will be changed to 40.
40 Waiting for the base bug fix Use to show that bug is waiting for another bug to be fixed. 43 Product/Platform , to Filer Use to indicate that the bug will not be fixed and that filer should approve by updating the bug to Status
83: Closed, Product/Platform .
44 Not Feasible to fix, to Filer Use to indicate that the bug will not be fixed and that filer should approve by updating the bug to Status
84: Closed, Not Feasible to Fix. (Use only when the product or platform is near the end of its lifecycle or when the fix would require a major re-write).
45 Vendor OS Problem, to Filer Use when an operating system problem is the cause of the bug, to indicate that, following verification, bug filer should update to Status 95.
51 Support approved backport - to Dev Use to approve a backport (GPU=B). This status is reserved for use by Worldwide Support only.
52 Pending approval by PL (Product Line) Use to approve a backport and to indicate that a porter can begin to work on the bug. This status is reserved for use by porting managers.
53 Backport/Patchset Req Rejected Use to notify filer that the request to backport this bug is rejected.
60 CM: Awaiting Promote Configuration Management : Use to indicate that the fix has been developed and is awaiting promotion to the TEST environment.
66 CM: Awaiting Deployment Configuration Management : Use to indicate that the fix has been tested and is awaiting a patch or release.
70 Closed, data fix, cause - user error Applications : Use when the user performed an illegal operation, such as directly updating data using plsql. This includes bad data being populated by custom code. This caused the data to be inconsistent and required that the data be fixed using a data fix script.
71 Closed, data fix, cause - data import Applications : Use when bad data was imported into the system, either via automated batch load, or as the result of data conversion during the installation of the product. This caused the data to be inconsistent and required that the data be fixed using a data fix script.
72 Closed, data fix, cause - code error Applications : Use when bad data was populated into the database due to an error in Oracle supported software. This caused the data to be inconsistent and required that the data be fixed using a data fix script.
73 Closed, data fix, cause - unknown Applications : Use when bad data was found to exist in the customers database, which required that the data be fixed using a data fix script. The root cause was never determined.
74 Closed, Verified by QA Applications : Use to close bugs verified by Quality Assurance team. 80 Development to Q/A Use to indicate that a fix is available, but the code has not passed Quality Assurance. 81 Q/A to Dev/Patch or Workaround Available Use to indicate that a patch or workaround is available, but the code has not passed Quality Assurance.
82 Q/A to Enhancement Evaluation Use to indicate that a product enhancement has been implemented, but the code has not passed Quality Assurance.
83 Closed, Product/Platform Use to close a bug that was not fixed because of product or platform obsolescence.
84 Closed, not feasible to fix Use to close a bug that was not fixed because the fix was not feasible.
87 Fix verified/Merge Required Use to indicate that the fix has been verified, but the code has not passed Quality Assurance, and to request that integration merge the fix into the base code.
89 Q/A to Technical Writing Use to indicate that a documentation bug has been fixed, and is available for technical review.
90 Closed, Verified by Filer Use to close a bug that has been fixed and verified .
91 Closed, Could Not Reproduce Use to close a bug that development could not reproduce.
92 Closed, Not a Bug Use to close a bug that was not a bug.
93 Closed, Not Verified by Filer Use to close a bug that could not be verified by the bug filer. 94 Closed, Duplicate Enhancement Use to close a bug that is a duplicate of another enhancement request.
95 Closed, Vendor OS Problem Use to close a bug that is a vendor operating system problem. 96 Closed, Duplicate Bug Use to close a bug that is a duplicate of another bug.
97 Suggestion Rejected Use to indicate that a suggestion has been rejected.
98 Suggestion Implemented Use to indicate that a suggestion has been implemented.
99 Closed, Documentation Bug Fixed Use to close a documentation bug

Configuring HRMS on 12.0.4

1) Installed Oracle HRMS (Came with 12.0.4 install)
Oracle Application Manager - > Site Map - > License Manager - > Products - > License Applications Product - > Human Resources - > Submit
NotesSteps 1 & 2 done, all the other steps can be ignored.
SELECT V.APPLICATION_NAME app,to_char(V.APPLICATION_ID) appId,L.MEANING appStatus,DECODE(I.PATCH_LEVEL, NULL, '11i.' v.APPLICATION_SHORT_NAME '.?', I.PATCH_LEVEL) patchFROM FND_APPLICATION_ALL_VIEW V, FND_PRODUCT_INSTALLATIONS I, FND_LOOKUPS LWHERE (V.APPLICATION_ID = I.APPLICATION_ID)AND (V.APPLICATION_ID IN('0', '50', '178', '231', '275', '453', '603', '800', '801', '802', '803', '804', '805', '808','809', '810', '8301', '8302', '8303'))AND (L.LOOKUP_TYPE = 'FND_PRODUCT_STATUS')AND (L.LOOKUP_CODE = I.Status )ORDER BY 1;
Note id: 261452.1

2) Run DataInstall,
Run the command line DataInstall java utility in order to select the legislations you want to apply as follows:
java oracle.apps.per.DataInstall thin ::
where
is the username of the main apps account is the password for this account:: represents the database connection information,
Eg:java oracle.apps.per.DataInstall apps apps thin derp:1546:DEV
Note : 145837.1,140511.1

3) When running the data install utility, select those legislations to be installed (even if the flag shows them as 'Installed').20I, 21I (HR and Pay Roll for India)
Note : 462514.1

4) Install hrglobal.drv (deliver patch 6390830) located in $PER_TOP/patch/115/driver/hrglobal.drv,
adpatch options=nocompiledb,nocompilejsp,hotpatch
Note: 1. While applying you might see the below,
This Patch seems to have been applied already.Would you like to continue anyway [N] ?,
You can ignore it and continue
Note id : 145837.1

5) Optional: Ran the "International HRMS Setup" with the parameters,
IN, INR, 2010/04/01 00:00:00, N,
Note: Program will error out and we don’t need to bother about it
Note id : 261452.1

6) Tested the values in the form HRMS Manager> Total Compensation > Basic > Classificationand found them, the same can be checked from pay_element_classifications.
Note id: 261452.1

Monday, June 22, 2009

Data Installer Fails with Java.Lang.Nullpointerexception

Symptoms
-- Problem Statement:On 12.0.4 in Production:When attempting to apply run the data installer as part of the hrglobal install procedurethe following error occurs:ERRORException in thread "main" java.lang.NullPointerExceptionat oracle.apps.per.DataInstall.execute(DataInstall.java:683)at oracle.apps.per.DataInstall.rollback(DataInstall.java:574)at oracle.apps.per.DataInstall.main(DataInstall.java:510)You are using the following command to initiate the run (modified with 'xxxxx' for security purposes):java oracle.apps.per.DataInstall apps apps thin xxxxxl003.xxxxx.int:1522:EBSPROD

-- Steps To Reproduce:The issue can be reproduced at will with the following steps:1. set the apps env2. try to runjava oracle.apps.per.DataInstall apps apps thin \> xxxxxl003.xxxxx.int:1522:EBSPROD
CauseIssue was caused by using the incorrect server name in the command line to initiate thedata installer run.

Solution
-- To implement the solution, please execute the following steps:
recheck password, hostname, port and sid
The command line must be in the following format:
java oracle.apps.per.DataInstall apps apps thin hostname:port:sid

Eg:java oracle.apps.per.DataInstall apps apps thin derp:1546:DEV

Various components in OEM Grid Control

Oracle Enterprise Manager (OEM) Grid Control is monitoring software for Oracle Database, Fusion MiddleWare (FMW including OAS & SOA Suite), Oracle E-Business Suite, Siebel, SAP ….This post covers overview of various components in OEM Grid Control Oracle Enterprise Manager (OEM) / Grid Control Component

1. Oracle Management Agent: is software that sits on all nodes(machines) which you would like to monitor. Configuration file for Management Agent is $OH/ _/ sysman/ config/ emd.properties. Agent uploads managed data (from server its monitoring) to Management Service via HTTP Server (URL of management Service HTTP Server is defined by REPOSITORY_URL parameter in emd.properties)Management Agent software also includes inbuilt HTTP Listener (different from standalone HTTP Server) to accept messages(data) from Management Service and this URL is defined by parameter EMD_URL in emd.properties.Management Agent Log & Trace files are in $AGENT_HOME (or $OH/ _) / sysman/ emagent.log, emagent.trc, emagentfetchlet.log, emagentfetchlet.trc , emagent.nohup.

2. Oracle Management Service : Management Service upload data (from Management Agent via HTTP Server) to Management Repository (sysman schema in oracle database) using JDBC. Configuration file for Management Service is $OH/_/ sysman/ config/ emoms.properties.Repository connection details are defined by parameter emdRepSID, emdRepServer, emdRepConnectDescriptor and emdRepUser in emoms.propertiesManagement Service also monitors Management Agent (to check its up and running), submit enterprise manager jobs and other functions using EMD_URL (Management Agent runs inbuilt HTTP listener) defined in emoms.propertiesManagement Service Log & Tracefiles are in $AS_HOME (or $OH/ _) / sysman/ emoms.log, emoms.trc.

3. Oracle Management Repository : is Database Schema (sysman) to store Enterprise Manager Data. Management Service connects to Management Repository using JDBC

4. Oracle Enterprise Manager (OEM) Grid Control Console: is browser based tool to monitor and manage targets. Administrator uses console (URL on browser using webcache post of Grid Control Server) which connects to Webcache Port of OEM Grid Console.Webcache in turn forward request to HTTP server of OEM Grid Middle Tier. HTTP Server retrieve data from Management Repository via Management Service.

5. HTTP Server: recieve requests from webcache, pulls data from Repository via Management Serviceand return response back to Webcache. HTTP Server also receive data from Management Agents, forward it to Management Service to store them in Management Repository.

6. Webcache : acts as web accelerator; forward request from Users (console) to HTTP Server and response back from HTTP server to Users (Console).Communication between Management Agent & ServiceManagement Agent connect to Management Service via HTTP Server of Grid Control Middleware where as Management Service connect directly (using HTTP protocol) to Management Agent (Agent software include inbuilt http server)

Wednesday, June 17, 2009

ATG RUP 7 for E-Business Release 11i coming soon

The last major update to the E-Business Suite Release 11i's technology stack was released in late 2007. This is available via the Applications Technology Group Rollup Patchset 6, also known as ATG RUP 6.

ATG RUP 7 will deliver a consolidated set of the latest security, stability, and performance fixes for all E-Business Suite technology stack components. Here's a quick update on where we stand in the development cycle for this new patchset.ATG RUP 7 has just completed its development phase and is now in the formal testing phase for all E-Business Suite products. Centralized divisional testing is underway now. This is going smoothly. We're going through the usual process of ironing out the inevitable issues that occur when such fundamental changes are made to the foundation of the E-Business Suite.It's expected that we will go through multiple interim builds of ATG RUP 7. Each iterative test cycle requires product teams to retest to ensure that existing known issues are fixed, new features function as designed, and no new bugs (regressions) have been introduced.

What Does This Have to do with ATG RUP 7?When the upcoming Apps 11i ATG RUP 7 is released, it will be supported along with ATG RUP 6. In other words, if you encounter any issues with ATG RUP 6 or 7, we'll be able to release new E-Business Suite patches for those configurations as necessary.If your Apps 11i environment is on ATG RUP 5, you will no longer be able to request new patches for that technology stack level. If your environment is running ATG RUP 4 or earlier, you already know that you haven't been able to request new patches for those older rollup patchsets.

Patch # 6678700 (KO NLS) fails with WITH LOADING FADTXD .XLF

While applying Korean NLS patch (6678700) on a 12.1 instance, the patch errors out with the following error in the log:

Target file: FADTXD.xlf[061609_085037223][][EXCEPTION] java.io.UTFDataFormatException: Invalid UTF8 encoding.at oracle.xml.parser.v2.XMLUTF8Reader.checkUTF8Byte(XMLUTF8Reader.java:160)at oracle.xml.parser.v2.XMLUTF8Reader.readUTF8Char(XMLUTF8Reader.java:203)at oracle.xml.parser.v2.XMLUTF8Reader.fillBuffer(XMLUTF8Reader.java:120)at oracle.xml.parser.v2.XMLByteReader.saveBuffer(XMLByteReader.java:450)at oracle.xml.parser.v2.XMLReader.fillBuffer(XMLReader.java:2488)at oracle.xml.parser.v2.XMLReader.tryRead(XMLReader.java:1089)at oracle.xml.parser.v2.XMLReader.scanXMLDecl(XMLReader.java:3047)at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:521)at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:288)at oracle.apps.xdo.oa.util.TemplateTranslator.createMLSTemplates(TemplateTranslator.java:238)at oracle.apps.xdo.oa.util.XLIFFLoader.processUpload(XLIFFLoader.java:738)at oracle.apps.xdo.oa.util.XLIFFLoader.process(XLIFFLoader.java:586)at oracle.apps.xdo.oa.util.XLIFFLoader.processXLIFF(XLIFFLoader.java:1153)at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at oracle.apps.ad.worker.AdJavaWorker.invokeUtility(AdJavaWorker.java:503)at oracle.apps.ad.worker.AdJavaWorker.main(AdJavaWorker.java:356)

Oracle has an open bug 8357323 for this which is yet to be closed. To work around this issue, please execute the following steps:

run the below commands to load US XML and US RTF manually , after that re-start the patch application by using adadmin and marking the failed worker as success and continue.

Command to reload XML

adjava -ms128m -mx256m -nojit oracle.apps.xdo.oa.util.XDOLoader UPLOAD-DB_USERNAME -DB_PASSWORD -JDBC_CONNECTION"(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=machine.oracle.com)(PORT=1540)))(CONNECT_DATA=(SID=sidname)))"-LOB_TYPE DATA_TEMPLATE -APPS_SHORT_NAME OFA -LOB_CODE FADTXD -LANGUAGE 00-XDO_FILE_TYPE XML-DATA-TEMPLATE -FILE_NAME$FA_TOP/patch/115/publisher/defs/FADTXD.xml

Replace the above with username/pwd and &jdbc_db_addr

Command to reload RTF

adjava -ms128m -mx256m -nojit oracle.apps.xdo.oa.util.XDOLoader UPLOAD-DB_USERNAME -DB_PASSWORD -JDBC_CONNECTION"(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=machine.oracle.com)(PORT=1540)))(CONNECT_DATA=(SID=sidname)))"-LOB_TYPE TEMPLATE_SOURCE -APPS_SHORT_NAME OFA -LOB_CODE FADTXD -LANGUAGE en-TERRITORY US -XDO_FILE_TYPE RTF -TRANSLATE Y -FILE_NAME$FA_TOP/patch/115/publisher/templates/US/FADTXD.rtf

How to determine if you are on the latest Autoconfig related patches.

run below queries in SQLPLUS connected as APPS user:

SET head off Lines 120 pages 100 col n_patch format A65 col bug_number format A10 col patch_name format A10 spool LACF_ptch_level.txt select ' LACF ' FROM dual; / select bug_number, decode(bug_number, '2488995' ,'11i.ADX.A' ,'2682177' ,'11i.ADX.B' ,'2682863' ,'11i.TXK-C' ,'2757379' ,'11i.TXK-D' ,'2902755' ,'11i.TXK-E' ,'3002409' ,'11i.ADX.C' ,'3104607' ,'11i.TXK-F' ,'3219567' ,'11i.TXK-B' ,'3239694' ,'11i.TXK-G' ,'3271975' ,'11i.ADX.E' ,'3416234' ,'11i.TXK-H' ,'3453499' ,'11i.ADX.F' ,'3594604' ,'11i.TXK-I' ,'3817226' ,'11i.ADX.E.1' ,'3950067' ,'11i.TXK-J' ,'4104924' ,'11i.TXK-K' ,'4367673' ,'11i.TXK-J.1' ,'4717668' ,'11i.TXK-M' ,'5035661' ,'11i.One_off' ,'5107107' ,'11i.TXK-N ROLLUP PATCH (AUG 2' ,'5414396' ,'11i.Rapidclone Cons Jan2008' ,'5414396 ' ,'11i RAPIDCLONE CONSOLIDATED FIXES JAN/2008 ' ,'5456078' ,'11i.One_off_a' ,'5473858' ,'11i.ATG_PF.H RUP5' ,'5478710' ,'11i.TXK-O' ,'5759055' ,'11i.TXK-P' ,'5903765' ,'11i.ATG_PF.H RUP6' ,'5985992' ,'11i.TXK-Q' ,'6372396' ,'11i.TXK-S' ,'6718351' ,'11i.Rapidclone CONSOLIDATED' ) n_patch, last_update_date FROM ad_bugs WHERE bug_number IN ( '2488995', '2682177', '2682863', '2757379', '2902755', '3002409', '3104607', '3219567', '3239694', '3271975', '3416234', '3453499', '3594604', '3817226', '3950067', '4104924', '4367673', '4717668', '5035661', '5107107', '5414396', '5414396', '5456078', '5473858', '5478710', '5759055', '5903765', '5985992', '6372396', '6718351' );

FOR MULTI NODE INSTANCES:

set serveroutput on size 100000
DECLARE TYPE p_patch_array_type is varray(100) of varchar2(10); TYPE a_abstract_array_type is varray(100) of varchar2(60); p_patchlist p_patch_array_type; a_abstract a_abstract_array_type; p_appltop_name VARCHAR2(50); p_patch_status VARCHAR2(15); p_appl_top_id NUMBER; CURSOR alist_cursor IS SELECT appl_top_id, name FROM ad_appl_tops; procedure println(msg in varchar2) IS BEGIN dbms_output.put_line(msg); END; BEGIN open alist_cursor; p_patchlist := p_patch_array_type( '2488995' ,'2682177' ,'2682863' ,'2757379' ,'2902755' ,'3002409' ,'3104607' ,'3219567' ,'3239694' ,'3271975' ,'3416234' ,'3453499' ,'3594604' ,'3817226' ,'3950067' ,'4104924' ,'4367673' ,'4717668' ,'5035661' ,'5107107' ,'5414396' ,'5414396 ' ,'5456078' ,'5473858' ,'5478710' ,'5759055' ,'5903765' ,'5985992' ,'6372396' ,'6718351' ); a_abstract := a_abstract_array_type( '11i.ADX.A' ,'11i.ADX.B' ,'11i.TXK-C' ,'11i.TXK-D' ,'11i.TXK-E' ,'11i.ADX.C' ,'11i.TXK-F' ,'11i.TXK-B' ,'11i.TXK-G' ,'11i.ADX.E' ,'11i.TXK-H' ,'11i.ADX.F' ,'11i.TXK-I' ,'11i.ADX.E.1' ,'11i.TXK-J' ,'11i.TXK-K' ,'11i.TXK-J.1' ,'11i.TXK-M' ,'11i.One_off' ,'11i.TXK-N ROLLUP PATCH (AUG 2' ,'11i.Rapidclone Cons Jan2008' ,'11i RAPIDCLONE CONSOLIDATED FIXES JAN/2008 ' ,'11i.One_off_a' ,'11i.ATG_PF.H RUP5' ,'11i.TXK-O' ,'11i.TXK-P' ,'11i.ATG_PF.H RUP6' ,'11i.TXK-Q' ,'11i.TXK-S' ,'11i.Rapidclone CONSOLIDATED' ); LOOP FETCH alist_cursor INTO p_appl_top_id, p_appltop_name; EXIT WHEN alist_cursor%NOTFOUND; IF p_appltop_name NOT IN ('GLOBAL','*PRESEEDED*') THEN println(p_appltop_name ':'); for i in 1..p_patchlist.count LOOP p_patch_status := ad_patch.is_patch_applied('11i', p_appl_top_id, p_patchlist(i)); println('..Patch ' a_abstract(i) ' 'p_patchlist(i)' was ' p_patch_status); END LOOP; END IF; println('.'); END LOOP; close alist_cursor;
END;
/

For RELEASE 12 instances:
SET head off Lines 120 pages 100 col n_patch format A65 col bug_number format A10 col patch_name format A10 spool LACF_ptch_level.txt select ' LACF ' FROM dual; / select bug_number, decode(bug_number, '4494373' ,'R12.TXK.A' ,'5872965' ,'R12.OAM.A' ,'5909746' ,'R12.TXK.A.1' ,'5917601' ,'R12.TXK.A.2' ,'6077487' ,'R12.TXK.A.DELTA.3' ,'6145693' ,'R12.Rapidclone Cons Jan2008' ,'6776948' ,'R12.Rapidclone CONSOLIDATED' ) n_patch, last_update_date FROM ad_bugs WHERE bug_number IN ( '4494373', '5872965', '5909746', '5917601', '6077487', '6145693', '6776948' );

R12 FOR MULTI NODE INSTANCES:

set serveroutput on size 100000
DECLARE TYPE p_patch_array_type is varray(100) of varchar2(10); TYPE a_abstract_array_type is varray(100) of varchar2(60); p_patchlist p_patch_array_type; a_abstract a_abstract_array_type; p_appltop_name VARCHAR2(50); p_patch_status VARCHAR2(15); p_appl_top_id NUMBER; CURSOR alist_cursor IS SELECT appl_top_id, name FROM ad_appl_tops; procedure println(msg in varchar2) IS BEGIN dbms_output.put_line(msg); END; BEGIN open alist_cursor; p_patchlist := p_patch_array_type( '4494373' ,'5872965' ,'5909746' ,'5917601' ,'6077487' ,'6145693' ,'6776948' ); a_abstract := a_abstract_array_type( 'R12.TXK.A' ,'R12.OAM.A' ,'R12.TXK.A.1' ,'R12.TXK.A.2' ,'R12.TXK.A.DELTA.3' ,'R12.Rapidclone Cons Jan2008' ,'R12.Rapidclone CONSOLIDATED' ); LOOP
FETCH alist_cursor INTO p_appl_top_id, p_appltop_name;
EXIT WHEN alist_cursor%NOTFOUND;
IF p_appltop_name NOT IN ('GLOBAL','*PRESEEDED*')
THEN println(p_appltop_name ':');
for i in 1..p_patchlist.count
LOOP
p_patch_status := ad_patch.is_patch_applied('11i', p_appl_top_id, p_patchlist(i));
println('..Patch ' a_abstract(i) ' 'p_patchlist(i)' was ' p_patch_status);
END LOOP;
END IF;
println('.');
END LOOP;
close alist_cursor;
END;
/

Cleaning An 11i Apps Instance Of Redundant Files

The following are the locations and files that can be considered for deletion:

1. In the $HOME/patch(es) directory, you can delete any zipped files that have been unzipped or any patches that have been applied.
2. In the bin directory of any $PRODUCT_TOP, you may see executable files that have been replaced by patches or a relink of theprogram. You can delete any of the executables that have a .number. a .bak, or a .sav after them. For example in $FND_TOP/bin, you may see:
FNDLIBR
FNDLIBR.bak
FNDLIBR.sav
FNDLIBR.1253
FNDLIBR.41248
FNDLIBR.7978

In this case you can delete the
following:

FNDLIBR.bak
FNDLIBR.sav
FNDLIBR.1253
FNDLIBR.41248
FNDLIBR.7978

If you do delete the current program file by mistake, youcan regenerate it by using adrelink or adadmin.

3. If you have been applying patches, in the $APPL_TOP/admin/<>/log directory, you will find files that end in .req, html, or .lst. If you are not applying patches or running adadmin, you can delete all of these files. Additionally in that same directory, you will find all of the log files for the patches that have been applied. You can delete those that were from patches that have been applied successfully. You can also truncate any adwork< # >.log or adadmin.log files you find. These files can get very large and it is not necessary to keep the data in them for very long.

4. In the $APPL_TOP/admin/<>/out directory, you may see many files. They may end in .out, .mk, .log, .lst. If the files are olderthan 2 weeks old, it wil be safe to delete them. There may also be files in this directory that end in a .number. These can be deleted at the end of two weeks as well.

5. In the $COMMON_TOP/admin/log, $COMMON_TOP/admin/out and the $COMMON_TOP/temp directories there may be files that you can delete. $COMMON_TOP = (/region/oracle/<>/<>comn) You may also find files in any $PROD_TOP/log or $PROD_TOP/out directory.

In the $COMMON_TOP/admin/log directory you can delete the files like Apache<>.txt, these files just contains informational messages.

6.In the 8i $ORACLE_HOME/dbs directory check the init<>.ora, this will list the location of three directories: udump, cdump, and bdump. In the udump directory, you will find any database traces that have been generated. If you do not need these trace files, you can delete them. In the cdump directory, you will find any core dumps that have occurred in the database. You candelete these if you do not need them. In the bdump, you may find trace files generated by the database startup and shutdown. You will also find the alert_<>.log. You can delete the trace files and truncate the alert_<>.log if necessary.

7.In your application $ORACLE_HOME directory, (usually), /region/oracle/<>/<>ora/8.0.6), there may be old files from anyOracle Developer upgrades. If you look in the $ORACLE_HOME/lib directory, you may find files that look like this:

libocl60.a
libocl60.a.PRE_P3
libocl60.a.PRE_P5
libocl60.a.PRE_P7

NOTE:
-------
The files that end in .PRE_P* can be deleted. However you have to be very careful to only delete those files that end in .PRE_P*. If youdelete any files without this suffix, you will corrupt your instance and may require a restore to make it work.

There are many other locations in the 8.0.6 $ORACLE_HOME that have these .PRE_P*files. If you run this command: find . ?name.PRE_P* , you will fin all of these types of files. You can then delete them all.
-------

8. Depending on when an instance core dumps, you may find core files in places other than the cdump directory. After the reason for the core dump has been addressed, you may delete these as well. If you go to your $ORACLE_BASE directory , (usually /<>/oracle/<>), and use the command find .?name core*, you will find any core files in the instance.

9.In the application, you should run "Purge Concurrent Request and/or Manager Data" concurrent program as sysadmin to cleanup oldconcurrent request and concurrent manager logfiles, output files and associated concurrent request/manager database records.

10.In pre-11i versions, files that are replaced by patches are copied as a backup before they are replaced. The old files (eg.pre-patch files) are named <>.<>O with an uppercase letter "O" at the end of the filename;(eg.POXCOC3B.plsO is the pre-patch version of POXCOC3B.pls). Some timeafter patches have been applied and the instance is stable, these oldversions of the Apps files can be removed.

11. In $AU_TOP/java and $JAVA_TOP, you may find files with the name apps.bak. If these are over 2 weeks old, it will be safe to remove them as well.
By maintaining your instance using the above suggestions, your instance will run faster and it will not shutdown due to a lack ofspace.

12)If logs are not required then remove the files from $ORACLE_HOME/network/log