OpenVMS: Listener Crashes or Errors With :TNS-12582: TNS:invalid operation, TNS-12623, VMS Error: 32: broken pipe (Doc ID 1270778.1)

Last updated on SEPTEMBER 21, 2016

Applies to:

Oracle Net Services - Version 10.2.0.2 to 10.2.0.4 [Release 10.2]
HP OpenVMS Itanium
HP OpenVMS Alpha
***Checked for relevance on 25-Apr-2013***

Symptoms

The TNS Listener intermittently dies, crashes or reports errors with these messages in the listener log file:

    TNS-12582: TNS:invalid operation
    TNS-12623: TNS:operation is illegal in this state
    TNS-12518: TNS:listener could not hand off client connection
    TNS-12547: TNS:lost contact
    TNS-12560: TNS:protocol adapter error
    TNS-00517: Lost contact
    VMS Error: 32: broken pipe

The listener log file is found in the ora_root:[network.log] directory.

Normally, a Listener crash will not result in the production of a VMS process dump file.

If, as part of a debugging activity, the Listener process is configured to produce a process dump file (by using the command $ SET PROCESS/DUMP/ID=<VMS pid of listener>), then when the listener terminates abnormally, the tnslsnr.exe process will create a dump file called ora_root:[network.log]tnslsnr.dmp.  

You can also modify the ora_network:tnslsnr.com to add the set process/dump command there
so that it is automatically enabled on each listener start. 

$ set process/name="ORA_''lname'''time'"
$ set process/dump                                         <=====add this line
$start_listener:

To verify that your current listener process has image dump = on use this command:

$ pipe show proc/all/id=<pid of tns listener> |search sys$pipe dump

Example:
$ pipe show proc/all/id=20218ED3|search sys$pipe dump
Image Dump: on



A subsequent analysis of the tnslsnr.dmp file will show the following call stack:



*nlqu   nlqudeq     120151 0000000000000448 000000000015C3A8
----- the above looks like a null frame in the same scope as the frame below
*nsio   nsiodone    155148 000000000000042C 00000000001ACFBC
*nsev   nsevioc     163619 000000000000A8FC 00000000001A568C
*nsev   nsevpurgeq  163669 000000000000AABC 00000000001A584C
*nsev   nsevwait    163864 000000000000B26C 00000000001A5FFC
*nsglsn nsglma      310425 000000000000C404 00000000002430D4
*s0nsgl oravmsmain  298383 0000000000000464 0000000000140464
*s0nsgl main        298317 0000000000000394 0000000000140394
*s0nsgl __main      298288 000000000000006C 000000000014006C
SHARE$PTHREAD$RTL_DATA1 0000000000027618 FFFFFFFF80E77618
SHARE$PTHREAD$RTL_DATA1 0000000000000444 FFFFFFFF80E50444


You can analyze your tnslsnr.dmp file by running the script in the following note.

OpenVMS Script to Review the contents of a VMS Oracle Process DMP file <Document 557245.1>

Note that you must pass the script in note 557245.1 the name "tnslsnr.dmp", otherwise it defaults to
oracle.dmp.


In several reported cases the errors occurred after a connection using ODP.NET, Oracle Data Provider for .NET applications. The problem can be experienced with other types of connections besides ODP.NET.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms