Subledger Accounting profile option “SLA: Enable Diagnostics”
Trace data generated during create accounting is stored in SLA diagnostic tables (XLA_DIAG_SOURCES og XLA_DIAG_EVENTS), when profile option “SLA: Enable Diagnostics” is set to “Y”. It is important to disable this profile option after use, to avoid performance decrease. Sql below shows if profile option “SLA: Enable Diagnostics” is enabled. Trace is enabled when “profile_option_value” is “Y”.
sqlplus apps
column profile_option_name format a20
column user_profile_option_name format a25
column profile_option_value format a14
SELECT tl.profile_option_name, tl.user_profile_option_name
,substr(decode(a.level_id,10001,'SITE',10002,'APPLN',10003,'RESP',10004,'USER'),1,5) "Level"
,substr(decode(a.level_id,10001,'Site',10002,c.application_short_name,10003,b.
responsibility_name,10004,d.user_name),1,30) "Level Value"
,nvl(a.profile_option_value,'Is Null') "Profile Value"
FROM fnd_profile_option_values a, fnd_responsibility_tl b, fnd_application c, fnd_user d, fnd_profile_options e, fnd_profile_options_tl tl
WHERE lower(tl.user_profile_option_name) like lower('SLA: Enable Diagnostics')
AND e.profile_option_id = a.profile_option_id
AND tl.profile_option_name = e.profile_option_name
AND a.level_value = b.responsibility_id (+)
AND a.level_value = c.application_id (+)
AND a.level_value = d.user_id (+)
AND tl.language='US'
ORDER BY 1, 2, 3, 4 DESC;
Additionally, SLA diagnostics tables needs to be purged after trace data is analyzed to achieve an acceptable performance during create accounting. This can be done by running concurrent request “Purge Transaction Objects Diagnostics” or purge tables XLA_DIAG_SOURCES and XLA_DIAG_EVENTS, as described in MOS 1412173.1.
The correct way to run SLA trace is described in next steps:
1) Change profile option “SLA: Enable Diagnostics” to “Y”.
2) Run “Create Accounting”.
3) Change profile option “SLA: Enable Diagnostics” to “N”.
4) Run “Transaction Objects Diagnostics” report.
5) Run “Purge Transaction Objects Diagnostics”.
Profile option “FND: Debug Log Enabled”
Trace data is written to a trace file and/or to table FND_LOG_MESSAGES, when profile option “FND: Debug Log Enabled” is set to “Y”. The result will be an inferior performance. For this reason, it is important to disable corresponding profile option after wanted trace data is collected. Sql below shows if profile option , “FND: Debug Log Enabled” is enabled. Trace is enabled when “profile_option_value” is “Y”. Additionally profile option “FND: Debug Log Level” is listed. This profile option shows the level of tracing. The lower the profile option value for corresponding profile option, the more trace data is collected.
sqlplus apps
column user_profile_option_name format a25
column profile_option_value format a14
SELECT tl.user_profile_option_name
,substr(decode(a.level_id,10001,'SITE',10002,'APPLN',10003,'RESP',10004,'USER'
),1,5) "Level"
,substr(decode(a.level_id,10001,'Site',10002,c.application_short_name,10003,b.
responsibility_name,10004,d.user_name),1,30) "Level Value"
,nvl(a.profile_option_value,'Is Null') "Profile Value"
FROM fnd_profile_option_values a, fnd_responsibility_tl b, fnd_application c, fnd_user d, fnd_profile_options e, fnd_profile_options_tl tl
WHERE tl.profile_option_name in ('AFLOG_ENABLED', 'AFLOG_LEVEL')
AND tl.language='US'
AND e.profile_option_id = a.profile_option_id
AND tl.profile_option_name = e.profile_option_name
AND a.level_value = b.responsibility_id (+)
AND a.level_value = c.application_id (+)
AND a.level_value = d.user_id (+)
ORDER BY 2, 3, 1, 4 DESC;
below is what the values for profile option “FND: Debug Log Level” means:
1. Unexpected Lowest log level – Lowest performance decrease
2. Error
3. Exception
4. Event
5. Procedure
6. Statement Highest log level – Highest performance decrease
More about “FND: Debug Log Enabled” in MOS 433199.1.
Identify Concurrent Programs with trace enabled
It happens frequently that someone enables trace on a Concurrent Program and forget to disable it again. There may be a significant decrease in performance when a Concurrent program is trace enabled. Next sql shows Concurrent Programs that have trace enabled:
sqlplus apps
column concurrent_program_name format a25
column user_concurrent_program_name format a40
select a.concurrent_program_id,a.concurrent_program_name, b.User_concurrent_program_name, c.user_name "LAST_UPDATED_BY", a.enable_trace
from FND_CONCURRENT_PROGRAMS a, fnd_concurrent_programs_tl b, fnd_user c
where a.concurrent_program_id=b.concurrent_program_id
and a.last_updated_by=c.user_id
and a.enable_trace='Y'
and b.language='US';