Google it ....

Wednesday, November 26, 2014

TCP protocol error - TNS-01153: Failed to process string, TNS-12538:TNS:no such protocol adapter

Problem appeared after server reboot. Both database and instance were ok but listener refused to start with errors in trace:
nsglma:Reporting the following error stack:
TNS-01150: The address of the specified listener name is incorrect
TNS-01153: Failed to process string: 
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

We spent significant time and tried several ways to resolve it (configuring another listeners with different ports, change hostnames, etc) but none helped. Looked like not a configuration issue.

Later when no options left, we just tnsping the listener on another server. This time we got different but more promising error:
TNS-12538: TNS:no such protocol adapter

Everything was checked one more time - no mistakes in connection string, no network partitions and no problem with remote listener. Most likely it was caused by protocol itself.

So, we did some checks according to oracle doc; (Doc ID 435795.1) by using utility adapters (displays the configured Oracle transport protocols, naming methods, and security options)
cd $ORACLE_HOME/bin
./adapters

Installed Oracle Net transport protocols are:

IPC
BEQ

Error!!! TCP/IP is not completely installed!
Present in libntcp10, but
missing from ntcontab.o...
Error!!! SSL is not completely installed!

Present in libntcps10, but missing from ntcontab.o...
RAW
Error!!!
SDP/IB is not completely installed!
Present in libntcp10, but missing from ntcontab.o...

Which points a problem with TCP protocol - TCP/IP is not completely installed!

As for solution oracle suggest following:
1. connect as the owner of oracle

2. make sure that ORACLE_HOME and LD_LIBRARY_PATH are set correctly
ORACLE_HOME=</oracle10/product>
LD_LIBRARY_PATH=$ORACLE_HOME/lib

3. shutdown all Oracle instances and processes running from this Oracle Home

4. execute following commands:
$ script /tmp/relink_adapt.out
$ cd $ORACLE_HOME/bin
$ ./gennttab
$ cd $ORACLE_HOME/network/lib
$ make -f ins_net_client.mk ntcontab.o
$ cd $ORACLE_HOME/bin
$ genclntsh
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk install
$ cd $ORACLE_HOME/sqlplus/lib
$ make -f ins_sqlplus.mk install
$ cd $ORACLE_HOME/network/lib
$ make -f ins_net_client.mk install
$ cd $ORACLE_HOME/network/lib
$ make -f ins_net_server.mk install
$ exit

Then again try:
$ cd $ORACLE_HOME/bin
$ adapters oracle

All now seems ok:
Net Protocol Adapters linked with oracle are:
BEQ
IPC
TCP/IP
RAW
SSL

Actually this never happen if the system installed and maintained correctly but this one seems got really bad care.

Thanks,

No comments:

Post a Comment