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,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s