Hardcoded path variables after RapidClone or Autoconfig

RapdClone and Autoconfig are power tools to manage eBS environments but however they’re not so mighty to manage all cloning/managing related things, especially when it comes down to customizations, development, etc. In this article I want to share my experience that I gathered during these years of cloning/maintaining/upgrading 11i/r12 environments for hardcoded path parameters into configuration. If you’re certain system apps dba for a long period of time then most probably you are very familiar with environment and this could be just a checklist but if you’re a newcomer or you have new client then during first clone I would suggest to check these very carefully .

I assume that RapidClone is used and system has autoconfig implemented (if not then what are you waiting for?). Also this article is not relevant if source and target systems have same absolute paths (as I told this article is all about hardcoded path parameters into eBS environment) but still knowing about these things is better than guessing. I’ll try to give SQL queries or hints how to check system wide, examples bellow searches for %u01% pattern (TEST system is mounted on /u02/ar121/TEST but source was /u01/ar121/PROD);

1)    Check Profile Options, there defiantly are environment specific hardcoded paths but maybe some are forgotten, here is nice SQL:

select O.user_profile_option_name,
O.profile_option_id,
O.Profile_option_name,
v.level_id,
decode(to_char(v.level_id),
'10001', 'SITE',
'10002', 'APP',
'10003', 'RESP',
'10005', 'SERVER',
'10006', 'ORG',
'10004', 'USER', '???') "LEVEL",
v.profile_option_value
from apps.fnd_profile_options_vl O, apps.fnd_profile_option_values V
where 1 = 1
and V.profile_option_id = O.profile_option_id
and O.profile_option_id in
(select profile_option_id
from apps.fnd_profile_option_values
where profile_option_value like '%u01%');

If You update profile option values inside table remember that profile_option_id is not unique value.

2)    Check dba_directories and dba_libraries, no comments here just query these views to see situation

3)    Check templates and custom templates for hardcoded path values:

# This is $CONTEXT_FILE creation template
cat $AD_TOP/admin/template/adxmlctx.tmp | grep u01
# Check if exist custom template for $CONTEXT_FILE and check this as well
cat $AD_TOP/admin/template/custom/adxmlctx.tmp | grep u01

# For others You most probably want to check just custom templates for AD /FND:
grep u01 $FND_TOP/admin/template/custom
grep u01 $AD_TOP/admin/template/custom

Case any of templates has hardcoded environment specific path it’s required to be fixed with variable from $CONTEXT_FILE ,refer to Using AutoConfig to Manage System Configurations in Oracle E-Business Suite Release 12 [ID 387859.1]

4)    Check concurrent program execute options, I have seen when some custom concurrent programs has hardcoded paths to java classes. It’s also very handy to verify java Xms and Xmx options, that they are always smaller than max allowed, may need to be checked in 32 bit architecture:

select p.concurrent_program_name,
(select user_concurrent_program_name from apps.fnd_concurrent_programs_tl where concurrent_program_id = p.concurrent_program_id) as Name,
p.execution_options
from apps.fnd_concurrent_programs p
where p.execution_options is not null
and p.execution_options like '%u01%';

These options can be updated directly in table or use Oracle Forms.

5)    Check concurrent program parameter default values, in some cases these parameters may be hidden and it’s easy to miss.

select f.application_id,
f.descriptive_flexfield_name,
f.end_user_column_name,
f.default_value
from apps.FND_DESCR_FLEX_COLUMN_USAGES f
where f.default_value like '%u01%';

In this query descriptive_flexfield_name contains concurrent program name. Here also default_value can be updated into directly in table or Oracle Forms.

6)    Check APPS_TIER file system for symbolic links, if there any link that points to absolute path, recreate ir on source system as relative then in next cloning task You can forgot about it

find $APPL_TOP -type l -exec ls -la {} \; | grep u01
find $COMMON_TOP -type l -exec ls -la {} \; | grep u01
find $ORACLE_HOME -type l -exec ls -la {} \; | grep 01
find $IAS_ORACLE_HOME -type l -exec ls -la {} \; | grep u01

7) Check in dba_source if any packages or other database objects reference to old absolute path.

select * from dba_source where text like '%/u01%';

So these are my checks and If i’ll find new cases I’ll update this thread.

Advertisements
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: