Monday, December 30, 2013

Hijrah Calendar Support in Oracle E-Business Suite Release 12

This document describes Hijrah calendar support in Oracle E-Business Suite R12.

Contents

  • Scope of Support
  • Overview
  • Requirements
  • Installation
  • Deviation Days Setup
  • Known Issues

Scope of Support

The support for Hijrah calendars is limited to Forms-based user interfaces. Flexfields embedded in the Forms-based user interface, however, still use the Gregorian calendar. In subsequent E-Business Suite releases, Oracle may enable Hijrah calendar support in flexfields as well as products or components that are based on Oracle Application Framework or BI Publisher. Oracle does not have plans to enable Hijrah calendar support in other E-Business Suite components or technologies such as Oracle CRM Technology Foundation (JTF), WebADI, Oracle Discoverer, or Oracle Reports. Only Hijrah calendars (Arabic and English) are currently supported. In the subsequent E-Business Suite releases, support for additional calendars, such as Thai Buddhist, is planned. Product Specific Information Forms

Overview

ARU# 6193444 provides the necessary code to support the Hijrah calendar in EBS forms. The support includes a date picker showing the Hijrah calendarm and date type fields showing Hijrah dates.

Requirements

Make sure your system has the following code levels before applying the Hijrah calendar support patch:
  • R12.AD.A.delta.4
  • R12.ATG_PF.A.delta.4

In addition, Oracle Forms version must be upgraded to 10.1.2.2 first. Review Oracle MetaLink Note# 437878.1, then apply Forms one-off patch for bug 5843467. Client machine locale must be set to Arabic in order for Arabic text to be rendered correctly. Refer to MetaLink Note#393320.1 for how to set the locale with the Windows regional settings.

Installation

Apply ARU# 6193444 with adpatch. After patch application, all product Forms will need to be regenerated. Re-generate the FND message files as well. Bounce the oacore service after patch application. Enabling Hijrah Calendar Support: The following three profile options are added for non Gregorian calendar support:
  • FND: Calendar Week Start Day
  • FND: Forms User Calendar
  • FND: Tooltip Calendar
To enable the Arabic or English Hijrah calendar at runtime, set the FND: Forms User Calendar profile to the desired value. In addition, Hijrah calendar users might want to set the other two profile options. Here is the screen shot of the date picker with following profile values:
  • FND: Calendar Week Start Day = "Sat"
  • FND: Forms User Calendar = "English Hijrah"
  • FND: Tooltip Calendar = "Gregorian"
datepickerThe date picker will show the English Hijrah calendar, with the first day of the week as Saturday. If you place the mouse cursor over a date cell, the tooltip shows the corresponding Gregorian date. When you click on the expansion button at the right bottom corner of the date picker, the corresponding Gregorian calendar pane is displayed next to it. dualmode
datefield
Also, date type fields show the date in the calendar set to FND: Forms User Calendar. The user of the Hijrah Calendar MUST set "Date Format" preference to one with "MM". Refer to known issue #1 for more detail.

Deviation Days Setup

The setup for Hijrah calendar deviation days needs to be configured both on the database tier and on the Forms tier. Use the same deviation file. Refer to the following steps:
  1. Place deviation file under $ORACLE_HOME/nls on both forms middle tier and database tiers. (Refer to the example of nlt file at the bottom of this section.)
  2. run lxegen on each tier. e.g. % lxegen It generates lxecalah.nlb and lxecaleh.nlb under the same directory.
  3. Restart middle tier and database.
  4. Invoke the date picker and confirm the deviation. For instance, after the setup, Gregorian date 09/01/2008 is Hijrah 1/1/1429. Before, it was Hijrah 30/12/1428
      --- Sample of lxecal.nlt ---
     DEFINE calendar
    
             calendar_name              =       "Arabic Hijrah"
    
        DEFINE calendar_deviation
              deviation_data           = { 
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                }
        ENDDEFINE calendar_deviation
    
     ENDDEFINE calendar
    
            DEFINE calendar
    
             calendar_name              =       "English Hijrah"
    
               DEFINE calendar_deviation
              deviation_data           = {
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                                            }
               ENDDEFINE calendar_deviation
    
            ENDDEFINE calendar
    
       --- end of sample of lxecal.nlt ---
    
    Note: this sample covers only recent years.
If you encounter a performance issue when bringing up the forms date picker with a big deviation file, apply patch for bug# 5604120 on 10.1.2 ORACLE_HOME. After applying the patch, make sure to relink forms and reports. Refer to post install steps in Note 437878.1.

Freeman-Grenville Hijrah Calendar Calculation Algorithm

A year has 12 months.
Over a cycle of 30 years there are 11 leap years.
There are 30 days in month number 1, 3, 5, 7, 9, and 11, and 29 days in month number 2, 4, 6, 8, 10, and 12.
In a leap year month 12 has 30 days.
In a 30 year cycle, year 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29 are leap years.
Total of 10631 days in a 30 years cycle.
The table shows the features described above.
# of month
Name of month
Number of days
1
Muharram
30
2
Safar
29
3
Rabi'al-Awwal
30
4
Rabi'ath-Thani
29
5
Jumada l-Ula
30
6
Jumada t-Tania
29
7
Rajab
30
8
Sha`ban
29
9
Ramadan
30
10
Shawwal
29
11
Dhu 'l-Qa`da
30
12
Dhu 'l-Hijja
29, but 30 days in years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29
 The algorithm is taken from the book, The Muslim and Christian Calendars by G.S.P. Freeman-Grenville.
 

Known Issues

  • The "Date Format" preference for the Hijrah Calendar user MUST NOT include "MMM", the translated SHORT month name. For instance, go to "Preference". Make sure the "Date Format" value does NOT have "MMM". Or, search for the "ICX: Date format mask" option with "System Administrator" > Profile > System. Set the format with all numbers, not the translated short month name. This is because some of the short month names are the same. Also, they might be meaninglessly truncated.
  • Hijrah and Thai calendars are only supported for Date Type fields. Character (text) Type fields show Gregorian dates. Similarly, dates embedded in error, informative, alert messages, or title bar may show up in Gregorian irrespective of the user preferred calendar.
  • Flexfields embedded in the Forms-based user interface show Gregorian date.
  • Oracle Foms UI embedded Beans Areas such as timeline of MRMS Maintain Contingent Workers or Scheduler Workbench of EAM always show Gregorian dates.
  • Seeded data for "term" is Gregorian base. e.g. "Jan-00"
  • Dates prior to July 16th, 622 AD are not supported in Hijrah calendar.
  • While generating all the forms after applied ARU#6193444, one CSI Form gives error: following Oracle Forms objects did not generate successfully: csi forms/XX CSIIRTYP.fmx (XX is the oracle language code you’re generating.) bug#5863264 is tracking this issue, and it is planned to be resolved in the future. The workaround is to set the width and height property to 5 on the calendar canvas of $AU_TOP/forms/XX/CSIIRTYP.fmb. And re-generate it.

Hijrah Calendar Support in Oracle E-Business Suite Release 12

This document describes Hijrah calendar support in Oracle E-Business Suite R12.

Contents

  • Scope of Support
  • Overview
  • Requirements
  • Installation
  • Deviation Days Setup
  • Known Issues

Scope of Support

The support for Hijrah calendars is limited to Forms-based user interfaces. Flexfields embedded in the Forms-based user interface, however, still use the Gregorian calendar. In subsequent E-Business Suite releases, Oracle may enable Hijrah calendar support in flexfields as well as products or components that are based on Oracle Application Framework or BI Publisher. Oracle does not have plans to enable Hijrah calendar support in other E-Business Suite components or technologies such as Oracle CRM Technology Foundation (JTF), WebADI, Oracle Discoverer, or Oracle Reports. Only Hijrah calendars (Arabic and English) are currently supported. In the subsequent E-Business Suite releases, support for additional calendars, such as Thai Buddhist, is planned. Product Specific Information Forms

Overview

ARU# 6193444 provides the necessary code to support the Hijrah calendar in EBS forms. The support includes a date picker showing the Hijrah calendarm and date type fields showing Hijrah dates.

Requirements

Make sure your system has the following code levels before applying the Hijrah calendar support patch:
  • R12.AD.A.delta.4
  • R12.ATG_PF.A.delta.4

In addition, Oracle Forms version must be upgraded to 10.1.2.2 first. Review Oracle MetaLink Note# 437878.1, then apply Forms one-off patch for bug 5843467. Client machine locale must be set to Arabic in order for Arabic text to be rendered correctly. Refer to MetaLink Note#393320.1 for how to set the locale with the Windows regional settings.

Installation

Apply ARU# 6193444 with adpatch. After patch application, all product Forms will need to be regenerated. Re-generate the FND message files as well. Bounce the oacore service after patch application. Enabling Hijrah Calendar Support: The following three profile options are added for non Gregorian calendar support:
  • FND: Calendar Week Start Day
  • FND: Forms User Calendar
  • FND: Tooltip Calendar
