If you are not happy with Autoinvoice performance, or if you feel like the AI program is crawling* when multiple threads are handling the submitted jobs, check the trace files generated in
udump
directory for a pattern like 'ORA-04020: deadlock detected while trying to lock object ...
'. If there is a deadlock, you may see something like:
*** ACTION NAME:(Concurrent Request) 2007-03-20 17:55:25.238
*** MODULE NAME:(RAXMTR) 2007-03-20 17:55:25.238
*** SERVICE NAME:(SYS$USERS) 2007-03-20 17:55:25.238
*** SESSION ID:(2469.90) 2007-03-20 17:55:25.238
A deadlock among DDL and parse locks is detected.
This deadlock is usually due to user errors in
the design of an application or from issuing a set
of concurrent statements which can cause a deadlock.
This should not be reported to Oracle Support.
The following information may aid in finding
the errors which cause the deadlock:
ORA-04020: deadlock detected while trying to lock object AR.RA_INTERFACE_LINES_ALL
--------------------------------------------------------
object waiting waiting blocking blocking
handle session lock mode session lock mode
-------- -------- -------- ---- -------- -------- ----
457bf9a78 479d813f0 46dddbd10 X 47fd9ce08 468973ee0 S
46561f560 47fd9ce08 46894f520 X 479d813f0 46dc4edf8 X
--------------------------------------------------------
...
...
Setting profile option
AR: Autoinvoice Gather Statistics
to Yes
or leaving it to the default value of NULL
is one of the reasons for this deadlock. When the profile option is set to either Yes or NULL, by default it runs Autoinvoice Gather Statistics every time Autoinvoice program is run.Running
Autoinvoice Gather Statistics
process is too expensive; and it is not necessary to run this process as part of the Autoinvoice process. Hence Autoinvoice Gather Statistics
can be safely turned off as part of a normal Autoinvoice processing exercise.To implement this, simply set the profile option
AR: Autoinvoice Gather Statistics
to No
. Navigation: System Administrator responsibility -> Profile -> System.Perhaps this solution is applicable to all other platforms where this deadlock issue shows up with quite a few threads running Autoinvoice (RAXMTR). I'm not sure - I never tried it.
________
*Run the following SQL to get the list of Autoinvoice request IDs, request date along with the actual start and completion times.
SELECT REQUEST_ID,________
TO_CHAR (REQUEST_DATE, 'yyyymmddhh24mi') "REQUEST DATE",
TO_CHAR (ACTUAL_START_DATE, 'yyyymmddhh24mi') "START DATE",
TO_CHAR (ACTUAL_COMPLETION_DATE, 'yyyymmddhh24mi') "COMPLETION DATE"
FROM FND_CONCURRENT_REQUESTS
WHERE REQUEST_ID IN
(SELECT REQUEST_ID
FROM APPLSYS.FND_CONCURRENT_REQUESTS FCR, APPLSYS.FND_CONCURRENT_PROGRAMS FCP
WHERE FCP.CONCURRENT_PROGRAM_ID = FCR.CONCURRENT_PROGRAM_ID
AND FCP.CONCURRENT_PROGRAM_NAME = 'RAXTRX'
AND ACTUAL_COMPLETION_DATE > <desired_date>);
UltraSPARC-T1 | Cool Threads | T2000 | Oracle Applications | E-Business Suite
No comments:
Post a Comment