ITEM: FS2717L

LUM i4lmd not starting; port busy


Question: 
When running LUM version 4.3.1(aix version), any time I try to start the daemon i4lmd
I get the error grl-2050 Fatal error from i4lmd unable to initialize.
                         Cannot Start.

Response: 
If this error is ever seen running LUM 4. The fist thing to check is if there
is a another i4lmd process running or is in a zombie state.

check with the ps -ef command if this is the situation and in that case
kill the process (try with kill at first). 
If the process doesn't die use kill -9, consider that in a NCS environment if you
kill a license server process with kill -9 the entries in the glb database
are not cleaned and sometimes, when you restart the process,
you may need to clean the glb database with the lb_admin command. 

Another reason for this error to occur is if some other program or process
is holding the port that i4lmd is trying to bind to. 

Whether using NCS namespace binding or direct binding the i4lmd daemon will 
bind to the port specified by the ipPort tag in the i4ls.ini file. This 
tag gets set with the i4cfg program by choosing Direct Binding Ports and setting
the TCP/IP port.

On previous license software versions i.e., netlsd, the license server dynamically
choose this port.

You can check to see if a process if bound to the port with either the 
netstat -a command or the command lsof which is publicly available.

i.e., 
netstat -a | grep 1515 
or 
lsof | grep 1515.

You may also see useful debug info. leading to this condition by doing 
the following.

export IFOR_DEBUG=Y
export I$_IPC_DEBUG=4
/usr/opt/ifor/bin/i4lmd -v -z > i4lmd.out

To screen
LMDLicDB::Read(char*, GDBStrC0l&, si4&): grl-2022: attempt
to position to selected prefix.
Fatal error entering unable to intialize i4lmd fnetwork environment.

In i4lmd.out
Entering NCS: (NCS) ifor_svr_shlib_init ().
Server configuration file name = /usr/opt/ifor/ls/conf/iforls.ini
?(iforne0)address in use(network computing system /rpc runtime)

unable to initialize a socket list.

The same error occurs, the same trace file seems to also be there.
LMDLogDB::LMDLogDB: Entering
LMDLogDB::LMDLogDB: config file = /usr/opt/ifor/ls/conf/i4ls.ini
LMDLogDB::LMDLogDB: iNumberOfGDBFile = 2
LMDLogDB::LMDLogDB: iMaxGDBFileSize = 19000
LMDLogDB::Stipulation(): Entering
LMDLogDB::Stipulation(): Leaving
LMDLogDB::LMDLogDB: Leaving
LMDLogDB::Open(): Entering
LMDLogDB::Open_(): Entering
LMDLogDB::Open_(): /var/ifor/logdb
LMDLogDB::Open_(): pcGDBSchemaFile = /var/ifor/lmdlg.dbo
LMDLogDB::AddGDB_(): Entering
LMDLogDB::AddGDB_(): /var/ifor/logdb00_
LMDLogDB::AddGDB_(): Leaving
LMDLogDB::AddGDB_(): Entering
LMDLogDB::AddGDB_(): /var/ifor/logdb01
LMDLogDB::AddGDB_(): Leaving
LMDLogDB::Open_(): Leaving
LMDLogDB::Open(): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): 3, 2, GRL-2002: file '%s' not opened,
LMDLicDB::Read(char*, GDBStrCol&, si4&): GRL-2022: attempt to position to select
ed prefix failed,
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): 3, 2, GRL-2002: file '%s' not opened,
LMDLicDB::Read(char*, GDBStrCol&, si4&): GRL-2022: attempt to position to select
ed prefix failed,
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): 3, 2, GRL-2002: file '%s' not opened,
LMDLicDB::Read(char*, GDBStrCol&, si4&): GRL-2022: attempt to position to select
ed prefix failed,
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LMDLicDB::Read(char*, GDBStrCol&, si4&): Entering
LMDLicDB::Read(char*, GDBStrCol&, si4&): 3, 2, GRL-2002: file '%s' not opened,
LMDLicDB::Read(char*, GDBStrCol&, si4&): GRL-2022: attempt to position to select
ed prefix failed,
LMDLicDB::Read(char*, GDBStrCol&, si4&): Leaving
LogFatalError: EnteringLogFatalError: Entering
LogFatalError: unable to initialize i4lmd network environment.
LogFatalError: Leaving
LMDLogDB::Insert(LMDLogDRC&): Entering
LMDLogGDB::Insert_(LMDLogRec&): Entering
LMDLogRec-operator\<\<(GDBStrCol&): Entering
LMDLogRec-operator\<\<(GDBStrCol&): 2228 (LMDLOG_MDR_CLASS), 2876, 147d1; 4102 (AC
TION_MISC_STOP); 2211 (LMDLOG_LIR_CLASS), 0, 0, , 0x0, 0x0, 0x0; ""
LMDLogRec-operator\<\<(GDBStrCol&): Leaving
LMDLogGDB::Insert_(LMDLogRec&): 2876, 147D1, 4102, "", ""
LMDLogGDB::Insert_(LMDLogRec&): Leaving
LMDLogDB::Wrap_(): Entering
LMDLogDB::Wrap_(): Leaving
LMDLogDB::Insert(LMDLogDRC&): Leaving
entering: (NCS) ifor_svr_shlib_init()
server configuration filename = /usr/opt/ifor/ls/conf/i4ls.ini
?(i4ne0)  address in use (network computing system/RPC runtime) [1c010011]
?(i4ne0) Unable to initialize a socket list
Terminating...
entering: (NCS) ifor_svr_shlib_close()

In the case where we couldn't change the other program from holding port 1515,
the problems was solved as described below.

Had customer shutdown all the LUM associated daemons.

netstat -a | grep 1515
This shows another process was using this port.
Someones PC was accessing 1515 and 4 other ports.
lsof also shows port 1515 being used as tcp.

Configured LUM using port 1599 for Direct binding.
i4cfg -start 
i4lmd started successfully.

Configure NCS binding port 1599.
Join alternate cell of the other server.
i4cfg -stop
i4blt 
configure Namespace binding.
i4cfg -start

i4lmd worked this time.  


HR
CENTER
FONT size=2Support Line: LUM i4lmd not starting; port busy ITEM: FS2717L
BRDated: May 1998 Category: N/A
BRThis HTML file was generated 99/06/24~13:30:14
BRComments or suggestions?
A href="../../../../feedback.htm"BContact us/B/ABR
/FONT
/CENTER
/BODY
/HTML