To enable the Arabic or English Hijrah calendar at runtime, set the FND: Forms User Calendar profile to the desired value. In addition, Hijrah calendar users might want to set the other two profile options. Here is the screen shot of the date picker with following profile values:
  • FND: Calendar Week Start Day = "Sat"
  • FND: Forms User Calendar = "English Hijrah"
  • FND: Tooltip Calendar = "Gregorian"
datepickerThe date picker will show the English Hijrah calendar, with the first day of the week as Saturday. If you place the mouse cursor over a date cell, the tooltip shows the corresponding Gregorian date. When you click on the expansion button at the right bottom corner of the date picker, the corresponding Gregorian calendar pane is displayed next to it. dualmode
datefield
Also, date type fields show the date in the calendar set to FND: Forms User Calendar. The user of the Hijrah Calendar MUST set "Date Format" preference to one with "MM". Refer to known issue #1 for more detail.

Deviation Days Setup

The setup for Hijrah calendar deviation days needs to be configured both on the database tier and on the Forms tier. Use the same deviation file. Refer to the following steps:
  1. Place deviation file under $ORACLE_HOME/nls on both forms middle tier and database tiers. (Refer to the example of nlt file at the bottom of this section.)
  2. run lxegen on each tier. e.g. % lxegen It generates lxecalah.nlb and lxecaleh.nlb under the same directory.
  3. Restart middle tier and database.
  4. Invoke the date picker and confirm the deviation. For instance, after the setup, Gregorian date 09/01/2008 is Hijrah 1/1/1429. Before, it was Hijrah 30/12/1428
      --- Sample of lxecal.nlt ---
     DEFINE calendar
    
             calendar_name              =       "Arabic Hijrah"
    
        DEFINE calendar_deviation
              deviation_data           = { 
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                }
        ENDDEFINE calendar_deviation
    
     ENDDEFINE calendar
    
            DEFINE calendar
    
             calendar_name              =       "English Hijrah"
    
               DEFINE calendar_deviation
              deviation_data           = {
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                                            }
               ENDDEFINE calendar_deviation
    
            ENDDEFINE calendar
    
       --- end of sample of lxecal.nlt ---
    
    Note: this sample covers only recent years.
If you encounter a performance issue when bringing up the forms date picker with a big deviation file, apply patch for bug# 5604120 on 10.1.2 ORACLE_HOME. After applying the patch, make sure to relink forms and reports. Refer to post install steps in Note 437878.1.

Freeman-Grenville Hijrah Calendar Calculation Algorithm

A year has 12 months.
Over a cycle of 30 years there are 11 leap years.
There are 30 days in month number 1, 3, 5, 7, 9, and 11, and 29 days in month number 2, 4, 6, 8, 10, and 12.
In a leap year month 12 has 30 days.
In a 30 year cycle, year 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29 are leap years.
Total of 10631 days in a 30 years cycle.
The table shows the features described above.
# of month
Name of month
Number of days
1
Muharram
30
2
Safar
29
3
Rabi'al-Awwal
30
4
Rabi'ath-Thani
29
5
Jumada l-Ula
30
6
Jumada t-Tania
29
7
Rajab
30
8
Sha`ban
29
9
Ramadan
30
10
Shawwal
29
11
Dhu 'l-Qa`da
30
12
Dhu 'l-Hijja
29, but 30 days in years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29
 The algorithm is taken from the book, The Muslim and Christian Calendars by G.S.P. Freeman-Grenville.
 

Known Issues

  • The "Date Format" preference for the Hijrah Calendar user MUST NOT include "MMM", the translated SHORT month name. For instance, go to "Preference". Make sure the "Date Format" value does NOT have "MMM". Or, search for the "ICX: Date format mask" option with "System Administrator" > Profile > System. Set the format with all numbers, not the translated short month name. This is because some of the short month names are the same. Also, they might be meaninglessly truncated.
  • Hijrah and Thai calendars are only supported for Date Type fields. Character (text) Type fields show Gregorian dates. Similarly, dates embedded in error, informative, alert messages, or title bar may show up in Gregorian irrespective of the user preferred calendar.
  • Flexfields embedded in the Forms-based user interface show Gregorian date.
  • Oracle Foms UI embedded Beans Areas such as timeline of MRMS Maintain Contingent Workers or Scheduler Workbench of EAM always show Gregorian dates.
  • Seeded data for "term" is Gregorian base. e.g. "Jan-00"
  • Dates prior to July 16th, 622 AD are not supported in Hijrah calendar.
  • While generating all the forms after applied ARU#6193444, one CSI Form gives error: following Oracle Forms objects did not generate successfully: csi forms/XX CSIIRTYP.fmx (XX is the oracle language code you’re generating.) bug#5863264 is tracking this issue, and it is planned to be resolved in the future. The workaround is to set the width and height property to 5 on the calendar canvas of $AU_TOP/forms/XX/CSIIRTYP.fmb. And re-generate it.

Hijrah Calendar Support in Oracle E-Business Suite Release 12

This document describes Hijrah calendar support in Oracle E-Business Suite R12.

Contents

  • Scope of Support
  • Overview
  • Requirements
  • Installation
  • Deviation Days Setup
  • Known Issues

Scope of Support

The support for Hijrah calendars is limited to Forms-based user interfaces. Flexfields embedded in the Forms-based user interface, however, still use the Gregorian calendar. In subsequent E-Business Suite releases, Oracle may enable Hijrah calendar support in flexfields as well as products or components that are based on Oracle Application Framework or BI Publisher. Oracle does not have plans to enable Hijrah calendar support in other E-Business Suite components or technologies such as Oracle CRM Technology Foundation (JTF), WebADI, Oracle Discoverer, or Oracle Reports. Only Hijrah calendars (Arabic and English) are currently supported. In the subsequent E-Business Suite releases, support for additional calendars, such as Thai Buddhist, is planned. Product Specific Information Forms

Overview

ARU# 6193444 provides the necessary code to support the Hijrah calendar in EBS forms. The support includes a date picker showing the Hijrah calendarm and date type fields showing Hijrah dates.

Requirements

Make sure your system has the following code levels before applying the Hijrah calendar support patch:
  • R12.AD.A.delta.4
  • R12.ATG_PF.A.delta.4

In addition, Oracle Forms version must be upgraded to 10.1.2.2 first. Review Oracle MetaLink Note# 437878.1, then apply Forms one-off patch for bug 5843467. Client machine locale must be set to Arabic in order for Arabic text to be rendered correctly. Refer to MetaLink Note#393320.1 for how to set the locale with the Windows regional settings.

Installation

Apply ARU# 6193444 with adpatch. After patch application, all product Forms will need to be regenerated. Re-generate the FND message files as well. Bounce the oacore service after patch application. Enabling Hijrah Calendar Support: The following three profile options are added for non Gregorian calendar support:
  • FND: Calendar Week Start Day
  • FND: Forms User Calendar
  • FND: Tooltip Calendar
To enable the Arabic or English Hijrah calendar at runtime, set the FND: Forms User Calendar profile to the desired value. In addition, Hijrah calendar users might want to set the other two profile options. Here is the screen shot of the date picker with following profile values:
  • FND: Calendar Week Start Day = "Sat"
  • FND: Forms User Calendar = "English Hijrah"
  • FND: Tooltip Calendar = "Gregorian"
datepickerThe date picker will show the English Hijrah calendar, with the first day of the week as Saturday. If you place the mouse cursor over a date cell, the tooltip shows the corresponding Gregorian date. When you click on the expansion button at the right bottom corner of the date picker, the corresponding Gregorian calendar pane is displayed next to it. dualmode
datefield
Also, date type fields show the date in the calendar set to FND: Forms User Calendar. The user of the Hijrah Calendar MUST set "Date Format" preference to one with "MM". Refer to known issue #1 for more detail.

Deviation Days Setup

The setup for Hijrah calendar deviation days needs to be configured both on the database tier and on the Forms tier. Use the same deviation file. Refer to the following steps:
  1. Place deviation file under $ORACLE_HOME/nls on both forms middle tier and database tiers. (Refer to the example of nlt file at the bottom of this section.)
  2. run lxegen on each tier. e.g. % lxegen It generates lxecalah.nlb and lxecaleh.nlb under the same directory.
  3. Restart middle tier and database.
  4. Invoke the date picker and confirm the deviation. For instance, after the setup, Gregorian date 09/01/2008 is Hijrah 1/1/1429. Before, it was Hijrah 30/12/1428
      --- Sample of lxecal.nlt ---
     DEFINE calendar
    
             calendar_name              =       "Arabic Hijrah"
    
        DEFINE calendar_deviation
              deviation_data           = { 
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                }
        ENDDEFINE calendar_deviation
    
     ENDDEFINE calendar
    
            DEFINE calendar
    
             calendar_name              =       "English Hijrah"
    
               DEFINE calendar_deviation
              deviation_data           = {
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                                            }
               ENDDEFINE calendar_deviation
    
            ENDDEFINE calendar
    
       --- end of sample of lxecal.nlt ---
    
    Note: this sample covers only recent years.
