Gen Windows/Oracle CSE only starts one server process srvlock.exe
search cancel

Gen Windows/Oracle CSE only starts one server process srvlock.exe

book

Article ID: 245451

calendar_today

Updated On:

Products

Gen

Issue/Introduction

Gen 8.5 CSE on AWS server with both Oracle 11g and Oracle 12c 32-bit clients connecting to Oracle 19c database on another AWS server
The CSE service CSESvcMD only starts csesvcmd.exe, iefmd.exe and one srv* process srvlock.exe, instead of the usual 7 srv*.exe processes srvcons.exe, srvcoord.exe, srvid.exe, srvlock.exe, srvms.exe, srvuga.exe, srvvc.exe i.e.




Encyclopedia Client will also not connect to the Message Dispatcher and just hangs with no messages.

Environment

Release : 8.5, 8.6

Component : Gen Client Server Encyclopedia

Cause

The srvlock.exe is the only CSE srv*.exe process that does not connect to the Oracle DB, so the implication is that the DB connection is failing for the 6 srv*.exe processes that do connect to the Oracle DB.
A DB connection problem could occur on any version CSE and could have multiple root causes. The steps in this article cover Gen 8.5 using Oracle 11g 32-bit client but similar steps can be used to diagnose Oracle DB connection problems for any Gen CSE version.

Resolution

1. Check configuration of Oracle 11g 32-bit client tnsnames.ora file in directory "ORACLE_11_CLIENT_HOME\network\admin".
tns_alias =
  (DESCRIPTION =
   (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = encynew.cu8af8e46ozl.eu-west-1.rds.amazonaws.com)(PORT = 1521))
 )
    (CONNECT_DATA =
   (SID=ENCYNEW)
   (SERVER = DEDICATED)
    )
  )

The TNS alias tns_alias defined in that file needs to be used in the CSE Configuration Database Userid field (userid@tns_alias) so that the resulting iefmd.ini file has these lines for the DB connection:
"DBNAME=ENCY  DBUSER=ency@tns_alias  DBPSWD=encypass"

2. If #1 is confirmed check that the Oracle 11g client version of sqlplus.exe can connect to the DB successfully using the TNS alias i.e. from command prompt run:
cd ORACLE_11_CLIENT_HOME\bin
.\sqplus ency/ency@tns_alias
Only if that is sqlplus connection is successful will the CSE database connection also be successful.

3a. In this particular scenario, the sqlplus connection to the remote DB failed with "ORA-01017: invalid username/password; logon denied".
However the Oracle 12c client sqlplus.exe on the same machine could connect successfully using the same parameters to the remote DB.
b. Gen support initially suggested contacting Oracle Support, but then found similar symptoms reported here: 11.2.0.2.0 client connecting to 19c gets ORA-01017 unless it has a 10G password
The root cause seems to be password version i.e. the ORA-01017 logon error from 11.2.0.2 client seems to occur when password version 10G is missing. This SQL run by DBA can be used to check password versions: SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS WHERE USERNAME ='ENCY';
Using the Oracle 12c client sqlplus.exe and a DBA account executed SQL to ALTER the password for user ENCY but kept the same password: ALTER USER ENCY IDENTIFIED BY ...
That was enough to add the '10G' password version.
The Oracle 11g client sqlplus.exe connection test was then successful and the CSE service CSESvcMD also started successfully with all 7 srv* processes starting.

Additional Information

Gen 8.5 Windows/Oracle CSE requires Oracle 11g 32-bit client because the 8.5 CSE file csedb85.dll has a dependency on orasql11.dll.

As of Gen 8.6 Complete PTF CSN86204/SS14886, the 8.6 CSE file csedb.dll file has had the Oracle dll version dependency removed and it now depends on orqsql.dll. The Gen 8.6 Windows/Oracle CSE requires Oracle 12c 32-bit client (orasql12.dll) or Oracle 19c 32-bit client (orasql19.dll) and during the CSE configuration a hard link named orasql.dll is created for the orasql*.dll file in the same client directory.