Сбой Oracle: «Невозможно получить текст сообщения NETWORK / NCR 65535», по-видимому, не читает initSID.ora - PullRequest
2 голосов
/ 18 октября 2019

Первая настройка ODBC-соединения с Oracle. Я настроил listener.ora, tnsnames.ora и файл инициализации в \ hs \ admin, но ссылка на базу данных всегда завершается ошибкой:

ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from EXTLINK
28545. 0000 -  "error diagnosed by Net8 when connecting to an agent"
*Cause:    An attempt to call an external procedure or to issue SQL
           to a non-Oracle system on a Heterogeneous Services database link
           failed at connection initialization.  The error diagnosed
           by Net8 NCR software is reported separately.
*Action:   Refer to the Net8 NCRO error message.  If this isn't clear,
           check connection administrative setup in tnsnames.ora
           and listener.ora for the service associated with the
           Heterogeneous Services database link being used, or with
           'extproc_connection_data' for an external procedure call.
Vendor code 28545

Файл трассировки не появляется, что заставляет меня задуматьсячто файл инициализации даже не читается. Я могу подключиться к базе данных ODBC с помощью Access, так что я знаю, что это работает. Драйверы ODBC и DG4ODBC являются 64-битными.

Вот что я попробовал до сих пор:

  • Я установил HOST в обоих файлах в качестве имени хоста, в качестве IP-адресаи [HOSTNAME]. [DOMAIN] .local, но без изменений.
  • Я сделал адрес подключения (PROTOCOL / HOST / PORT) в tnsnames.ora и listener.ora идентичным, но без изменений.
  • Я заменил HOST слушателя на случайный мусор, а затем произошел сбой TNSPING, что не происходит иначе.
  • Я скопировал tnsnames.ora.sample, initgd4odbc.ora ифайлы listener.ora.sample в hs \ admin и установили тестовое соединение без источника ODBC в конце;но происходит сбой таким же образом, но файл трассировки не создается.
  • Я помещаю случайные символы для SID_NAME в listener.ora и SID в CONNECT_DATA в tnsnames.ora и по-прежнему получаю ту же ошибку, с, по-видимому, нетдругое воздействие.

Вот файлы ora. Некоторые имена были изменены, чтобы защитить конфиденциальность, но в остальном нетронуты.

tnsnames.ora:

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.[DOMAINNAME].local)
    )
  )


EXTLINK=
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST = [HOSTNAME])(PORT=1521))
    (CONNECT_DATA=(SID=EXTLINK))
    (HS=OK)
  )

listener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLSONLY:C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1\bin\oraclr12.dll")
    )
     (SID_DESC=
       (SID_NAME=EXTLINK)
       (ORACLE_HOME=C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1)
       (PROGRAM=dg4odbc)
     )
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = [HOSTNAME])(PORT = 1521))
    )
  )


CONNECT_TIMEOUT_LISTENER = 0

% ORACLE_HOME \ hs\ admin \ initEXTLINK.ora:

# Windows
HS_FDS_CONNECT_INFO = EXTLINK
HS_FDS_TRACE_LEVEL = 255
HS_FDS_FETCH_ROWS=1
HS_KEEP_REMOTE_COLUMN_SIZE = LOCAL
#HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1

Строка подключения:

CREATE PUBLIC DATABASE LINK EXTLINK CONNECT TO "Username" IDENTIFIED BY "Pass" USING 'EXTLINK';

1 Ответ

0 голосов
/ 21 октября 2019

Вместо этого установлен 18c XE, и он отлично работает, так что мне этого вполне достаточно. Я понятия не имею, почему это терпело неудачу во-первых, все же.

...