Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Thursday, July 19, 2007

Errors during txkprepatch.pl for ATG_PF.H RUP5 on concurrent tier

One of the pre steps for running ATG_PF.H RUP5 is to run the techstack validation perl script. We got these errors while doing so:

$ perl $PATCH_TOP/5473858/fnd/patch/115/bin/txk
prepatchcheck.pl -script=ValidateRollup -outfile=$APPLTMP/txkValidateRollup.html -appspass=apps -reporttype=text

Errors encountered running $PATCH_TOP/5473858/fnd/patch/115/bin/txkValidateRollup.pl

*******FATAL ERROR*******
PROGRAM : ($PATCH_TOP/5473858/fnd/patch/115/bin/txkprepatchcheck.pl)
TIME : Tue Jul 3 11:52:34 2007
FUNCTION: TXK::IO::open [ Level 3 ]
MESSAGES:
error = Unable to open file by ref
errorno = Illegal seek

STACK TRACE
TXK::Error::abort('TXK::Error', 'HASH(0x1c788c)') called at $PATCH_TOP/5473858/fnd/perl/TXK/Common.pm line 299
TXK::Common::doError('TXK::IO=HASH(0x9e71b8)', 'HASH(0xe62690)', undef) called at $PATCH_TOP/5473858/fnd/perl/TXK/Common.pm line 314
TXK::Common::setError('TXK::IO=HASH(0x9e71b8)', 'HASH(0xe62690)') called at $PATCH_TOP/5473858/fnd/perl/TXK/IO.pm line 302
TXK::IO::open('TXK::IO=HASH(0x9e71b8)', 'HASH(0xce27fc)') called at $PATCH_TOP/5473858/fnd/perl/TXK/SQLPLUS.pm line 601
TXK::SQLPLUS::_doExecute('TXK::SQLPLUS=HASH(0xd099b4)', 'true') called at $PATCH_TOP/5473858/fnd/perl/TXK/SQLPLUS.pm line 376
TXK::SQLPLUS::validateConnectInfo('TXK::SQLPLUS=HASH(0xd099b4)') called at $PATCH_TOP/5473858/fnd/perl/TXK/SQLPLUS.pm line 267
TXK::SQLPLUS::setConnectInfo('TXK::SQLPLUS=HASH(0xd099b4)', 'HASH(0xe61554)') called at $PATCH_TOP/5473858/fnd/perl/TXK/TechstackDB.pm line 383
TXK::TechstackDB::validateDBPassword('TXK::TechstackDB', 'HASH(0x538d68)') called at $PATCH_TOP/5473858/fnd/patch/115/bin/txkValidateRollup.pl line 327
TXK::RunScript::validateInputParameters('TXK::ARGS=HASH(0x7cb004)') called at $PATCH_TOP/5473858/fnd/patch/115/bin/txkValidateRollup.pl line 135
require $PATCH_TOP/5473858/fnd/patch/115/bin/txkValidateRollup.pl called at $PATCH_TOP/5473858/fnd/perl/TXK/RunScript.pm line 105
TXK::RunScript::require('TXK::RunScript', '$PATCH_TOP/5473858/fnd/patch/115/bin/txkValidateRollup...') called at $PATCH_TOP/5473858/fnd/perl/TXK/Script.pm line 177
eval {...} called at $PATCH_TOP/5473858/fnd/perl/TXK/Script.pm line 177
TXK::Script::run('TXK::Script=HASH(0x4ea284)', '$COMMON_TOP/rgf/gpslmpd1_tsgsd1005/TXK', '$PATCH_TOP/5473858/fnd/patch/115/bin/txkValidateRollup...') called at $PATCH_TOP/5473858/fnd/patch/115/bin/txkprepatchcheck.pl line 239

The perl environment is set correctly and there are no periods in the directory names from where the perl file is being called.

$ env |grep PERL
ADPERLPRG=$IAS_ORACLE_HOME/Apache/perl/bin/perl
PERL5LIB=$IAS_ORACLE_HOME/Apache/perl/lib/5.00503:$IAS_ORACLE_HOME/Apache/perl/lib/site_perl/5.005:$AU_TOP/perl

Simple solution to the problem:

Check your current shell by doing echo $SHELL. If it returns "sh", then it is a shell issue. Instead of using sh, use ksh. That means, before launching the txkprepatch.pl command, on unix prompt type:

$ ksh
Then issue the txkprepatch.pl command:
$ perl $PATCH_TOP/5473858/fnd/patch/115/bin/txk
prepatchcheck.pl -script=ValidateRollup -outfile=$APPLTMP/txkValidateRollup.html -appspass=apps -reporttype=text

You will not get any errors this time.

Complex solution

Metalink Note 335822.1 does describe a similar problem in AIX, but we are on Solaris. Here's a copy paste from that note:
=====================================

Cause

This issue is happening on tiers that are not webNodes.
The reason is that the Perl executable in iAS 1.0 on these
tiers (o/s HP or AIX) is not compatible to run this script.

Solution

To implement the solution, please execute the following steps:

Solutions:

1. Upgrade the iAS on this tier
Probably not desirable since this is not a primary Web Tier
but a valid solution.

2. Use the o/s version of Perl if it is higher than the iAS
If upgrading the perl version see AutoConfig FAQ Note 218089.1
for information on how to propogate this change in apps.

Either of the above will resolve this issue.
=========================================

I downloaded perl 5.8.8 and installed it on the concurrent tier.

Changed these environment variables:

ADPERLPRG=/usr/local/bin/perl
PERL5LIB=/usr/local/lib/perl5/5.8.8: /usr/local/lib/perl5/site_perl/5.8.8: $AU_TOP/perl

$ /usr/local/bin/perl txkprepatchcheck.pl -script=ValidateRollup -outfile=txkValidateRollup.html \
> -appspass=apps
*** ALL THE FOLLOWING FILES ARE REQUIRED FOR RESOLVING RUNTIME ERRORS
*** STDOUT = $APPLRGF/TXK/txkValidateRollup_Tue_Jul_3_17_17_08_2007_stdout.log
Reportfile txkValidateRollup.html generated successfully.

No comments: