Applies to:
Oracle Application Object Library - Version: 11.5.9 to 11.5.10.2
Information in this document applies to any platform.
Goal
When you shutdown the managers with the abort option does it submit a concurrent request that is run straight away with a high priority?
Similarly you shutdown with the normal option, does this job have to wait on an available manager or does it run straight away?
Solution
If you shutdown the concurrent managers with the ABORT option ( using CONCSUB), it will run a concurrent request with a priority of -75 to terminate all requests and shutdown the managers. This is the most important priority for a concurrent request and means that the ABORT request will be run before all other concurrent requests .
If you shutdown the concurrent managers normally ( using startmgr), it will run a concurrent manager with a priority of 0. This is very high priority for concurrent requests.
By default , all the concurrent request have a priority of 50 .
It means that the SHUTDOWN request will be run before all other concurrent requests except the ABORT request .
( -75 is a higher priority than 0 , 0 is a higher priority than 50 ) .
Friday, November 19, 2010
How to create a custom concurrent manager
Checked for relevance on 07-JAN-2010
Applications Install 11.5.7 to 12.1.1
* goal: How to create a custom concurrent manager
* fact: Oracle Application Object Library
fix:
1. Navigate to Concurrent / Manager / Define.
2. Manager Field: Custom Manager.
3. Short Name: CUSTOM.
4. Type: Concurrent Manager.
5. Program Library: FNDLIBR.
6. Enter desired cache.
7. Work Shifts: Standard.
8. Enter number of Processes.
9. Provide Specialization Rules (you can include or exclude program, id, user,
types or combination).
10. Save.
11. Navigate to Concurrent / Manager / Administer.
12. Activate the Custom Manager.
Applications Install 11.5.7 to 12.1.1
* goal: How to create a custom concurrent manager
* fact: Oracle Application Object Library
fix:
1. Navigate to Concurrent / Manager / Define.
2. Manager Field: Custom Manager.
3. Short Name: CUSTOM.
4. Type: Concurrent Manager.
5. Program Library: FNDLIBR.
6. Enter desired cache.
7. Work Shifts: Standard.
8. Enter number of Processes.
9. Provide Specialization Rules (you can include or exclude program, id, user,
types or combination).
10. Save.
11. Navigate to Concurrent / Manager / Administer.
12. Activate the Custom Manager.
How does one bypass the approval step of 'Forgot Password' notifications?
How does one bypass the approval step of 'Forgot Password' notifications?
Solution
The password approval process cannot be by-passed in rel 11.5.10.2 as a seeded flow.
To by-pass this, the following public API can be used:
fnd_user_pkg.changepassword(username => rec_req_header.user_name
,newpassword=>l_pwd);
This functionality is available in 12.1.X where password changes do not need to be approved.
Solution
The password approval process cannot be by-passed in rel 11.5.10.2 as a seeded flow.
To by-pass this, the following public API can be used:
fnd_user_pkg.changepassword(username => rec_req_header.user_name
,newpassword=>l_pwd);
This functionality is available in 12.1.X where password changes do not need to be approved.
FSG Transfer Gives ORA-01000: Maximum Open Cursors Exceeded
Problem Description
-------------------
The FSG Transfer program is completing in error with the following message:
ORA-01000: Maximum Open Cursors Exceeded
Is there a script that can be run to determine how many open cursors
exist and what is causing the open cursors?
Solution Description
--------------------
In order to determine how many SQL statements have been parsed AND have an
open cursor use the following query:
SELECT s.osuser, s.username, s.sid, count(*)
FROM v$session s, v$open_cursor oc
WHERE s.saddr = oc.saddr AND
s.username IS NOT NULL
GROUP BY s.osuser, s.username, s.sid;
If there is one user with a large number of cursors open, the following query
can be used to determine the leading edge of the query in question:
SELECT s.username, SUBSTR(oc.sql_text,1,40)
FROM v$session s, v$open_cursor oc
WHERE s.saddr = oc.saddr AND
s.username =;
If all of the sessions are connected with the same username, then change the
last line of the the above query to the following:
s.sid =;
Search Words
------------
RGRXFR
ORA-00604
ORA-06512
-------------------
The FSG Transfer program is completing in error with the following message:
ORA-01000: Maximum Open Cursors Exceeded
Is there a script that can be run to determine how many open cursors
exist and what is causing the open cursors?
Solution Description
--------------------
In order to determine how many SQL statements have been parsed AND have an
open cursor use the following query:
SELECT s.osuser, s.username, s.sid, count(*)
FROM v$session s, v$open_cursor oc
WHERE s.saddr = oc.saddr AND
s.username IS NOT NULL
GROUP BY s.osuser, s.username, s.sid;
If there is one user with a large number of cursors open, the following query
can be used to determine the leading edge of the query in question:
SELECT s.username, SUBSTR(oc.sql_text,1,40)
FROM v$session s, v$open_cursor oc
WHERE s.saddr = oc.saddr AND
s.username =
If all of the sessions are connected with the same username, then change the
last line of the the above query to the following:
s.sid =
Search Words
------------
RGRXFR
ORA-00604
ORA-06512
How to Setup VNC Server with Clipboard Support on RHEL/OEL
How to Setup VNC Server with Clipboard Support on RHEL/OEL [ID 735767.1]
Modified 04-MAR-2009 Type HOWTO Status PUBLISHED
In this Document
Goal
Solution
1. Installation
2. System Configuration
3. Password
4. User Configuration
6. Test
7. Mouse buttons
References
Applies to:
Linux Kernel - Version: 4.4
Linux x86-64
Goal
This article describes how to setup a VNC (Virtual Network Computing ) server with clipboard support on Red Hat Enterprise Linux and Oracle Enterprise Linux.
Solution
1. Installation
Check if vnc-server rpm package is installed on your Linux OS:
rpm -q vnc-server
If it is not there, try to find vnc-server rpm package on Linux OS installation ISO/media and install it:
rpm -ivh
If you have Oracle Enterprise Linux support license and up2date configured, you can get vnc-server from ULN (Unbreakable Linux Network):
up2date -i vnc-server
Please consult ULN and ULN FAQ for how to update your Linux via up2date.
2. System Configuration
To automate the startup of vncserver after boot, the /etc/sysconfig/vncservers must be configured. The syntax of configuration file is:
# VNCSERVERS=":"
# VNCSERVERARGS[]="-geometry -nolisten tcp -nohttpd"
The parameter "VNCSERVERS" indicates a vnc server is started as user on display ":". should be an existing user in the system. You can specify multiple userids to start servers, for example:
VNCSERVERS="1:root 10:oracle"
In the above case, There will be 2 VNC servers on display ":1" and ":10".
By default, the following ports will be opened:
port 5801 for "root", 5810 for "oracle":
- for VNC client connection over HTTP protocol, using a java-enabled browser.
port 5901 for "root", 5910 for "oracle":
- for VNC client connection over RFB protocol (e.g. vncviewer).
port 6001 for "root" 6010 for "oracle":
- for X applications to connect to the VNC server
The parameter "VNCSERVERARGS" specifies the session properties, for full details see the online documentation
man Xvnc
With RHEL5/OEL5, the supplied /etc/sysconfig/vncservers documents how to restrict sessions:
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
# Use "-nohttpd" to prevent web-based VNC clients connecting.
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.
The vncserver is a Linux service, you manage it with "chkconfig" and "service" commands like other services. Refer to Note 551711.1 for enable/disable/start/stop operations. However, further configuration should be done prior to staring the service.
3. Password
Set the vnc access password:
# vncpasswd
Password:
Verify:
Please note the password must be set by each userid named on the "VNCSERVERS=" parameter. If this is not done, the service for the userid will not be started.
The vncpasswd command will also cause directory $HOME/.vnc to be created and populated with required files. Session log files will also be created here.
4. User Configuration
The vncserver service will start a VNC server "Xvnc", which runs script $HOME/.vnc/xstartup. This calls "vncconfig" which provides clipboard support. See the online manual for more information:
man vncconfig
Default xstartup script:
# cat xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
If you follow the instructions "Uncomment the following two lines for normal desktop:" you will lose clipboard support. This is because "/etc/X11/xinit/xinitrc" will invoke “/etc/X11/xinit/Xclients” to setup Gnome or KDE, but command "exec" will terminate the current shell after executing, thus subsequent commands will not be run.
The "twm &" command will invoke a basic window manager. For a more advanced window manager, change the line to one of your choice, e.g.:
# cat xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &
# or "startkde &" for KDE desktop
6. Test
Start the service:
service vncserver start
The service "vncserver" reads /etc/sysconfig/vncservers to find all allowed users and their parameters and then calls /usr/lib/vncserver. This perl script program reads $HOME/.vnc/xstartup to allow you to change the applications run at Xvnc's startup.
Any user also can manually invoke "vncserver" command to start a vnc server on next available port. If vncpasswd has not been run, it will be called.
To access your vnc server, you can use the vncviewer utility
vncviewer:1
Or point your java-enabled browser at port 58xx on the vncserver.
7. Mouse buttons
If you only have a two-button mouse, you may find you are unable to use some Xwindow mouse buttons.
Xwindow provides the ability to change the mapping of the mouse buttons with the "xmodmap" command, for example:
xmodmap -e "pointer = 1 3 2 4 5"
This command will "reverse" buttons 2 and 3
Modified 04-MAR-2009 Type HOWTO Status PUBLISHED
In this Document
Goal
Solution
1. Installation
2. System Configuration
3. Password
4. User Configuration
6. Test
7. Mouse buttons
References
Applies to:
Linux Kernel - Version: 4.4
Linux x86-64
Goal
This article describes how to setup a VNC (Virtual Network Computing ) server with clipboard support on Red Hat Enterprise Linux and Oracle Enterprise Linux.
Solution
1. Installation
Check if vnc-server rpm package is installed on your Linux OS:
rpm -q vnc-server
If it is not there, try to find vnc-server rpm package on Linux OS installation ISO/media and install it:
rpm -ivh
If you have Oracle Enterprise Linux support license and up2date configured, you can get vnc-server from ULN (Unbreakable Linux Network):
up2date -i vnc-server
Please consult ULN and ULN FAQ for how to update your Linux via up2date.
2. System Configuration
To automate the startup of vncserver after boot, the /etc/sysconfig/vncservers must be configured. The syntax of configuration file is:
# VNCSERVERS="
# VNCSERVERARGS[
The parameter "VNCSERVERS" indicates a vnc server is started as user
VNCSERVERS="1:root 10:oracle"
In the above case, There will be 2 VNC servers on display ":1" and ":10".
By default, the following ports will be opened:
port 5801 for "root", 5810 for "oracle":
- for VNC client connection over HTTP protocol, using a java-enabled browser.
port 5901 for "root", 5910 for "oracle":
- for VNC client connection over RFB protocol (e.g. vncviewer).
port 6001 for "root" 6010 for "oracle":
- for X applications to connect to the VNC server
The parameter "VNCSERVERARGS" specifies the session properties, for full details see the online documentation
man Xvnc
With RHEL5/OEL5, the supplied /etc/sysconfig/vncservers documents how to restrict sessions:
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
# Use "-nohttpd" to prevent web-based VNC clients connecting.
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.
The vncserver is a Linux service, you manage it with "chkconfig" and "service" commands like other services. Refer to Note 551711.1 for enable/disable/start/stop operations. However, further configuration should be done prior to staring the service.
3. Password
Set the vnc access password:
# vncpasswd
Password:
Verify:
Please note the password must be set by each userid named on the "VNCSERVERS=" parameter. If this is not done, the service for the userid will not be started.
The vncpasswd command will also cause directory $HOME/.vnc to be created and populated with required files. Session log files will also be created here.
4. User Configuration
The vncserver service will start a VNC server "Xvnc", which runs script $HOME/.vnc/xstartup. This calls "vncconfig" which provides clipboard support. See the online manual for more information:
man vncconfig
Default xstartup script:
# cat xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
If you follow the instructions "Uncomment the following two lines for normal desktop:" you will lose clipboard support. This is because "/etc/X11/xinit/xinitrc" will invoke “/etc/X11/xinit/Xclients” to setup Gnome or KDE, but command "exec" will terminate the current shell after executing, thus subsequent commands will not be run.
The "twm &" command will invoke a basic window manager. For a more advanced window manager, change the line to one of your choice, e.g.:
# cat xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &
# or "startkde &" for KDE desktop
6. Test
Start the service:
service vncserver start
The service "vncserver" reads /etc/sysconfig/vncservers to find all allowed users and their parameters and then calls /usr/lib/vncserver. This perl script program reads $HOME/.vnc/xstartup to allow you to change the applications run at Xvnc's startup.
Any user also can manually invoke "vncserver" command to start a vnc server on next available port. If vncpasswd has not been run, it will be called.
To access your vnc server, you can use the vncviewer utility
vncviewer
Or point your java-enabled browser at port 58xx on the vncserver.
7. Mouse buttons
If you only have a two-button mouse, you may find you are unable to use some Xwindow mouse buttons.
Xwindow provides the ability to change the mapping of the mouse buttons with the "xmodmap" command, for example:
xmodmap -e "pointer = 1 3 2 4 5"
This command will "reverse" buttons 2 and 3
Send mail configuration
To implement the solution, please execute the following steps:
1. Edit /etc/mail/sendmail.mc to have:
define(`SMART_HOST',`')
and
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
Do NOT edit /etc/mail/sendmail.cf as it may cause unexpected results.
(The "DAEMON_OPTIONS" line is a security measure - it allows sendmail to accept e-mail only from the local server. If you do not need otherwise, this is a good security practice. )
2. Regenerate sendmail.cf from sendmail.mc:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
3. Restart the sendmail service:
# service sendmail restart
1. Edit /etc/mail/sendmail.mc to have:
define(`SMART_HOST',`
and
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
Do NOT edit /etc/mail/sendmail.cf as it may cause unexpected results.
(The "DAEMON_OPTIONS" line is a security measure - it allows sendmail to accept e-mail only from the local server. If you do not need otherwise, this is a good security practice. )
2. Regenerate sendmail.cf from sendmail.mc:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
3. Restart the sendmail service:
# service sendmail restart
Tuesday, November 16, 2010
CCM.sql Diagnostic Script for Concurrent Manager
Modified 20-OCT-2010 Type SCRIPT Status PUBLISHED
Checked for relevance on 20-Oct-2010
Applications Install 10.7 to 12.0.6
Overview
--------
This script is made available to Diagnose Common Concurrent Manager issues.
Program Notes
-------------
o Ensure the Script is run within a Sourced Applications Environment
o Copy the body of the script within the 'Code begins here' and
'Code ends here' section
Save as: ccm.sql
o Run by entering the following: sqlplus apps/ @ccm.sql
= valid apps password
References
----------
Note 246584.1 Why do I get Found Dead Process in my Standard Manager Log?
Note 104452.1 Troubleshooting (Concurrent Manager Unix specific)
Note 134007.1 Clean up Concurrent Manager tables "cmclean.sql"
Note 157070.1 Pmon Method does not Change After Running "afimpmon.sql"
Script
Caution
-------
The sample program in this article is provided for educational purposes
only and is NOT supported by Oracle Support Services. It has been tested
internally, however, and works as documented. We do not guarantee that it
will work for you, so be sure to test it in your environment before
relying on it.
Program
-------
- - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - - - - -
REM #########################################################################
REM ## Purpose: Diagnostic Script for Concurrent Manager
REM ## Author: nabil albadin
REM ## Email: nabil.albadin@oracle.com
REM ## Filename: ccm.sql
REM ## Cert: 10.7, 11, 11.5, 12.0
REM ## Note:
REM ## Usage: sqlplus apps/ @ccm.sql
REM ## Output: reqcheck.lst
REM ## Notes:
REM ## Enter value for request ID WHEN PROMPT
REM ##
REM ## $Id: request.sql, v 1.0 4/17/2002 10:22 nalbadin Exp $
REM #########################################################################
spool ccm.lst
prompt Step 1 Checking how many rows in FND_CONCURRENT_REQUEST.
select count(*) from fnd_concurrent_requests;
prompt
-----------------------------------------
prompt Step 2 Checking how many rows in FND_CONCURRENT_PROCESSES table.
select count(*) from fnd_concurrent_processes;
prompt
-----------------------------------------------
prompt Step 3 Checking sys.dual table which should have one and only one row.
select count(*) from sys.dual;
prompt If you have more than one row in sys.dual, please delete it
prompt sql> delete rownum from SYS.DUAL;
Prompt rownum= the row number to delete
prompt
prompt
prompt
---------------------------------------------
prompt Step 4 Checking fnd_dual. There must be at lest one row:
select count(*) from fnd_dual;
prompt If there are no record selected,
prompt Update fnd_dual table to have at lest one record
prompt
----------------------------------------------
prompt Step 5 Checking the Internal Manager queue name "FNDICM" which should be=1
select concurrent_queue_id from fnd_concurrent_queues
where concurrent_queue_name='FNDICM';
prompt
----------------------------------------------
prompt Step 6 Checking for Active processes under the Internal Manager queue
prompt in fnd_concurrent_proceses table:
prompt
select a.concurrent_queue_name
, substr(b.os_process_id,0,10) "OS Proc"
, b.oracle_process_id "Oracle ID"
, b.process_status_code
from fnd_concurrent_queues a
, fnd_concurrent_processes b
where a.concurrent_queue_id=b.concurrent_queue_id
and a.concurrent_queue_name='FNDICM'
and b.process_status_code='A'
order by b.process_status_code;
prompt If any rows found with process_status_code with value = 'A' (= Active)
prompt The internal Manager will not start up ,so to avoide this issue
prompt update these rows to have process_status_code value ='K'(terminated)
prompt
prompt
-----------------------------------------
prompt Step 7 Checking for Active processes under the Standard Manager queue
prompt in fnd_concurrent_proceses table:
prompt
select a.concurrent_queue_name
, substr(b.os_process_id,0,10) "OS Proc"
, b.oracle_process_id "Oracle ID"
, b.process_status_code
from fnd_concurrent_queues a
, fnd_concurrent_processes b
where a.concurrent_queue_id=b.concurrent_queue_id
and a.concurrent_queue_name='STANDARD'
and b.process_status_code='A'
order by b.process_status_code;
prompt If any rows found with process_status_code with value = 'A' (= Active)
prompt The internal Manager will not start up ,so to avoide this issue
prompt update these rows to have process_status_code value ='K'(terminated)
prompt
prompt
------------------------------------------
prompt Step 8 Checking for Active processes under the Conflict Manager queue
prompt in fnd_concurrent_proceses table:
prompt
select a.concurrent_queue_name
, substr(b.os_process_id,0,10) "OS Proc"
, b.oracle_process_id "Oracle ID"
, b.process_status_code
from fnd_concurrent_queues a
, fnd_concurrent_processes b
where a.concurrent_queue_id=b.concurrent_queue_id
and a.concurrent_queue_name='FNDCRM'
and b.process_status_code='A'
order by b.process_status_code;
prompt If any rows found with process_status_code with value = 'A' (= Active)
prompt The internal Manager will not start up ,so to avoide this issue
prompt update these rows to have process_status_code value ='K'(terminated)
prompt
prompt
---------------------------------------------------
prompt Step 9 Checking Actual and Target Processes for Internal Manager:
select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='FNDICM';
prompt If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.
prompt
prompt
--------------------------------------------------------
prompt Step 10 Checking Actual and Target Processes for the Standard Manager:
select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='STANDARD';
prompt If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.
prompt
prompt
---------------------------------------------------------
prompt Step 11 Checking Actual and Target Processes for Conflict Resolution Manager:
select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='FNDCRM';
prompt If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.
prompt
prompt
---------------------------------------------------------
Prompt Step 12 Checking if the control_code set to 'N':
select control_code from fnd_concurrent_queues
where control_code='N';
prompt
prompt If any rows selected, please update the table fnd_concurrent_queues:
prompt Update fnd_concurrent_queues set control_code = null
prompt where control_code ='N';
PROMPT Update fnd_concurrent_queues set target_node = null;
PROMPT commit;
prompt
prompt
--------------------------------
PROMPT Step 13 Checking terminated processes:
PROMPT
select count (*) from fnd_concurrent_requests
where status_code='T';
prompt
prompt If you have terminated processes run the following sql statement:
prompt
prompt SQL> Update fnd_concurrent_requests
prompt set status_code = 'E', phase_code = 'C'
prompt where status_code = 'T';
prompt
------------------------------------------
prompt Step 14 Checking pending requests:
select count(*) from fnd_concurrent_requests
where status_code='P';
prompt If any rows selected please run the following sql statement:
prompt SQL> Update fnd_concurrent_requests
prompt set status_code = 'E', phase_code = 'C'
prompt where status_code = 'P';
prompt
------------------------------------------------------
prompt Step 15 Checking Running processes:
prompt
select count (*) from fnd_concurrent_requests
where status_code='R';
prompt
prompt If you have Running processes run the following sql statement
prompt SQL> Update fnd_concurrent_requests
prompt set status_code = 'E', phase_code = 'C'
prompt where status_code = 'R';
prompt
------------------------------------------
prompt Step 16 Checking the PMON method, which should be set to LOCK:
prompt
select profile_option_id , profile_option_value
from FND_PROFILE_OPTION_VALUES
where profile_option_id= (select profile_option_id
from FND_PROFILE_OPTIONS
where profile_option_name='CONC_PMON_METHOD');
prompt
prompt If the PROFILE_OPTION_VALUE was't LOCK please
prompt Reset PMON to LOCK by running afimpmon.sql script(The manager should be down)
prompt 1-At UNIX command prompt:
prompt 2-cd $FND_TOP/sql
prompt 3-Log into SQLPLUS as apps/
prompt SQL> @afimpmon.sql
prompt prompt1:dual
prompt prompt2:LOCK (LOCK MUST BE ALL UPPERCASE)
prompt For Oracle Applications Release 11.5 and 12.0, when you check the PMON
prompt Method you may get no rows selected which is normal,
prompt because in apps 11.5 and 12.0 the PMON Method is hard coded to Lock at
prompt the Operating System level.
prompt
prompt
-------------------------------------------------------
prompt Step-17 Checking how many FNDLIBR processes are running:
prompt -For Unix :From unix command prompt $ ps -ef |grep -i fndlibr
prompt If you have any FNDLIBR processes running,please kill them before
prompt starting or shuting down the internal manager
prompt
prompt
prompt -For NT, through Task Manager, check the entries under the Processes tab
for FNDLIBR.exe processes.
prompt If there are any, Highlight and click [End Process] button to kill processes
prompt
----------------------------------------------------------
prompt Step-18 Checking how many "FND_%"invalid objects:
select substr(owner,1, 12) owner, substr(object_type,1,12) type,
substr(status,1,8) status, substr(object_name, 1, 25) name
from dba_objects
where object_name like 'FND_%'
and status='INVALID';
prompt If you have any invalied objects please see note#113947.1 via Metalink
prompt
--------------------------------------------------------------
prompt Step-19-How to find the PID in the O/S for request_id:
prompt If you do not like to check this enter any number then click Enter to Exit
select r.request_id, p.os_process_id
from FND_CONCURRENT_REQUESTS r,FND_CONCURRENT_PROCESSES p
where r.controlling_manager = p.concurrent_process_id
and request_id=&request_id;
prompt
prompt Please upload the "ccm.lst" output to Support, Thanks.
prompt
spool off
- - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - - - - - -
Sample Output
-------------
For Step 5 Checking the internal manager queue name"FNDICM":
CONCURRENT_QUEUE_ID
-------------------
1
For Step 6 Checking for Active processes under standard manager queue
in fnd_concurrent_proceses table
CONCURRENT_QUEUE_NAME OS Proc Oracle ID P
------------------------------ ---------- ---------- -
STANDARD 4271 12 A
STANDARD 4272 10 A
For Step 9 Checking the PMON method:
PROFILE_OPTION_ID
-----------------
PROFILE_OPTION_VALUE
-------------------
1044
LOCK
Additional Search Words
-----------------------
N/A
Checked for relevance on 20-Oct-2010
Applications Install 10.7 to 12.0.6
Overview
--------
This script is made available to Diagnose Common Concurrent Manager issues.
Program Notes
-------------
o Ensure the Script is run within a Sourced Applications Environment
o Copy the body of the script within the 'Code begins here' and
'Code ends here' section
Save as: ccm.sql
o Run by entering the following: sqlplus apps/
References
----------
Note 246584.1 Why do I get Found Dead Process in my Standard Manager Log?
Note 104452.1 Troubleshooting (Concurrent Manager Unix specific)
Note 134007.1 Clean up Concurrent Manager tables "cmclean.sql"
Note 157070.1 Pmon Method does not Change After Running "afimpmon.sql"
Script
Caution
-------
The sample program in this article is provided for educational purposes
only and is NOT supported by Oracle Support Services. It has been tested
internally, however, and works as documented. We do not guarantee that it
will work for you, so be sure to test it in your environment before
relying on it.
Program
-------
- - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - - - - -
REM #########################################################################
REM ## Purpose: Diagnostic Script for Concurrent Manager
REM ## Author: nabil albadin
REM ## Email: nabil.albadin@oracle.com
REM ## Filename: ccm.sql
REM ## Cert: 10.7, 11, 11.5, 12.0
REM ## Note:
REM ## Usage: sqlplus apps/
REM ## Output: reqcheck.lst
REM ## Notes:
REM ## Enter value for request ID WHEN PROMPT
REM ##
REM ## $Id: request.sql, v 1.0 4/17/2002 10:22 nalbadin Exp $
REM #########################################################################
spool ccm.lst
prompt Step 1 Checking how many rows in FND_CONCURRENT_REQUEST.
select count(*) from fnd_concurrent_requests;
prompt
-----------------------------------------
prompt Step 2 Checking how many rows in FND_CONCURRENT_PROCESSES table.
select count(*) from fnd_concurrent_processes;
prompt
-----------------------------------------------
prompt Step 3 Checking sys.dual table which should have one and only one row.
select count(*) from sys.dual;
prompt If you have more than one row in sys.dual, please delete it
prompt sql> delete rownum from SYS.DUAL;
Prompt rownum= the row number to delete
prompt
prompt
prompt
---------------------------------------------
prompt Step 4 Checking fnd_dual. There must be at lest one row:
select count(*) from fnd_dual;
prompt If there are no record selected,
prompt Update fnd_dual table to have at lest one record
prompt
----------------------------------------------
prompt Step 5 Checking the Internal Manager queue name "FNDICM" which should be=1
select concurrent_queue_id from fnd_concurrent_queues
where concurrent_queue_name='FNDICM';
prompt
----------------------------------------------
prompt Step 6 Checking for Active processes under the Internal Manager queue
prompt in fnd_concurrent_proceses table:
prompt
select a.concurrent_queue_name
, substr(b.os_process_id,0,10) "OS Proc"
, b.oracle_process_id "Oracle ID"
, b.process_status_code
from fnd_concurrent_queues a
, fnd_concurrent_processes b
where a.concurrent_queue_id=b.concurrent_queue_id
and a.concurrent_queue_name='FNDICM'
and b.process_status_code='A'
order by b.process_status_code;
prompt If any rows found with process_status_code with value = 'A' (= Active)
prompt The internal Manager will not start up ,so to avoide this issue
prompt update these rows to have process_status_code value ='K'(terminated)
prompt
prompt
-----------------------------------------
prompt Step 7 Checking for Active processes under the Standard Manager queue
prompt in fnd_concurrent_proceses table:
prompt
select a.concurrent_queue_name
, substr(b.os_process_id,0,10) "OS Proc"
, b.oracle_process_id "Oracle ID"
, b.process_status_code
from fnd_concurrent_queues a
, fnd_concurrent_processes b
where a.concurrent_queue_id=b.concurrent_queue_id
and a.concurrent_queue_name='STANDARD'
and b.process_status_code='A'
order by b.process_status_code;
prompt If any rows found with process_status_code with value = 'A' (= Active)
prompt The internal Manager will not start up ,so to avoide this issue
prompt update these rows to have process_status_code value ='K'(terminated)
prompt
prompt
------------------------------------------
prompt Step 8 Checking for Active processes under the Conflict Manager queue
prompt in fnd_concurrent_proceses table:
prompt
select a.concurrent_queue_name
, substr(b.os_process_id,0,10) "OS Proc"
, b.oracle_process_id "Oracle ID"
, b.process_status_code
from fnd_concurrent_queues a
, fnd_concurrent_processes b
where a.concurrent_queue_id=b.concurrent_queue_id
and a.concurrent_queue_name='FNDCRM'
and b.process_status_code='A'
order by b.process_status_code;
prompt If any rows found with process_status_code with value = 'A' (= Active)
prompt The internal Manager will not start up ,so to avoide this issue
prompt update these rows to have process_status_code value ='K'(terminated)
prompt
prompt
---------------------------------------------------
prompt Step 9 Checking Actual and Target Processes for Internal Manager:
select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='FNDICM';
prompt If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.
prompt
prompt
--------------------------------------------------------
prompt Step 10 Checking Actual and Target Processes for the Standard Manager:
select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='STANDARD';
prompt If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.
prompt
prompt
---------------------------------------------------------
prompt Step 11 Checking Actual and Target Processes for Conflict Resolution Manager:
select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='FNDCRM';
prompt If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.
prompt
prompt
---------------------------------------------------------
Prompt Step 12 Checking if the control_code set to 'N':
select control_code from fnd_concurrent_queues
where control_code='N';
prompt
prompt If any rows selected, please update the table fnd_concurrent_queues:
prompt Update fnd_concurrent_queues set control_code = null
prompt where control_code ='N';
PROMPT Update fnd_concurrent_queues set target_node = null;
PROMPT commit;
prompt
prompt
--------------------------------
PROMPT Step 13 Checking terminated processes:
PROMPT
select count (*) from fnd_concurrent_requests
where status_code='T';
prompt
prompt If you have terminated processes run the following sql statement:
prompt
prompt SQL> Update fnd_concurrent_requests
prompt set status_code = 'E', phase_code = 'C'
prompt where status_code = 'T';
prompt
------------------------------------------
prompt Step 14 Checking pending requests:
select count(*) from fnd_concurrent_requests
where status_code='P';
prompt If any rows selected please run the following sql statement:
prompt SQL> Update fnd_concurrent_requests
prompt set status_code = 'E', phase_code = 'C'
prompt where status_code = 'P';
prompt
------------------------------------------------------
prompt Step 15 Checking Running processes:
prompt
select count (*) from fnd_concurrent_requests
where status_code='R';
prompt
prompt If you have Running processes run the following sql statement
prompt SQL> Update fnd_concurrent_requests
prompt set status_code = 'E', phase_code = 'C'
prompt where status_code = 'R';
prompt
------------------------------------------
prompt Step 16 Checking the PMON method, which should be set to LOCK:
prompt
select profile_option_id , profile_option_value
from FND_PROFILE_OPTION_VALUES
where profile_option_id= (select profile_option_id
from FND_PROFILE_OPTIONS
where profile_option_name='CONC_PMON_METHOD');
prompt
prompt If the PROFILE_OPTION_VALUE was't LOCK please
prompt Reset PMON to LOCK by running afimpmon.sql script(The manager should be down)
prompt 1-At UNIX command prompt:
prompt 2-cd $FND_TOP/sql
prompt 3-Log into SQLPLUS as apps/
prompt SQL> @afimpmon.sql
prompt prompt1:dual
prompt prompt2:LOCK (LOCK MUST BE ALL UPPERCASE)
prompt For Oracle Applications Release 11.5 and 12.0, when you check the PMON
prompt Method you may get no rows selected which is normal,
prompt because in apps 11.5 and 12.0 the PMON Method is hard coded to Lock at
prompt the Operating System level.
prompt
prompt
-------------------------------------------------------
prompt Step-17 Checking how many FNDLIBR processes are running:
prompt -For Unix :From unix command prompt $ ps -ef |grep -i fndlibr
prompt If you have any FNDLIBR processes running,please kill them before
prompt starting or shuting down the internal manager
prompt
prompt
prompt -For NT, through Task Manager, check the entries under the Processes tab
for FNDLIBR.exe processes.
prompt If there are any, Highlight and click [End Process] button to kill processes
prompt
----------------------------------------------------------
prompt Step-18 Checking how many "FND_%"invalid objects:
select substr(owner,1, 12) owner, substr(object_type,1,12) type,
substr(status,1,8) status, substr(object_name, 1, 25) name
from dba_objects
where object_name like 'FND_%'
and status='INVALID';
prompt If you have any invalied objects please see note#113947.1 via Metalink
prompt
--------------------------------------------------------------
prompt Step-19-How to find the PID in the O/S for request_id:
prompt If you do not like to check this enter any number then click Enter to Exit
select r.request_id, p.os_process_id
from FND_CONCURRENT_REQUESTS r,FND_CONCURRENT_PROCESSES p
where r.controlling_manager = p.concurrent_process_id
and request_id=&request_id;
prompt
prompt Please upload the "ccm.lst" output to Support, Thanks.
prompt
spool off
- - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - - - - - -
Sample Output
-------------
For Step 5 Checking the internal manager queue name"FNDICM":
CONCURRENT_QUEUE_ID
-------------------
1
For Step 6 Checking for Active processes under standard manager queue
in fnd_concurrent_proceses table
CONCURRENT_QUEUE_NAME OS Proc Oracle ID P
------------------------------ ---------- ---------- -
STANDARD 4271 12 A
STANDARD 4272 10 A
For Step 9 Checking the PMON method:
PROFILE_OPTION_ID
-----------------
PROFILE_OPTION_VALUE
-------------------
1044
LOCK
Additional Search Words
-----------------------
N/A
Scripts to Check the Setup of the General Ledger Calendar
nstructions for the Reader
A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting.
Troubleshooting Details
Follow these steps to check the Calendar definitions and period statuses for Oracle Financial Applications that use the Calender defined by General Ledger.
This script will return the Calendar definitions, and the statuses of the periods for the different Oracle Financial Applications installed, for a specific Set of Books/Ledger.
1. Log into SQL*Plus as apps user:-
sql>/
2. At the SQL prompt type:
SQL> spool
Assuming you would like to save the output to the directory C:\TEMP and name the output file as
"calendar", type :
SQL> spool C:\TEMP\calendar.txt
3. Run the following queries to check the calendar:
(You can copy and paste the following query to Notepad, save it, then log into SQL*Plus from your
desktop by going to Start/Programs/Oracle for Windows/SQL Plus and log into your database and type
the following:
@\
A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting.
Troubleshooting Details
Follow these steps to check the Calendar definitions and period statuses for Oracle Financial Applications that use the Calender defined by General Ledger.
This script will return the Calendar definitions, and the statuses of the periods for the different Oracle Financial Applications installed, for a specific Set of Books/Ledger.
1. Log into SQL*Plus as apps user:-
sql>
2. At the SQL prompt type:
SQL> spool
Assuming you would like to save the output to the directory C:\TEMP and name the output file as
"calendar", type :
SQL> spool C:\TEMP\calendar.txt
3. Run the following queries to check the calendar:
(You can copy and paste the following query to Notepad, save it, then log into SQL*Plus from your
desktop by going to Start/Programs/Oracle for Windows/SQL Plus and log into your database and type
the following:
@