If you encounter a performance issue when bringing up the forms date picker with a big deviation file, apply patch for bug# 5604120 on 10.1.2 ORACLE_HOME. After applying the patch, make sure to relink forms and reports. Refer to post install steps in Note 437878.1.

Freeman-Grenville Hijrah Calendar Calculation Algorithm

A year has 12 months.
Over a cycle of 30 years there are 11 leap years.
There are 30 days in month number 1, 3, 5, 7, 9, and 11, and 29 days in month number 2, 4, 6, 8, 10, and 12.
In a leap year month 12 has 30 days.
In a 30 year cycle, year 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29 are leap years.
Total of 10631 days in a 30 years cycle.
The table shows the features described above.
# of month
Name of month
Number of days
1
Muharram
30
2
Safar
29
3
Rabi'al-Awwal
30
4
Rabi'ath-Thani
29
5
Jumada l-Ula
30
6
Jumada t-Tania
29
7
Rajab
30
8
Sha`ban
29
9
Ramadan
30
10
Shawwal
29
11
Dhu 'l-Qa`da
30
12
Dhu 'l-Hijja
29, but 30 days in years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29
 The algorithm is taken from the book, The Muslim and Christian Calendars by G.S.P. Freeman-Grenville.
 

Known Issues

  • The "Date Format" preference for the Hijrah Calendar user MUST NOT include "MMM", the translated SHORT month name. For instance, go to "Preference". Make sure the "Date Format" value does NOT have "MMM". Or, search for the "ICX: Date format mask" option with "System Administrator" > Profile > System. Set the format with all numbers, not the translated short month name. This is because some of the short month names are the same. Also, they might be meaninglessly truncated.
  • Hijrah and Thai calendars are only supported for Date Type fields. Character (text) Type fields show Gregorian dates. Similarly, dates embedded in error, informative, alert messages, or title bar may show up in Gregorian irrespective of the user preferred calendar.
  • Flexfields embedded in the Forms-based user interface show Gregorian date.
  • Oracle Foms UI embedded Beans Areas such as timeline of MRMS Maintain Contingent Workers or Scheduler Workbench of EAM always show Gregorian dates.
  • Seeded data for "term" is Gregorian base. e.g. "Jan-00"
  • Dates prior to July 16th, 622 AD are not supported in Hijrah calendar.
  • While generating all the forms after applied ARU#6193444, one CSI Form gives error: following Oracle Forms objects did not generate successfully: csi forms/XX CSIIRTYP.fmx (XX is the oracle language code you’re generating.) bug#5863264 is tracking this issue, and it is planned to be resolved in the future. The workaround is to set the width and height property to 5 on the calendar canvas of $AU_TOP/forms/XX/CSIIRTYP.fmb. And re-generate it.

Friday, December 27, 2013

FDM Import Screen Hangs On "Processing.. Please Wait" on Client Workstations

FDM Import Screen Hangs On "Processing.. Please Wait" on Client Workstations

Modified:21-May-2013Type:PROBLEM

In this Document
Symptoms
Cause
Solution

APPLIES TO:

Hyperion Financial Data Quality Management - Version 11.1.2.1.000 and later
Information in this document applies to any platform.
SYMPTOMS

When running an import in FDM for a location that has around 8 pages of source records the FDM Screen hangs with "processing please wait..." and does not return back a gold fish status with the source data. If the same import process is ran locally to the FDM Server or on another server in the same data center the page refreshes properly.


CAUSE

The issue is related to the enabled firewall on the user's PCs. After disabling the firewall, this issue instantly disappeared.


SOLUTION

A) Disable Enabled Firewall on users PC (Symantec, McAffee, etc.)

FDM Import Screen Hangs On "Processing.. Please Wait" on Client Workstations

FDM Import Screen Hangs On "Processing.. Please Wait" on Client Workstations

Modified:21-May-2013Type:PROBLEM

In this Document
Symptoms
Cause
Solution

APPLIES TO:

Hyperion Financial Data Quality Management - Version 11.1.2.1.000 and later
Information in this document applies to any platform.
SYMPTOMS

When running an import in FDM for a location that has around 8 pages of source records the FDM Screen hangs with "processing please wait..." and does not return back a gold fish status with the source data. If the same import process is ran locally to the FDM Server or on another server in the same data center the page refreshes properly.


CAUSE

The issue is related to the enabled firewall on the user's PCs. After disabling the firewall, this issue instantly disappeared.


SOLUTION

A) Disable Enabled Firewall on users PC (Symantec, McAffee, etc.)

How to Start and Stop Financial Management (HFM) Server Windows Processes

How to Start and Stop Financial Management (HFM) Server Windows Processes

  What are the main Windows processes of an HFM application server?
  What happens when I start the HFM Windows Service?
  What happens when I stop the HFM Windows Service?
  Why should I use the HFM Windows Service?
  When should I not use the HFM Windows Service?
  Allowing HFM to start and stop as needed.
  Why do I see multiple HsvDataSource.exe processes on an HFM application server?
  When does the HsvDataSource.exe process stop itself?
  Why might the HsvDataSource.exe not stop by itself?
  What is the CASSecurity.exe process?
  In what order should the HFM processes be stopped?

APPLIES TO:

Hyperion Financial Management - Version 1.0.0.0.00 and later
Information in this document applies to any platform.
PURPOSE

This document describes the starting and stopping of the main Windows processes that are seen in the Windows Task Manager of a HFM application server.

SCOPE

This document is intended for use by Hyperion Financial Management administrators with a good understanding of the Windows Task Manager, in particular the Processes tab.

DETAILS

What are the main Windows processes of an HFM application server?

The main Windows processes of a HFM application server are HsxService.exe, HsxServer.exe, CASSecurity.exe and HsvDatasource.exe.

What happens when I start the HFM Windows Service?

Oracle's Hyperion Financial Management can be started by starting the Windows Service "Hyperion Financial Management - Management Service". When this service is started, a process called HsxService.exe will become visible in the Windows Task Manager, and will remain running until the Windows Service is stopped. The HsxServer.exe, CASSecurity.exe and HsvDataSource.exe processes are also started.

What happens when I stop the HFM Windows Service?

When the Hyperion Financial Management Windows service is stopped, the HsxService.exe process will be stopped along with the HsvDataSource.exe, CASSecurity.exe and HsxServer.exe processes.

Why should I use the HFM Windows Service?

Oracle typically recommends that customers use the Windows Service approach only when their individual applications within their HFM database are known to take several minutes to start up. By starting the Windows Service, the application server will pre-launch each application, which will then be "active" and already started when the first user attempts to connect to the application. In this way, the user will not experience any "delay" while logging in, due to application startup time.

Applications may take longer to start up when their metadata dimensions are very large, when an application server or database is under heavy load, or when the rules file of the application contains a slow performing "NoInput" rules section. This section may take longer to execute if it contains many loop statements through many different metadata Point of View (POV) members. Care should be taken when designing metadata and NoInput rules routines to reduce the start up time of an individual application.

When should I not use the HFM Windows Service?

A potential disadvantage of using the Windows Service approach is that all applications are started, regardless of the true requirement and usage of the end users. If there are many applications that exist in the HFM database, unnecessary memory and CPU cycles may be used launching applications which are not needed by the end users. For this reason, Oracle recommends that customers not keep unused HFM applications in production environment HFM databases, or to not use the HFM Windows Service approach if there are known unused HFM applications in the database.

Allowing HFM to start and stop as needed.

If the HFM Windows Service is not being used as above, Financial Management will start itself when end users attempt to log on to an HFM application. When any end user connects to HFM for the first time on a particular application server, the process HsxServer.exe will be started. This process builds connections to the HFM database repository, authenticates the user connecting, and returns a list of available HFM applications within the database. There will only be one HsxServer.exe process on each application server. If the end user who connected to the HFM application server then proceeds to select an HFM application name to open, the HsxServer.exe process will then launch the HsvDataSource.exe Windows process to start that application. The HsxServer.exe process will remain running until there are no users logged on to that application server and all HsvDataSource.exe processes have also stopped.

Why do I see multiple HsvDataSource.exe processes on an HFM application server?

Hyperion Financial Management opens one HsvDataSource.exe (HSVDAT~1.EXE) process on the HFM server per active application. Connections are application specific. If multiple applications are opened, multiple HsvDataSource.exe processes will be launched.

When an application is opened, a database connection pool is created between the application process and the relational database (SQL Server / Oracle / DB2 etc). However, connections are not released on an application basis - they are released on an application server basis. All connections are not released until the application server has no Financial Management users accessing any application.

