Gen aeenv file entry has Oracle service name truncated (ORA-12154)
search cancel

Gen aeenv file entry has Oracle service name truncated (ORA-12154)

book

Article ID: 379645

calendar_today

Updated On:

Products

Gen Gen - Run Time Distributed

Issue/Introduction

Running Gen 8.6 client/server application with Linux C servers running under the Gen Transaction Enabler (aefad/aefuf).
It is required to have an Oracle password of least 30 characters.

The aeenv file has been created as follows:
tran_type tran_code lm_name user_id/password@Oracle_Service_Name
e.g. for 30 character password "gen456789012345678901234567890" and Oracle Service Name "GENDB":
FLOW P900 P900 gen86/gen456789012345678901234567890@GENDB

At application execution time the client fails with message:
TIRM633E: Error connection to database failed

The Gen server log file shows error ORA-12154 ("TNS could not resolve the connect identified specified") with truncation of the string "gen86/gen456789012345678901234567890@GENDB" by 2 characters to "gen86/gen456789012345678901234567890@GEN" i.e.
*****
22:54:57.922356==>Error connecting to Application DB
22:54:57.922368==>ORA_SID translates to ()
22:54:57.922375==>Using DB name (gen86/gen456789012345678901234567890@GEN)
22:54:57.922382==>SQLCA.SQLCODE is (-12154)
22:54:57.922389==>SQLCA after connect
  [0x7ffec1cc3ee0] 00000000 00000000 00000000 86d0ffff 42004f52  *.............P^?^?B.OR*
  [0x7ffec1cc3ef4] 412d3132 3135343a 20544e53 3a636f75 6c64206e  *A-12154: TNS:could n*
  [0x7ffec1cc3f08] 6f742072 65736f6c 76652074 68652063 6f6e6e65  *ot resolve the conne*
  [0x7ffec1cc3f1c] 63742069 64656e74 69666965 72207370 65636966  *ct identifier specif*
  [0x7ffec1cc3f30] 6965640a 20202020 00000000 00000000 00000000  *ied.    ............*
  [0x7ffec1cc3f44] 00000000 00000000 00000000 00000000 00000000  *....................*
  [0x7ffec1cc3f58] 20202020 20202020 00000000 00000000           *        ........*
*****

Environment

Gen 8.6 Transaction Enabler (aefad/aefuf)

Cause

The truncation of the 42 character string "gen86/gen456789012345678901234567890@GENDB" by 2 characters to "gen86/gen456789012345678901234567890@GEN" implies there is a limit of 40 characters when using this combined parameter syntax in the aeenv file

The user_id and password lengths should have a maximum of 32 characters when they are processed separately. The doc. page UNIX and Linux Implementation Toolset > Application Security, documents the 32 character limit for the dbconnct user exit (tiroconn.pc) which isan alternate method to set the values rather than using the aeenv file.

Resolution

To resolve this problem one of these options can be used:

1. Change the aeenv file syntax to be as follows:
tran_type tran_code lm_name user_id@Oracle_Service_Name password
e.g.
FLOW P900 P900 gen86@GENDB gen456789012345678901234567890
i.e. only have the user_id combined with the Oracle Service Name and the password remains separate.

2. Use the standard aeenv file syntax with no reference to the Oracle Service Name:
tran_type tran_code lm_name user_id password
e.g.
FLOW P900 P900 gen86 gen456789012345678901234567890
Set and export the Oracle environment variable TWO_TASK to the Oracle Service name (U482) in the shell or script that starts aefad/aefuf.
That combination will ensure the target Oracle Service/DB is found.

Additional Information