Document ID: 45375.1
Subject: Oracle 7.3 BEQ adapter and ORA-12547
Last Modified: 22 Apr 97
Author: SWALSH
Problem
-------
A common problem when using an Oracle utility such as SVRMGRL on Oracle 7.3 for
OpenVMS is that when invoking the tool it starts but then issues the error:
ORA-12547: TNS:lost contact
and then fails to allow a connect to the database instance.
Solution
--------
Check that there is a BEQ command file for this SID in the ORA_ROOT:[NETWORK.
ADMIN] directory and if so then further debugging is required, which will be
discussed further in this document.
Reason
------
There are many reasons for this problem, aside from the obvious issue of not
having the appropriate BEQ command file. These reasons include lack of process
resources and quotas amongst other things.
Purpose of Bequeathe adapter
----------------------------
In previous releases of Oracle for OpenVMS, the use of a single-task adapter
has allowed both the Oracle server process and the client process to co-exist
within the same single process context. However, under Oracle 7.3 this has
been removed and now only two-task connections are allowed i.e. 2 separate
server and client processes.
In order to allow this two-task connection without having to set up SQL*Net the
BEQ or Bequeathe adapter has been produced. From a user point of view, the
only side of this that needs to be understood is the command file located in
ORA_RDBMS for each particular SID, of the format, ORASRV_BEQ_<SID>.COM. This
file is created by the Oracle installer (ORACLEINS) when creating an instance
or may be created manually if required.
Debugging ORA-12547 errors
--------------------------
Since the BEQ adapter spawns a sub-process to act as the Oracle server process,
and this process executes the ORASRV_BEQ_<SID>.COM file, there are certain
issues that may arise regarding process resources that may cause problems. For
example, if the VMS user account that is being used to run SVRMGRL has a
subprocess limit (PRCLM) of 1, then the process cannot be spawned and thus the
ORA-12547 error is returned. As can be seen from this, the error is quite a
generic one and may cover a multitude of sins. As such, it may be necessary to
perform some minor debugging to try and clarify what is happening when the
process is being spawned.
Example error and subsequent debugging
--------------------------------------
In this example, the OpenVMS user account being used has a PGFLQUO of 100 so in
view of needing about 15000 pages for this installation, when running SVRMGRL
the error occurs:
$ svrmgrl
Oracle Server Manager Release 2.3.2.0.2 - Production
Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.
ORA-12547: TNS:lost contact
SVRMGR>
So now to debug it, assuming the SID is V7323:
o make a backup copy of the ORA_ROOT:[NETWORK.ADMIN]ORASRV_BEQ_V7323.COM
o edit the original ORA_ROOT:[NETWORK.ADMIN]:ORASRV_BEQ_V7323.COM file and
add the following lines at the beginning of the file:
$ define sys$output beq.out
$ define sys$error beq.err
o the output from the debugging (BEQ.OUT) gives:
...
$ orasrv (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
%DCL-W-ACTIMAGE, error activating image ORA_RDBMS:SRV2.EXE
-CLI-E-IMGNAME, image file UKAA34$DKB0:[ORACLE73.V7323.RDBMS]SRV2.EXE
-SYSTEM-F-EXQUOTA, process quota exceeded
o thus we have exceeded the quota required
o this gives an idea of how to diagnose this type of error
Common causes
-------------
Other causes of this error include various quotas, the most notable being
BYTLM, PRCLM, WSxxx, JTQUOTA AND FILLM; and file protections.