When does the HsvDataSource.exe process stop itself?

When an application server determines that all users of a particular application on that application server have correctly logged off or timed out (e.g. web time out), then it sends a signal to the HsvDataSource.exe process running that application to stop itself.

When all HsvDataSource.exe processes on a particular application server have stopped themselves, then the HsxServer.exe and CASSecurity.exe processes will also be stopped. After a short delay, under normal circumstances, all HFM processes will stop themselves. Only when all HFM processes on all HFM application servers have been stopped is it safe to make changes to the relational database for example, copying applications, taking or restoring backups of the database or powering down the database. Changes to the database should NOT be made while any HsvDataSource.exe process is seen running in the Windows Task Manager.

Why might the HsvDataSource.exe not stop by itself?

If end users log off incorrectly, their sessions may not have stopped. Hyperion Reports, Financial Reporting, Web Analysis, Financial Data Quality Management, Shared Services task flows or other modules may be holding open connections to Financial Management applications. All other Hyperion processes and services which may be connecting to Financial Management should be stopped first. Financial Management administrators may like to use the "Users on System" module of Financial Management to stop end user connections. When Financial Management decides that all connections have stopped, it should proceed to shut itself down automatically.

What is the CASSecurity.exe process?

Another Windows process is CASSecurity.exe. This is a process that manages the interface between Financial Management and Hyperion Shared Services modules. It handles some of the authorization and authentication processes of HFM, as well as security related features while the application is running.  Important Note:  Any change in the Shared Services external provider configuration REQUIRES the CASSecurity.exe process to be recycled in order gain access to the provider changes.  Follow the "In what order should the HFM processes be stopped" section.

In what order should the HFM processes be stopped?

If Financial Management appears to have frozen / crashed it may be necessary to stop the processes. Processes should be stopped in the following order:

The Hyperion Financial Management Windows Service (HsxService.exe) should be stopped via the Windows Services if it seen to be running.
The HsvDataSource.exe for each application should be shut down. Ideally it should be observed that the HsvDataSource.exe is using 00% CPU in the Windows Task Manager before it is stopped using "End Process". Care should be taken when stopping running processes.
Any CASSecurity.exe process which is still running in the Windows Task Manager should be stopped using "End Process"
If any HsxServer.exe process is still running, it should be stopped using "End Process"

CAUTION: In a multi-server environment where multiple application servers are connecting to the same relational database, the process of stopping HFM should be repeated on ALL HFM application servers before attempting to restart any HFM processes or "bring up" the applications once again. It is not recommended to stop and start any one server independently but instead to stop the whole environment and then bring it back up.

Thursday, December 26, 2013

These scripts are meant to provide the most commonly requested information.


These scripts are meant to provide the most commonly requested information.

Functional analysts with SQL and Unix access should be able to run these scripts and provide the information to Oracle Support.

User need to log into SQL plus to run the SQL scripts.

QUESTIONS AND ANSWERS

IMPORTANT:

Most of the information provided by the scripts below can be obtained from the RDA diagnostics, which is simple to perform and provides more complete information about the installed software. This should be the privileged set of information provided to Support.
You can find the RDA test for your APPS version in one of the following:
R12.0.6+ : All RDA Data Collection Test (Doc ID 732091.1)
R12.0.[3-4] : All RDA Data Collection Test (Doc ID 420427.1)
11i : Applications DBA RDA Data Collection Test (Doc ID 183274.1)


1. How to find versions of files in packages?

select text from dba_source
where name like '%&PKG_NAME%'
and line = 2;

Example:

select text from dba_source
where name = 'GLRX_JOURNAL_PKG'
and line = 2;

2. How to check if a patch is applied?

select * from ad_bugs
where bug_number = &bug_number;

select * from ad_applied_patches
where patch_name = &bug_number;

SELECT DISTINCT a.bug_number, e.patch_name, c.end_date, b.applied_flag
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 LIKE '&bug_number'
ORDER BY 1 DESC ;



3. How to find the patch set level for an application?

select substr(aa.application_short_name,1,20) "Product",
a.patch_level "Patch Level"
from fnd_product_installations a, fnd_application aa
where a.application_id = aa.application_id
and aa.application_short_name like '%&short_name%';

Example:

select substr(aa.application_short_name,1,20) "Product",
a.patch_level "Patch Level"
from fnd_product_installations a, fnd_application aa
where a.application_id = aa.application_id
and aa.application_short_name like '%AP%';



4. How to find instance name, host name, apps and RDBMS versions of the instance user is logged into?

select i.instance_name, i.host_name, f.release_name release, i.version
from v$instance i, fnd_product_groups f
where upper(substr(i.instance_name,1,4)) = upper(substr(f.applications_system_name,1,4));



5. How to find the latest version of a file on a given instance?

select sub.filename, sub.version
from (
   select adf.filename filename,
   afv.version version,
   rank()over(partition by adf.filename
     order by afv.version_segment1 desc,
     afv.version_segment2 desc,afv.version_segment3 desc,
     afv.version_segment4 desc,afv.version_segment5 desc,
     afv.version_segment6 desc,afv.version_segment7 desc,
     afv.version_segment8 desc,afv.version_segment9 desc,
     afv.version_segment10 desc,
     afv.translation_level desc) as rank1
   from ad_file_versions afv,
     (
     select filename, app_short_name, subdir, file_id
     from ad_files
     where upper(filename) like upper('%&filename%')
     ) adf
   where adf.file_id = afv.file_id
) sub
where rank1 = 1
order by 1
 You can enter partial file names and the search is not case sensitive.

For example you can search on "glxjeent" for the form "GLXJEENT.fmb" or "frmsheet1" for java file "FrmSheet1VBA.class".

Note: This script works for the following file types:
- .class, .drvx, .fmb, .htm, .lct, .ldt, .o, .odf, .pkb, .pkh, .pls, .rdf, .rtf, .sql, .xml.
It doens't work for .lpc, .lc files, etc.


6. How to check the installation status and patch set level for a product?

Example 1

select patch_level, status from fnd_product_installations
where patch_level like '%FND%';

Example 2

select patch_level, status from fnd_product_installations
where patch_level like '%XDO%';


7. How to backup a table before users use sql to update the apps tables?

Example 1:

Create table ap_invoices_all_bkp as select * from ap_invoices_all;

Example 2:

Create table gl_interface_bkp as select * from gl_interface;



Note: SQL updates are not allowed unless directed to do so by Oracle Support or Development



8. How to find the table(s) name with the column name?


User knows the column_name but not sure what table(s) the column name is in.

Example:

select * from dba_tab_columns
where column_name like '%SET_OF_BOOKS_ID%';

This will provide the names of all the tables that has column_name SET_OF_BOOKS_ID.



9. How to check for invalid objects in a particular module?

select OWNER, OBJECT_NAME, OBJECT_TYPE
from DBA_OBJECTS
where OBJECT_NAME like 'FND_%'
and STATUS = 'INVALID';

select OWNER, OBJECT_NAME, OBJECT_TYPE
from DBA_OBJECTS
where OBJECT_NAME like 'AP_%'
and STATUS = 'INVALID';


10. How to check for invalid objects in all the modules?

select owner, object_name, object_type from dba_objects
where status = 'INVALID'
order by object_name, object_type;



11. How to find the applications in the system that are either installed shared?

select fat.application_id, FAT.APPLICATION_NAME, fdi.status, fdi.patch_level
FROM FND_APPLICATION_TL FAT, fnd_product_installations FDI
WHERE FDI.APPLICATION_ID = FAT.APPLICATION_ID
and fdi.status in ('I', 'S')
Note: Status 'I' meaning installed and status 'S' meaning shared.



12. How to determine database character set?

select value from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';

The following scripts will provide NLS parameter and value for database, instance and session.

select * from nls_database_parameters;
select * from nls_instance_parameters;
select * from nls_session_parameters;



13. How to check the indexes on a table?

Example:

select index_owner owner, table_name tab, index_name ind, column_name colu, column_position position
from DBA_IND_COLUMNS
where table_name = 'GL_CODE_COMBINATIONS';


14. How to check for custom triggers on seeded tables?

Example:

select trigger_name, owner
from dba_triggers
where table_name = 'GL_BALANCES';


15. How to get the header file versions for an executable in Unix?

Example 1

Log into UNIX.
> cd $AP_TOP/bin
> strings -a APXXTR |grep Header
Example 2

> cd $RG_TOP/bin
> Strings -a RGRARG |grep Header

The above will provide the versions of all the header files in those executables.

Note: the command adident (in unix, windows and other OS) can also be used to provide the file versions.


Sunday, November 17, 2013

Application Blocked by Security Settings

Application Blocked by Security Settings

Applies to:
Java SE JDK and JRE - Version 7 and later
Information in this document applies to any platform.
Goal

Why do I get a popup that says, "Application Blocked by Security Settings... Your security settings have blocked an application from running with an insecure or expired jre," on Java SE 7 update 21?

