txkCfgUtlfileDir.pl Error in getUtlFileDir Mode

Fixing txkCfgUtlfileDir.pl Error in getUtlFileDir Mode After Restoring Oracle EBS 19c Database

 

Recently, after restoring an Oracle E-Business Suite database backup on Oracle Database 19c, I faced an issue while executing the txkCfgUtlfileDir.pl utility in getUtlFileDir mode.

This script is normally used in EBS 19c environments to fetch or manage the UTL_FILE_DIR configuration during database upgrade, clone, or restore-related activities. However, in my case, the script failed with an error indicating invalid APPS credentials, even though the APPS password was correct.

After troubleshooting, the issue was not related to the APPS password. The actual problem was with the database listener registration due to an incorrect local_listener parameter.

 

Environment Details

In this case, the activity was being performed on an Oracle EBS 19c database tier after restoring the database backup.

Example environment details:

Database Version : Oracle Database 19c
Application      : Oracle E-Business Suite
Activity         : Database restore / post-restore configuration
Utility          : txkCfgUtlfileDir.pl
Mode             : getUtlFileDir

 

Issue Description

After sourcing the database environment file, I executed the txkCfgUtlfileDir.pl script from the $ORACLE_HOME/appsutil/bin directory.

su – oraprod
. /u02/proddb/db/19.0.0/PROD_ebsdb.env
cd /u02/proddb/db/19.0.0/appsutil/bin

Then I executed the script:

perl txkCfgUtlfileDir.pl
-contextfile=/u02/proddb/db/19.0.0/appsutil/PROD_ebsdb.xml
-oraclehome=/u02/proddb/db/19.0.0
-outdir=/u02/proddb/db/19.0.0/appsutil/log
-mode=getUtlFileDir

The script prompted for the APPS password, but after providing the correct password, it failed with the following error:

 

ERROR DESCRIPTION:

(FATAL ERROR
PROGRAM : (txkCfgUtlfileDir.pl)
FUNCTION: main::validateAppsSchemaCredentials [ Level 1 ]
ERRORMSG: Invalid APPS database user credentials.
)

ERRORCODE = 1

At first glance, the error looked like an APPS schema password issue. However, the password was correct, so I started checking database connectivity and listener registration.

 

Listener Status Check

I checked the database listener status:

lsnrctl status PRECDB

The listener supports no services

Although the listener process was running, the database service was not registered with the listener. Because of this, the EBS utility could not properly validate the APPS schema credentials through the expected database service.

Oracle Database 19c uses the LOCAL_LISTENER parameter for local listener service registration, and the LREG process registers database services with the configured listener. Oracle documentation also notes that service registration is controlled through LOCAL_LISTENER and REMOTE_LISTENER, and ALTER SYSTEM REGISTER can be used to force immediate registration.

 

Additional Check

I also tried starting the database listener using the EBS script:

cd /u02/proddb/db/19.0.0/appsutil/scripts/PROD_ebsdb/

./adcdblnctl.sh start PRECDB

The listener was already started, but the script kept waiting for the database service:

Listener PRECDB has already been started.
Waiting for service PROD to be available…
Waiting for service PROD to be available…
Waiting for service PROD to be available…

This confirmed that the listener was running, but the database service was not registered.

 

Root Cause

The root cause was an incorrect local_listener database parameter.

Because local_listener was not pointing to the correct hostname and database listener port, the database was unable to register its service with the listener.

As a result:

lsnrctl status PRECDB

The listener supports no services

Due to missing service registration, the txkCfgUtlfileDir.pl utility failed during APPS credential validation.

 

Solution

Connect to the database as SYSDBA:

sqlplus / as sysdba

show parameter local_listener;

Set the correct local_listener value using the database hostname and listener port:

alter system set local_listener=’ebsprod.com:1526′ scope=both;

alter system register;

Now re-check the listener status:

lsnrctl status PRECDB

This time, the database service should be visible under the listener services section.

 

Re-run the Failed Utility

After correcting the local_listener parameter and confirming that the database service was registered with the listener, I re-ran the same command:

cd /u02/proddb/db/19.0.0/appsutil/bin

perl txkCfgUtlfileDir.pl
-contextfile=/u02/proddb/db/19.0.0/appsutil/PROD_ebsdb.xml
-oraclehome=/u02/proddb/db/19.0.0
-outdir=/u02/proddb/db/19.0.0/appsutil/log
-mode=getUtlFileDir

This time, the script completed successfully.

 

Final Fix Summary

show parameter local_listener;
alter system set local_listener=’hostname.domain:dbport’ scope=both;
alter system register;

Then validate:

lsnrctl status <listener_name>

Once the database service is properly registered, re-run:

perl txkCfgUtlfileDir.pl -mode=getUtlFileDir

 

    About Syed Saad

    With 13 years of experience as a certified and skilled Oracle Database Administrator, I possess the expertise to handle various levels of database maintenance tasks and proficiently perform Oracle updates. Throughout my career, I have honed my analytical abilities, enabling me to swiftly diagnose and resolve issues as they arise. I excel in planning and executing special projects within time-sensitive environments, showcasing exceptional organizational and time management skills. My extensive knowledge encompasses directing, coordinating, and exercising authoritative control over all aspects of planning, organization, and successful project completions. Additionally, I have a strong aptitude for resolving customer relations matters by prioritizing understanding and effective communication. I am adept at interacting with customers, vendors, and management, ensuring seamless communication and fostering positive relationships.

    Check Also

    ADJRIINITPASSWD ORA-01031 Error in Oracle E-Business Suite

    ADJRIINITPASSWD.sql ORA-01031 Error in Oracle E-Business Suite When running ADJRIINITPASSWD.sql, you may encounter an ORA-01031: …

    Leave a Reply