Akhilesh pinged me today and told me that autoconfig was not working on a newly upgraded R12 instance. It was failing with these errors:
If we tried running any of the above scripts, they failed with this error:
SQLPLUS Executable : /r12ascp/erpapp/10.1.2/bin/sqlplus
SQL*Plus: Release 10.1.0.5.0 - Production on Mon Feb 4 12:04:27 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter value for 1: Enter value for 2: Enter value for 3: Connected.
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error
ORA-06512: at "APPS.WF_EVENT", line 3600
ORA-06512: at "APPS.FND_WF_ENGINE", line 1025
ORA-06512: at "APPS.FND_PROFILE", line 3064
ORA-06512: at "APPS.FND_PROFILE", line 3514
ORA-06512: at "APPS.ADX_PRF_PKG", line 203
ORA-06512: at line 167
ORA-06512: at line 217
Re-ran $INST_TOP/admin/install/adwebprf.sql apps appspassword ORACLE_SID
New error this time:
SQL> @afwebprf.sql apps appspassword r12ascp
Connected.
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "APPS.WF_EVENT", line 3602
ORA-06512: at "APPS.FND_WF_ENGINE", line 1025
ORA-06512: at "APPS.FND_PROFILE", line 3064
ORA-06512: at "APPS.FND_PROFILE", line 3514
ORA-06512: at "APPS.ADX_PRF_PKG", line 203
ORA-06512: at line 167
ORA-06512: at line 217
Checked the code again:
3602
wf_event.local_system_status := wf_core.translate('WF_SYSTEM_STATUS');
So I inquired about an existing good instance. No R12 instance was available, so I copied from an 11i instance with sqlplus COPY command:
First put the tnsnames.ora entry for the good instance in the DB $TNS_ADMIN/tnsnames.ora file
Then used the sqlplus copy command, which is the fastest way to copy data between two oracle databases:
SQL> copy from apps/****@11iascp to apps/****@r12ascp create wf_resources_d1 using select * from wf_resources
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
Table WF_RESOURCES_11i created.
1717 rows selected from apps@usnapsd1.
1717 rows inserted into WF_RESOURCES_11i.
1717 rows committed into WF_RESOURCES_11i at apps@r12ascp.
Since there was a difference of 58 rows, I first copied those rows in a different table:
create table wf_resources_more as
( select * from wf_resources
where (name,type) in
(
select name,type from wf_resources
minus
select name,type from wf_resources_11i
);
Which created table wf_resources_more with 58 rows.
Then I delete those 58 rows from the wf_resources table:
delete wf_resources
where (name,type) in
(
select name,type from wf_resources
minus
select name,type from wf_resources_11i
);
Re-ran $INST_TOP/admin/install/adwebprf.sql apps appspassword ORACLE_SID
AutoConfig could not successfully execute the following scripts:
Directory: /r12ascp/erpapp/10.1.3/perl/bin/perl -I /r12ascp/erpapp/10.1.3/perl/lib/5.8.3 -I /r12ascp/erpapp/10.1.3/perl/lib/site_perl/5.8.3 -I /usnapss
1/erpapp/appl/au/12.0.0/perl -I /r12ascp/erpapp/10.1.3/Apache/Apache/mod_perl/lib/site_perl/5.8.3/sun4-solaris-thread-multi /r12ascp/erpapp/inst/apps/usnaps
s1_r12ascp/admin/scripts/adexecsql.pl sqlfile=/r12ascp/erpapp/inst/apps/r12ascp_r12ascp/admin/install
afwebprf.sql INSTE8_PRF 1
amscmprf.sql INSTE8_PRF 1
amswebprf.sql INSTE8_PRF 1
cncmprf.sql INSTE8_PRF 1
csfadmprf.sql INSTE8_PRF 1
oksfrmprf.sql INSTE8_PRF 1
Directory: /r12ascp/erpapp/inst/apps/r12ascp_r12ascp/admin/install
ibywebprf.sh INSTE8_PRF 1
SQLPLUS Executable : /r12ascp/erpapp/10.1.2/bin/sqlplus
SQL*Plus: Release 10.1.0.5.0 - Production on Mon Feb 4 12:04:27 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter value for 1: Enter value for 2: Enter value for 3: Connected.
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error
ORA-06512: at "APPS.WF_EVENT", line 3600
ORA-06512: at "APPS.FND_WF_ENGINE", line 1025
ORA-06512: at "APPS.FND_PROFILE", line 3064
ORA-06512: at "APPS.FND_PROFILE", line 3514
ORA-06512: at "APPS.ADX_PRF_PKG", line 203
ORA-06512: at line 167
ORA-06512: at line 217
So I checked the code on line 3600 for wf_event package:
select line,text
from dba_source
where name='WF_EVENT'
and line between 3550 and 3610;
3600
wf_event.local_system_guid := hextoraw(wf_core.translate('WF_SYSTEM_GUID'));
wf_event.local_system_guid := hextoraw(wf_core.translate('WF_SYSTEM_GUID'));
I did another code search:
select line,text
from dba_source
where text like '%WF_SYSTEM_GUID%';
This was the result of the query:
select text into l_result from wf_resources where name='WF_SYSTEM_GUID' and
language='US';
SQL> select text from wf_resources where name='WF_SYSTEM_GUID' and
2 language='US';
TEXT
--------------------------------------------------------------------------------
CAFECAFE-0013-0001-0029-ABCDEFABCDEF
That was weird as that is the GUID used by Oracle JRE plugin 1.3.1.29.
I checked the actual GUID:
SQL> select guid from wf_systems;
GUID
--------------------------------
D37180AE23A4479AE04400212846C6CE
Updated the correct GUID:
SQL> update wf_resources
2 set text='D37180AE23A4479AE04400212846C6CE'
3 where name='WF_SYSTEM_GUID' and
4 language='US';
1 row updated.
SQL> commit;
Re-ran $INST_TOP/admin/install/adwebprf.sql apps appspassword ORACLE_SID
New error this time:
SQL> @afwebprf.sql apps appspassword r12ascp
Connected.
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "APPS.WF_EVENT", line 3602
ORA-06512: at "APPS.FND_WF_ENGINE", line 1025
ORA-06512: at "APPS.FND_PROFILE", line 3064
ORA-06512: at "APPS.FND_PROFILE", line 3514
ORA-06512: at "APPS.ADX_PRF_PKG", line 203
ORA-06512: at line 167
ORA-06512: at line 217
Checked the code again:
3602
wf_event.local_system_status := wf_core.translate('WF_SYSTEM_STATUS');
SQL> select text from wf_resources where name='WF_SYSTEM_STATUS' and
2 language='US';
TEXT
--------------------------------------------------------------------------------
CAFECAFE-0013-0001-0029-ABCDEFABCDEF
So I checked with query:
select count(*) from wf_resources where
text='CAFECAFE-0013-0001-0029-ABCDEFABCDEF';
1207 rows
select count(*) from wf_resources;
1775 rows
So I inquired about an existing good instance. No R12 instance was available, so I copied from an 11i instance with sqlplus COPY command:
First put the tnsnames.ora entry for the good instance in the DB $TNS_ADMIN/tnsnames.ora file
Then used the sqlplus copy command, which is the fastest way to copy data between two oracle databases:
SQL> copy from apps/****@11iascp to apps/****@r12ascp create wf_resources_d1 using select * from wf_resources
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
Table WF_RESOURCES_11i created.
1717 rows selected from apps@usnapsd1.
1717 rows inserted into WF_RESOURCES_11i.
1717 rows committed into WF_RESOURCES_11i at apps@r12ascp.
Since there was a difference of 58 rows, I first copied those rows in a different table:
create table wf_resources_more as
( select * from wf_resources
where (name,type) in
(
select name,type from wf_resources
minus
select name,type from wf_resources_11i
);
Which created table wf_resources_more with 58 rows.
Then I delete those 58 rows from the wf_resources table:
delete wf_resources
where (name,type) in
(
select name,type from wf_resources
minus
select name,type from wf_resources_11i
);
Then I updated the table with 11i values, through a correlated update statement:
update wf_resources a
set a.text=(select text from wf_resources_11i b
where a.type||a.name = b.type||b.name)
That updated the 1717 common rows with correct values.
Then I inserted the extra 58 rows new in R12
insert into wf_resources (select * from wf_resources_more);
commit;
I ran adwebprf.sql again and it gave a new error:
SQL> @afwebprf.sql apps appspass r12ascp
Connected.
declare
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "APPS.WF_EVENT", line 3604
ORA-06512: at "APPS.FND_WF_ENGINE", line 1025
ORA-06512: at "APPS.FND_PROFILE", line 3064
ORA-06512: at "APPS.FND_PROFILE", line 3514
ORA-06512: at "APPS.ADX_PRF_PKG", line 203
ORA-06512: at line 167
ORA-06512: at line 217
Again I checked code on line 3604 of WF_EVENT:
select name into wf_event.local_system_name
3605
from wf_systems
3606
where guid = wf_event.local_system_guid;
Then I realized that after the correlated update, the wf_resources table now had the GUID of 11i system:
SQL> select name,text
2 from wf_resources
3 where name='WF_SYSTEM_GUID';
NAME
------------------------------
TEXT
--------------------------------------------------------------------------------
WF_SYSTEM_GUID
CA43363B52162863E04400212846C6CE
So I updated it again:
I checked the actual GUID:
SQL> select guid from wf_systems;
GUID
--------------------------------
D37180AE23A4479AE04400212846C6CE
Updated the correct GUID:
SQL> update wf_resources
2 set text='D37180AE23A4479AE04400212846C6CE'
3 where name='WF_SYSTEM_GUID' and
4 language='US';
1 row updated.
SQL> commit;
Re-ran $INST_TOP/admin/install/adwebprf.sql apps appspassword ORACLE_SID
SQL> @afwebprf.sql apps appsapss1 usnapss1
Connected.
[ APPS_WEB_AGENT ]
Application Id : 0
Profile Value : http://usnapss1.tsg.ge.com:8004/pls/usnapss1
Level Name: SITE
INFO : Updated/created profile option value.
.
Deleted : 0
[ APPS_SERVLET_AGENT ]
Application Id : 0
Profile Value : http://usnapss1.tsg.ge.com:8004/OA_HTML
Level Name: SITE
INFO : Updated/created profile option value.
.
Deleted : 0
[ APPS_JSP_AGENT ]
Application Id : 0
Profile Value : http://usnapss1.tsg.ge.com:8004
Level Name: SITE
INFO : Updated/created profile option value.
.
Deleted : 0
[ APPS_FRAMEWORK_AGENT ]
Application Id : 0
Profile Value : http://usnapss1.tsg.ge.com:8004
Level Name: SITE
INFO : Updated/created profile option value.
.
Deleted : 0
[ WF_MAIL_WEB_AGENT ]
Application Id : 0
Profile Value :
Level Name: SITE
INFO : Updated/created profile option value.
.
.
.
It succeeded.
I told Akhilesh about the result and asked him to run autoconfig. We tailed the log at
$INST_TOP/admin/log/02042015/adconfig.log
Adconfig succeeded without errors this time:
AutoConfig is exiting with status 0
AutoConfig execution completed on Mon Feb 4 20:17:58 2013
Time taken for AutoConfig execution to complete : 2 mins 38 secs
I was overjoyed, and so was Akhilesh. We still had 53 rows which had the value of text as:
CAFECAFE-0013-0001-0029-ABCDEFABCDEF
select count(*) from wf_resources
where text='CAFECAFE-0013-0001-0029-ABCDEFABCDEF';
53 rows.
We would investigate further, how this had happened. I suspect human error. Human error makes troubleshooting more interesting, just like human error makes chess more interesting. If it was a computer playing chess, it would not make any mistakes and win the game. It is the human errors which make chess and troubleshooting, an interesting pursuit.