Solution

There are three recent changes involved that would change this behavior.

First, beginning with Java SE 7 update 10 (Java 7u10), if you are running on any Java 7 update other than the latest update, or if your JRE is past its built-in expiration date, your Java version is considered insecure. For example, when 7u25 released, the 7u21 and older updates are now considered insecure.  Please see the Java 7u10 Release Notes and the Setting the Security Level of the Java Client documentation for more information.

Second, there are stricter rules in 7u21 regarding code signing. See the Code Signing documentation for more information.

Third, the default Java Control Panel Security setting changed from 'Medium' to 'High' in 7u21. These security settings will change how your application behaves depending on whether the application is signed by a Certificate Authority (CA), self-signed, or unsigned, and also depending on whether you're attempting to run the applet on a secure JRE or an insecure/expired JRE. See Java Control Panel - Security documentation for a description of all the behavior scenarios per security setting.

There are three ways to avoid the applet from being blocked:


1) Sign your applet with a certificate from a Certificate Authority (CA) - the applet will run with a single verification prompt to the user.
2) Update to 7u25 or greater - unsigned sandbox applets will run but emit a multi-click prompt for the user to verify and accept the risks of running an unsigned applet.
3) Lower the security slider to Medium - the unsigned sandbox applet will run but emit a multi-click prompt for the user to verify and accept the risks of running the unsigned applet.

References
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp.html#security
http://www.oracle.com/technetwork/java/javase/tech/java-code-signing-1915323.html
NOTE:1531711.1 - "Your Java Applet Is Insecure" - Java SE Applet Security Warning Dialogs
NOTE:1553875.1 - Handling the New JRE Security Dialogs
NOTE:1549611.1 - New Java SE 7u21 Security Features May Emit Security Warning Dialogs
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/client-security.html
http://www.oracle.com/technetwork/java/javase/7u-relnotes-515228.html

Friday, November 15, 2013

Patch 12312729 Fails To Apply Due To ORA-01722: Invalid Number

Patch 12312729 Fails To Apply Due To ORA-01722: Invalid Number

Oracle Project Foundation - Version 12.1.3 to 12.1.3 [Release 12.1]
Information in this document applies to any platform.
SYMPTOMS



Patch 12312729 is failing while running XDF files with the following errors.
     FAILED: file pji_pa_xbs_denorm_t.xdf on worker  1.
     FAILED: file pji_pjp_wbs_header_t.xdf on worker  2.
     FAILED: file pji_xbs_denorm_t.xdf on worker  3.

Below is the error message:
  Performing AOL meta data updates
  Error during upload of Fnd_Columns
  ORA-1722: invalid number
  ORA-6512: at "APPS.FND_XDFDICTIONARY_PKG", line 214
  ORA-6512: at "APPS.FND_XDFDICTIONARY_PKG", line 1832
  ORA-1403: no data found
  ORA-6512: at line 1
CAUSE

Bug:12793290 PATCH 12312729 FAILS TO APPLY DUE TO ORA-1722: INVALID NUMBER



ATG patch had provided a fix for this issue. After which PJI xdfs had to be re-extracted.


SOLUTION

To implement the solution, please execute the following steps:

Download patch:12887533 from MyOracleSupport.
Apply the patch per the readme instructions.
Retest the issue.
REFERENCES

BUG:12793290 - PATCH 12312729 FAILS TO APPLY DUE TO ORA-01722: INVALID NUMBER

Thursday, November 14, 2013

EBS DBA Scripts

PATCH related scripts

/* Query to find out if any patch except localisation patch is applied or not, if applied, that what all drivers it

contain and time of it’s application*/

select A.APPLIED_PATCH_ID, A.PATCH_NAME, A.PATCH_TYPE, B.PATCH_DRVIER_ID, B.DRIVER_FILE_NAME, B.ORIG_PATCH_NAME,

B.CREATION_DATE, B.PLATFORM, B.SOURCE_CODE, B.CREATIONG_DATE, B.FILE_SIZE, B.MERGED_DRIVER_FLAG, B.MERGE_DATE from

AD_APPLIED_PATCHES A, AD_PATCH_DRIVERS B where A.APPLIED_PATCH_ID = B.APPLIED_PATCH_ID and A.PATCH_NAME = ‘’

/* To know that if the patch is applied successfully, applied on both node or not, start time of patch application and end

time of patch application, patch top location , session id … patch run id */

select D.PATCH_NAME, B.APPLICATIONS_SYSTEM_NAME, B.NAME, C.DRIVER_FILE_NAME, A.PATCH_DRIVER_ID, A.PATCH_RUN_ID,

A.SESSION_ID, A.PATCH_TOP, A.START_DATE, A.END_DATE, A.SUCCESS_FLAG, A.FAILURE_COMMENTS from AD_PATCH_RUNS A, AD_APPL_TOPS

B, AD_PATCH_DRIVERS C, AD_APPLIED_PATCHES D where A.APPL_TOP_ID = B.APPL_TOP_ID AND A.PATCH_DRIVER_ID = C.PATCH_DRIVER_ID

and C.APPLIED_PATCH_ID = D.APPLIED_PATCH_ID and A.PATCH_DRIVER_ID in (select PATCH_DRIVER_ID from AD_PATCH_DRIVERS where

APPLIED_PATCH_ID in (select APPLIED_PATCH_ID from AD_APPLIED_PATCHES where PATCH_NAME = ‘’)) ORDER BY 3;


* To get file version of any application file which is changed through patch application */

select A.FILE_ID, A.APP_SHORT_NAME, A.SUBDIR, A.FILENAME, max(B.VERSION) from AD_FILES A, AD_FILE_VERSIONS B where

A.FILE_ID = B.FILE_ID and B.FILE_ID = 86291 group by A.FILE_ID, A.APP_SHORT_NAME, A.SUBDIR, A.FILENAM

/* To get information related to how many time driver file is applied for bugs */

select * from AD_PATCH_RUN_BUGS where BUG_ID in (select BUG_ID from AD_BUGS where BUG_NUMBER = ‘’

/* To find latest patchset level for module installed */

select APP_SHORT_NAME, max(PATCH_LEVEL) from AD_PATCH_DRIVER_MINIPKS GROUP BY APP_SHORT_NAME

/* To find what is being done by the patch */

select A.BUG_NUMBER “Patch Number”, B. PATCh_RUN_BUG_ID “Run Id”,D.APP_SHORT_NAME appl_top, D.SUBDIR, D.FILENAME, max

(F.VERSION) latest, E.ACTION_CODE action from AD_BUGS A, AD_PATCH_RUN_BUGS B, AD_PATCH_RUN_BUG_ACTIONS C, AD_FILES D,

AD_PATCH_COMMON_ACTIONS E, AD_FILE_VERSIONS F where A.BUG_ID = B.BUG_ID and B.PATCH_RUN_BUG_ID = C.PATCH_RUN_BUG_ID and

C.FILE_ID = D.FILE_ID and E.COMMON_ACTION_ID = C.COMMON_ACTION_ID and D.FILE_ID = F.FILE_ID and A.BUG_NUMBER = ‘’ and

B.PATCH_RUN_BUG_ID = ‘ < > ‘ and C.EXECUTED_FLAG = ‘Y’ GROUP BY A.BUG_NUMBER, B.PATCH_RUN_BUG_ID, D. APP_SHORT_NAME,

D>SUBDIR, D.FILENAME, E.ACTION_CODE

/* Second Query to know, what all has been done during application of PATCH */
Select J.PATCh_NAME, H.APPLICATIONS_SYSTEM_NAME Instance_Name, H.NAME, I.DRIVER_FILE_NAME, D.APP_SHORT_NAME appl_top,

D.SUBDIR, D.FILENAME, max(F.VERSION) latest, E.ACTION_CODE action from AD_BUGS A, AD_PATCH_RUN_BUGS B,

AD_PATCH_RUN_BUG_ACTIONS C, AD_FILES D, AD_PATCH_COMMON_ACTIONS E, AD_FILE_VERSIONS F, AD_PATCH_RUNS G, AD_APPL_TOPS H,

AD_PATCH_DRIVERS I, AD_APPLIED_PATCHES J where A.BUG_ID = B.BUG_ID and B.PATCH_RUN_BUG_ID = C.PATCH_RUN_BUG_ID and

C.FILE_ID = D.FILE_ID and E.COMMON_ACION_ID = C.COMMON_ACTION_ID and D.FILE_ID = F.FILE_ID and G.APPL_TOP_ID =

H.APPL_TOP_ID and G.PATCH_DRIVER_ID = I.PATCH_DRIVER_ID and I.APPLIED_PATCH_ID = J.APPLIED_PATCH_ID and B.PATCH_RUN_ID =

G.PATCH_RUN_ID and C.EXECUTED_FLAG = ‘Y’ and G.PATCH_DRIVER_ID in (select PATCH_DRIVER_ID from AD_PATCH_DRIVERS where

APPLIED_PATCH_ID in (select APPLIED_PATCH_ID from AD_APPLIED_PATCHES where PATCH_NAME = ‘’)) GROUP BY J.PATCH_NAME,

H.APPLICATINS_SYSTEM_NAME, H.NAME, I.DRIVER_FILE_BNAME, D.APP_SHORT_NAME, D.SUBDIR, D.FILENAME, E.ACTION_CODE


/* To find Merged patch Information from database in Oracle Applications */
select bug_number from ad_bugs where bug_id in ( select bug_id from ad_comprising_patches where patch_driver_id =(select

patch_driver_id from ad_patch_drivers where applied_patch_id =&n) );

/* Script to find out Patch level of mini Pack */
Select product_version,patch_level from FND_PROUDCT_INSTALLATIONS where patch_level like ‘%&shortname%’;
Replace short name by name of Oracle Apps Minipack for which you want to find out Patch level . ex.
AD – for Applications DBA
GL – for General Ledger
PO – Purchase Order

Query to check .Autoconfig patch Level

11i

SET head off Lines 120 pages 100
col p_num format A65
col bug_number format A10
col patch_name format A10
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 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'
) p_num, 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 ' ,'5456078' ,'5473858' ,'5478710' ,'5759055' ,'5903765' ,'5985992' );


R12

===


SET head off Lines 120 pages 100
col p_num 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'

,'6329757' ,'R12.TXK.A.DELTA.4'
,'6145693 ' ,'R12 RAPIDCLONE CONSOLIDATED FIXES JAN/2008'
) p_num, last_update_date
FROM ad_bugs
WHERE bug_number IN ( '4494373' ,'5872965' ,'5909746' ,'5917601' ,'6077487' ,'6145693 ','6329757' );


Query to check AD Patch level

11i

==

SET head off Lines 120 pages 100
col p_num format A65
col bug_number format A10
col patch_name format A10


select bug_number, decode(bug_number,
'1351004' '11i.AD.A'
,'1460640' ,'11i.AD.B'
,'1475426' ,'11i.AD.C'
,'1627493' ,'11i.AD.D'
,'1945611' ,'11i.AD.E'
,'2141471' ,'11i.AD.F'
,'2344175' ,'11i.AD.G'
,'2673262' ,'11i.AD.H'
,'4038964' ,'11i.AD.I.1'
,'4229931' ,'11i.AD.I.2'
,'4337683' ,'11i.AD.I.2'
,'4502904' ,'11i.AD.I.3'
,'4605654' ,'11i.AD.I.4 Delta.4'
,'4712847' ,'11i.AD.I.3'
,'4712852' ,'11i.AD.I.4'
,'5161676' ,'11i.AD.I.5'
,'5161680' ,'11i.AD.I.5'

,'6502079' ,'11i.AD.I.Delta.6'

,'6502082' ,'11i.AD.I.6'

) p_num, last_update_date
FROM ad_bugs
WHERE bug_number IN ( '1351004' '1460640' '1475426' '1627493' '1945611' '2141471' '2344175' '2673262' '4038964' '4229931'

'4337683' '4502904' '4605654' '4712847' '4712852' '5161676' '5161680','6502079','6502082' );



R12

==



SET head off Lines 120 pages 100
col p_num format A65
col bug_number format A10
col patch_name format A10

select bug_number, decode(bug_number,
'4502962' 'R12.AD.A'
,'5905728' ,'R12.AD.A.1'
,'6014659' ,'R12.AD.A.2'

,'6272715' ,'R12.AD.A.3'

,'6510214' ,'R12.AD.A.4'
) p_num, last_update_date
FROM ad_bugs
WHERE bug_number IN ( '4502962' '5905728' '6014659','6272715','6510214' );


Query to Check ATG (Techstack) Patch level

11i

===

SET head off Lines 120 pages 100
col p_num format A65
col bug_number format A10
col patch_name format A10
select bug_number, decode(bug_number,
'3438354', '11i.ATG_PF.H'
,'4017300' ,'11i.ATG_PF.H.RUP1'
,'4125550' ,'11i.ATG_PF.H.RUP2'
,'4334965' ,'11i.ATG_PF.H RUP3'
,'4676589' ,'11i.ATG_PF.H RUP4'
,'5382500' ,'11i.ATG_PF.H RUP5 HELP'
,'5473858' ,'11i.ATG_PF.H.5'
,'5674941' ,'11i.ATG_PF.H RUP5 SSO Integrat'
,'5903765' ,'11i.ATG_PF.H RUP6'
,'6117031' ,'11i.ATG_PF.H RUP6 SSO 10g Integration'
,'6330890' ,'11i.ATG_PF.H RUP6 HELP'
) p_num, last_update_date
FROM ad_bugs
WHERE bug_number
IN ( '3438354', '4017300', '4125550', '4334965', '4676589', '5382500', '5473858', '5674941', '5903765', '6117031',

'6330890' );


R12
===
SET head off Lines 120 pages 100
col p_num format A65
col bug_number format A10
col patch_name format A10

select bug_number, decode(bug_number,
'5917344', 'R12.ATG_PF.A.DELTA.2',
'6077669', 'R12.ATG_PF.A.DELTA.3',
'6272680', 'R12.ATG_PF.A.DELTA.4 '
) p_num, last_update_date
FROM ad_bugs
WHERE bug_number
IN ('5917344', '6077669', '6272680');


Query to check Product patch levels

set linesize 1000
column APPS format a10
select decode(nvl(a.APPLICATION_short_name,'Not Found'),
'SQLAP','AP','SQLGL','GL','OFA','FA',
'Not Found','id '||to_char(fpi.application_id),
a.APPLICATION_short_name) apps,
decode(fpi.status,'I','Installed','S','Shared',
'N','Inactive',fpi.status) status,
fpi.product_version,
nvl(fpi.patch_level,'-- Not Available --') Patchset,
to_char(fpi.last_update_date,'dd-Mon-RRRR') "Update Date"
from fnd_oracle_userid o, fnd_application a, fnd_product_installations fpi
where fpi.application_id = a.application_id(+)
and fpi.oracle_id = o.oracle_id(+)
order by 1,2
/

Running the following query will tell you which family pack of HRMS you are on in 11i.

SELECT ‘HR_PF.’ ||
DECODE (BUG_NUMBER,’2115771' ,’A(2115771)’,
‘2268451' ,’B(2268451)’,
‘2502761' ,’C(2502761)’,
‘2632500' ,’D(2632500)’,
‘2803988' ,’E(2803988)’,
‘2968701' ,’F(2968701)’,
‘3116666' ,’G(3116666)’,
‘3233333' ,’H(3233333)’,
‘3127777' ,’I(3127777)’,
‘3333633' ,’J(3333633)’,
‘3500000' ,’K(3500000)’,
‘5055050' ,’K RUP1(5055050)’,
‘5337777' ,’K RUP2(5337777)’,
‘6699770' ,’K RUP3(6699770)’,
‘7666111' ,’K RUP4(7666111)’) ||
‘ patchset is installed ‘ “HR Family Pack”,
to_char(last_update_date,’DD-MON-YYYY HH24:MI:SS’) “DATE APPLIED”
FROM AD_BUGS
WHERE BUG_NUMBER in (‘2115771',’2268451',’2502761',’2632500',’2803988',
‘2968701',’3116666',’3233333',’3127777',’3333633',’3500000', ‘5055050',
‘5337777',’6699770',’7666111')
ORDER BY BUG_NUMBER DESC
/


To find localization patches are applied.select * from jai_applied_patches where patch_number = 7361928;

How to check whether the product is install,shared and Not installed in Apps.
select t.application_name
, t.application_id
, i.patch_level
, decode(i.status,’I',’Fully Installed’,
‘N’,'Not Installed’,'S’,'Shared’,'Undetermined’) status
from fnd_product_installations i
, fnd_application_vl t
where i.application_id = t.application_id
order by t.application_id;


/* To find the latest application version */

select ARU_RELEASE_NAME||'.'||MINOR_VERSION||'.'||TAPE_VERSION version, START_DATE_ACTIVE updated,ROW_SOURCE_COMMENTS "how

it is done", BASE_RELEASE_FLAG "Base version" FROM AD_RELEASES where END_DATE_ACTIVE IS NULL


/* to find the base application version */

select ARU_RELEASE_NAME||'.'||MINOR_VERSION||'.'||TAPE_VERSION version, START_DATE_ACTIVE when updated,

ROW_SOURCE_COMMENTS "how it is done" from AD_RELEASES where BASE_RELEASE_FLAG = 'Y'


/* To find all available application version */

select ARU_RELEASE_NAME||'.'||MINOR_VERSION||'.'||TAPE_VERSION version, START_DATE_ACTIVE when updated, END_DATE_ACTIVE

"when lasted", CASE WHEN BASE_RELEASE_FLAG = 'Y' Then 'BASE VERSION' ELSE 'Upgrade' END "BASE/UPGRADE",

ROW_SOURCE_COMMENTS "how it is done" from AD_RELEASES

It shows patches applied to multiple application tiers - this sql shows if the 11.5.10.2 maintenance pack has been applied

(patch number 3480000)

DECLARE
TYPE p_patch_array_type is varray(30) of varchar2(10);
p_patchlist p_patch_array_type;
p_appltop_name varchar2(50);
p_patch_status varchar2(15);
p_appl_top_id number;
p_result varchar2(15);
p_instance varchar2(15);
gvAbstract varchar2(240) := NULL;
CURSOR alist IS
select appl_top_id, name from ad_appl_tops;
procedure println(msg in varchar2)
is
begin
dbms_output.enable(1000000);
dbms_output.put_line(msg);
end;
BEGIN
select instance_name into p_instance from v$instance;
open alist;
p_patchlist:= p_patch_array_type('3480000');
LOOP
FETCH alist INTO p_appl_top_id,p_appltop_name;
EXIT WHEN alist%NOTFOUND;
IF p_appltop_name NOT IN ('GLOBAL','*PRESEEDED*')
THEN
println(p_appltop_name || ' - - - ' || p_instance );
println('=============================');
for i in 1..p_patchlist.count
loop
begin
select ABSTRACT into gvAbstract
from FND_UMS_BUGFIXES
where BUG_NUMBER = p_patchlist(i);
exception
when NO_DATA_FOUND then
gvAbstract := NULL;
end;
p_patch_status := ad_patch.is_patch_applied('11i',p_appl_top_id,p_patchlist(i));
case p_patch_status
when 'EXPLICIT' then
p_result := 'APPLIED';
else
p_result := p_patch_status;
end case;
println('Patch ' || p_patchlist(i)|| ' - ' || substr(gvAbstract,1,25) || ' - was ' || p_result);
end loop;
END if;
println('.');
END LOOP;
close alist;
END;
/

To check if specific bug fix is applied, you need to query the AD_BUGS table only. This table contains all patches and all

superseded patches ever applied:

select ab.bug_number, ab.creation_date
from ad_bugs ab
where ab.bug_number = '&BugNumber';

Retrieve basic information regarding patch applied, useful when you need to know when and where (node) you applied

specific patch:
select aap.patch_name, aat.name, apr.end_date
from ad_applied_patches aap,
ad_patch_drivers apd,
ad_patch_runs apr,
ad_appl_tops aat
where aap.applied_patch_id = apd.applied_patch_id
and apd.patch_driver_id = apr.patch_driver_id
and aat.appl_top_id = apr.appl_top_id
and aap.patch_name = '&PatchName';

Run the following query, it will show you all modules affected by specific patch in one click…
select distinct aprb.application_short_name as "Affected Modules"
from ad_applied_patches aap,
ad_patch_drivers apd,
ad_patch_runs apr,
ad_patch_run_bugs aprb
where aap.applied_patch_id = apd.applied_patch_id
and apd.patch_driver_id = apr.patch_driver_id
and apr.patch_run_id = aprb.patch_run_id
and aprb.applied_flag = 'Y'
and aap.patch_name = '&PatchName';

One of the ways to find out the exact patchset that was applied to your database successfully, is you can query from

props$ table. This table is owner by sys. Logon as system or sys and select from props$ table. This table has fields like

name, values and comments. The name columne NLS_RDBMS_VERSION has the value equilent to the patchset applied to that

database.

SQL> select name, value$ from props$;
NAME VALUE$
NLS_RDBMS_VERSION 7.3.4.3.1

Query to find languages installed or not:

Select distinct NLS_LANGUAGE, LANGUAGE_CODE,NLS_TERRITORY,INSTALLED_FLAG
from fnd_languages
where INSTALLED_FLAG = 'I' or INSTALLED_FLAG = 'B'
ORDER BY NLS_LANGUAGE

Select distinct NLS_LANGUAGE, LANGUAGE_CODE,NLS_TERRITORY,INSTALLED_FLAG
from fnd_languages
ORDER BY NLS_LANGUAGE

Tech stack validation:
Ensure that your current working directory is
patch unzipped location]/fnd/patch/115/bin

on Unix or Linux:
Ensure "APPLRGF" variable is set in environment. If not, set it to the same value as "APPLTMP".
./txkprepatchcheck.pl -script=ValidateRollup
-outfile=$APPLTMP/txkValidateRollup.html
-appspass=
or
./txkprepatchcheck.pl -script=ValidateRollup -outfile=$APPLTMP/txkValidateRollup.txt -reporttype=text -appspass=crepti12

Query to check customizations are affected by a patch
This script will read cr_customization.txt file
xx_custom=/local/dba/scripts_vis/cr_customization.txt
patch_loc=/patch11i/vis_patches/6329356
echo "checking for customizations under ${patch_loc}"
cd ${patch_loc}
cat ${xx_custom} | while read line
do
if [ "$line" != "" ];
then
grep -i "$line" /vis/applmgr/11510/admin/VIS/log/u5014514.drv.log

fi
done

To knowd all the patdhes applied from 01-Sep-2005 to 28-Jan-2006. i.e b/w 2 dates use
$AD_TOP/patch/115/sql/adpchlst.sql

To check to make sure the correct data was installed run the following script this script can also be used to check if

datainstaller was run successfully:
select application_short_name, Legislation_code, status, action, last_update_date
from hr_legislation_installations
where application_short_name in ('PER','PAY');

To check if DB version is 32 or 64 bit:
a.) conn to sqlplus if it is 64 ,then will show
b.)select address from v$sql where rownum<2 p="">c.)go to ORACLE_HOME/bin
do a file oracle.

Commands usefull during Patch analysis
select bug_number from ad_bugs where bug_number='&t';
select to_char(CREATION_DATE,'dd-mon-yyyy hh24:mi:ss') from ad_bugs where bug_number=’&t’;
select to_char(LAST_UPDATE_DATE,'dd-mon-yyyy hh24:mi:ss')from ad_bugs where bug_number='&t’;
select patch_level from fnd_product_installations where patch_level like '&p';
select release_name from fnd_product_groups;
select DRIVER_FILE_NAME from ad_patch_drivers where DRIVER_FILE_NAME like '%3117672%';


For querrying the MERGED PATCHES you can use the following script which will show which merged patches are applied for

which language
select a.PATCH_DRIVER_ID,DRIVER_FILE_NAME,c.bug_id,d.language
from ad_patch_drivers a,AD_COMPRISING_PATCHES b, ad_bugs
c,AD_PATCH_DRIVER_LANGS d
where c.bug_number = '&no'
and c.bug_id = b.bug_id
and a.PATCH_DRIVER_ID = b.patch_driver_id
and a.patch_driver_id = d.patch_driver_id;

we can querry the ad_bugs for the US language version patches


To know which services are running on what nodes
select SUPPORT_CP,SUPPORT_FORMS,SUPPORT_WEB,SUPPORT_ADMIN from fnd_nodes;


To Know All the Drivers (NLS) language applied to Instance?

col PATCH_NAME format a10
col PATCH_TYPE format a10
col DRIVER_FILE_NAME format a15
col PLATFORM format a10
select AP.PATCH_NAME, AP.PATCH_TYPE, AD.DRIVER_FILE_NAME, AD.CREATION_DATE, AD.PLATFORM,AL.LANGUAGE
from AD_APPLIED_PATCHES AP, AD_PATCH_DRIVERS AD, AD_PATCH_DRIVER_LANGS AL
where AP.APPLIED_PATCH_ID = AD.APPLIED_PATCH_ID
and AD.PATCH_DRIVER_ID = AL.PATCH_DRIVER_ID
and AP.PATCH_NAME = '&No';"

select aap.patch_name,count(*) from AD_patch_driver_langs apdl, ad_applied_patches aap, AD_PATCH_DRIVERS apd
where apdl.patch_driver_id=apd.patch_driver_id and
aap.applied_patch_id=apd.applied_patch_id and
apdl.language <>'US'
group by aap.patch_name
having count(*) > 0 and count(*)<10 --="" 10="" 9="" changed="" from="" nbsp="" p="" to="">order by patch_name"

To see NLS patches applied:
select language,driver_file_name from AD_PATCH_DRIVERS adp,AD_PATCH_DRIVER_LANGS adpl where adp.patch_driver_id =

adpl.patch_driver_id
and driver_file_name like '%&a%' order by 1;

Script for Patch Log Analysis :
@$AD_TOP/patch/115/sql/adphrept.sql 1 ALL ALL 03/01/2004 07/05/2004 ALL ALL ALL ALL ALL N N N N N sample.txt


To know patches applied
select distinct(patch_name) from ad_applied_patches

AD Patches Tables
AD_APPLIED_PATCHES
AD_PATCH_DRIVERS
AD_PATCH_RUNS
AD_APPL_TOPS
AD_RELEASES
AD_FILES
AD_FILE_VERSIONS
AD_PATCH_RUN_BUGS
AD_BUGS
AD_PATCH_COMMON_ACTIONS
AD_PATCH_RUN_BUG_ACTIONS
ad_comprising_patches

FND Tables
FND_APPL_TOPS
FND_LOGINS
FND_USER
FND_DM_NODES
FND_TNS_ALIASES
FND_NODES
FND_RESPONSIBILITY
FND_DATABASES
FND_UNSUCCESSFUL_LOGINS
FND_LANGUAGES
FND_APPLICATION
FND_PROFILE_OPTION_VALUES


To know which driver patch has been applied:
select DRIVER_FILE_NAME from AD_PATCH_DRIVERS;
select DRIVER_FILE_NAME from AD_PATCH_DRIVERS where DRIVER_FILE_NAME like '%2408149%';


To check if multicurrency is present
select MULTI_CURRENCY_FLAG from fnd_product_groups;
M
-
Y

Purging timing information for prior sessions.
sqlplus -s APPS/***** @$AD_TOP/admin/sql/adtpurge.sql 10 1000

Snapshot sql
sqlplus -s &un_apps/***** @$AD_TOP/patch/115/sql/adbkflsn.sql 111

Maintenance mode
$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE
$AD_TOP/patch/115/sql/adsetmmd.sql DISABLE
select fnd_profile.value('APPS_MAINTENANCE_MODE') from dual;
FND_PROFILE.VALUE('APPS_MAINTENANCE_MODE')
--------------------------------------------------------------------------------
MAINT


to check the product is registered
select * from applsys.fnd_application where application_short_name='BNE';


adutconf.sql --- script used to generate Oracle Applications Database Configuration Report
Location : $AD_TOP/sql/adutconf.sql
Output : $AD_TOP/sql/adutconf.lst

PRODUCT VERSIONS (AD,PO,....)
select patch_level from fnd_product_installations where patch_level like '%&PRODUCT_NAME%';
select PATCH_LEVEL from fnd_product_installations where PATCH_LEVEL like '%AD%';
select PATCH_LEVEL,status from fnd_product_installations where PATCH_LEVEL like '%ICX%';

applying opatch without inventory
opatch apply -no_inventory
$ORACLE_HOME/cfgtoollogs/opatch/opatch-2009_Oct_29_22-33-37-CST_Thu.log --> opatch log location


To find opatch version:
/OPatch/
./opatch version


opatch options:
$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./9352164
opatch apply -local: apply patch only on local node in clusterdatabase environment
opatch apply -jdktop : if opatch could not find the path of jdk
opatch apply -no_inventory : Apply patch without updating inventory

to find the opatch that are installed
cd /OPatch/.patch_storage

OR cd /unioac/oracle/product/920/OPatch/
./opatch lsinventory
If it fails please check the path is correct in /etc/oraInst.loc or /var/opt/oracle/oraInst.loc

From CPUJan2006 onwards, for the OPatch installed CPU’s it is possible to do the following
select * from registry$history;

ACTION_TIME ACTION NAMESPACE VERSION ID COMMENTS
—————————- —— ——— ———- ——— ———-
09-MAY-07 07.17.43.371379 AM CPU SERVER 10.2.0.2.0 5689957 CPUJan2007"

CPU will create directories and files like %ORACLE_HOME%\cpu\CPUOct2005\patch.log or

$ORACLE_HOME/cpu/CPUOct2005/install.log

Syntax to merge set of patches
admrgpch -s temp -d 3171663_NLS
admrgpch -s merge_nov11 -d merge_cnv1_nov11 -logfile merge_cnv1_nov11.log


To know products and patches present in system
/SQL/adutconf.lst



adpatch options
Adpatch no longer checks for prerequisite patches as part of the patch
to force this check:
adpatch options=prereqs

To see what the patch does without applying it (a good idea when
patching in a production environment)
adpatch apply=no"

To bypass the irritating maintenance mode requirement run:
adpatch options=hotpatch"

How do you hide apps password during adpatching?
Ans:
adpatch flags=hidepw"
adpatch options=noprereq
adpatch options=nocopyportion,nogenerateportion i.e to apply only database portion of u driver on db/admin node
options=nocompilejsp
on admin1 opations=nocompiledb, on admin 2 options=nocompiledb,nodatabaseportion, on web1

options=nocompiledb,nodatabaseportion, on web2 options=nocompiledb,nodatabaseportion
opatch options=nofilecheck (for not checking version of patch in database from ad_patch_version table
adpatch options=nodatabaseportion ( this is required while applying patches on external nodes )
adpatch options=nodatabaseportion,nocompiledb,nocompilejsp,norevcache

adpatch options :

adpatch options=nocompilejsp
adpatch options=forcecopy
adpatch options=noprereq,hotpatch,nocompilejsp

adpatch options = ""hotpatch,noautoconfig,nocompilejsp"".
adpatch options = ""hotpatch,nodatabaseportion,nocompilejsp,noautoconfig"".

adpatch options=nocheckfile,hotpatch,nocopyportion,nogenerateportion
adpatch options = ""novalidate""

On external Webnode:
adpatch options=nogenerateportion,nodatabaseportion"

Verify that you do not want to restart the previous failed session.
Start AutoPatch with the abandon=yes option:
UNIX:
$ adpatch defaultsfile=$APPL_TOP/admin/testdb1/def.txt logfile=7654321.log \
patchtop=$APPL_TOP/patches/7654321 driver=c7654321.drv workers=3 \
interactive=no abandon=yes



Create the defaults file
adpatch defaultsfile=$APPL_TOP/admin/testdb1/adpatchdef.txt

Create Defaultsfile.txt

adpatch defaultsfile=$APPL_TOP/admin/$TWO_TASK/defaults.txt

( You can keep this txt file in any location of your choice)
Now abort autopatch section at point where it asks for patch directory by ctrl +c or ctrl+d
Now check if this file exists
You have to do above steps only once in an environment to create defaults file.
====================================
Apply as per below-

time adpatch \
defaultsfile=$APPL_TOP/admin/$TWO_TASK/defaults.txt \
logfile=u5394384.log \
patchtop=/d31/app/upgrade_115102/BASE_PATCHES/5394384 \
driver=u5394384.drv \
workers=8 \
interactive=yes \
abandon=yes


R12
PAA helps users to track and perform manual steps during patching Executed by invoking
$AD_TOP/bin/admsi.pl…
When patches are merged using admrgpch, PAA merges readme files and this avoids redundant tasks. Also it simplifies patch

application by combining all manual steps


To find some products patch level

ATG rollup patch level by pointing your browser to this URL -> http://hostname:port/OA_HTML/OAInfo.jsp

How to Find iReceviables Patchset Level on 11i Instance [ID 263942.1]
[ID 307564.1]

How to Find iReceviables Patchset Level on 11i Instance [ID 263942.1]

How To Determine Which HZ-Trading Community Architecture (TCA), Oracle Customers Online (IMC), Oracle Credit Management

(OCM), TAX (AR), CUs And Framework

(FWK) Patchset Has Been Applied? [ID 262680.1]



Change the Patch Wizard directory patch
Login to OAM

Navigate to Patch Wizard and then click Go Button
Under Patch Wizard Tasks you will find the below along with 3 more task names
Task Name
Patch Wizard Preferences

Click the Icon under Tasks

then change the value of Staging directory from /d01/applmgr/prodappl/pwizard to the /d01/apreprod/preprodappl/pwizard

you trace 10.1.0.6 OUI by running the following command
/usr/bin/truss -aefo /tmp/oui.trc ./runInstaller

// This will bypass the OS check //

runInstaller eg
$ JAVA_HOME=/u01/app/oracle/product/jdk1.6.0_16; export JAVA_HOME

$ ./runInstaller -jreLoc $JAVA_HOME

runInstaller -ignoreSysPrereqs

Query used to view the patch level status of all modules
SELECT a.application_name,
DECODE (b.status, 'I', 'Installed', 'S', 'Shared', 'N/A') status,
patch_level
FROM apps.fnd_application_vl a, apps.fnd_product_installations b
WHERE a.application_id = b.application_id;

Check Current Applied Patch
SELECT patch_name, patch_type, maint_pack_level, creation_date
FROM applsys.ad_applied_patches
ORDER BY creation_date DESC

To know if OTA is running or not:
@$ECX_TOP/patch/115/sql/ecxver.sql

patchsets.sh
ftp://oracle-ftp.oracle.com/apps/patchsets/PATCHSET_COMPARE_TOOL/patchsets.sh
ftp ftp.oracle.com
login as an anonymous user, and then:
cd support/outgoing/PATCHSET_COMPARE_TOOL
mget patchsets.sh