Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
VorobyevEvgeny
Member

Откуда:
Сообщений: 31
Судя по форумам уже избитая тема, но никакой вариант решения проблемы нагуглить не удалось.. Суть: на существующем сервере необходимо поднять Oracle Message Gateway. Мануалы есть, вроде все просто но после всех манипуляций столкнулся с проблемой, что листенер не работает.

При старте агента
dbms_mgwadm.startup;

в last_error_message получаю: ORA-28575: unable to open RPC connection to external procedure agent

listener.ora
ADR_BASE_LISTENER_test = /u01/app/oracle/product/11.2.0

test =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCtest))
      (ADDRESS = (PROTOCOL = TCP)(HOST = my.domain)(PORT = 1521))
    )
  )

SID_LIST_SC =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = test)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
      (SID_NAME = test)
    )
    (SID_DESC =
      (SID_NAME  = mgwextproc)
      (ENVS = "ld_library_path=/u01/app/oracle/product/11.2.0/dbhome/jdk/jre/lib/amd64:/u01/app/oracle/product/11.2.0/dbhome/jdk/jre/lib/amd64/server:/u01/app/oracle/product/11.2.0/dbhome/lib")
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
      (PROGRAM = extproc)
    )
  )


tnsnames.ora
test =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = my.domain)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = test)
      (SERVER = DEDICATED)
    )
  )

MGW_AGENT =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCtest))
    )
    (CONNECT_DATA =
      (SID = mgwextproc)
      (PRESENTATION = RO)
    )
  )


В sqlnet.ora только ENCRYPTION_WALLET_LOCATION = ... В mgw.ora прописан classpath и логлевел. Все пути, которые прописаны - перепроверял, каждый существующий

После рестарта листенера, lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 28-SEP-2018 09:23:27

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                27-SEP-2018 17:57:59
Uptime                    0 days 15 hr. 25 min. 28 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhime/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/11.2.0/diag/tnslsnr/nnm/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=my.domain)(PORT=1521)))
Services Summary...
Service "test" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
Service "testXDB" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
The command completed successfully


lsnrctl status MGW_AGENT
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 28-SEP-2018 09:23:59

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCtest))(CONNECT_DATA=(SID=mgwextproc)(PRESENTATION=RO)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 2: No such file or directory


Уже пол дня с этим провозился и никакого результата. Администрированием оракла не занимался, думаю проблема какая то банальная, которую я просто в упор не вижу/не понимаю.
Пользовался этим мануалом, и еще кучей всего: [img=]

Буду рад любой подсказке.
Кстати да, логи, все которые мог найти, уже просмотрел ничего полезного для себя не заметил. Включал трейсы - тоже ничего особого в них не замечал, один раз только на битый listener.ora указали при экспериментах и все. Если знаете как/какой лог включить чтоб точно диагностировать проблемы - тоже буду рад.

К сообщению приложен файл. Размер - 48Kb
28 сен 18, 09:52    [21688773]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6434
VorobyevEvgeny
...
...
    (SID_DESC =
      (SID_NAME  = mgwextproc)
      (ENVS = "ld_library_path=/u01/app/oracle/product/11.2.0/dbhome/jdk/jre/lib/amd64:/u01/app/oracle/product/11.2.0/dbhome/jdk/jre/lib/amd64/server:/u01/app/oracle/product/11.2.0/dbhome/lib")
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
      (PROGRAM = extproc)
    )
  )


Уже пол дня с этим провозился и никакого результата. Администрированием оракла не занимался, думаю проблема какая то банальная, которую я просто в упор не вижу/не понимаю.
Пользовался этим мануалом, и еще кучей всего: [img=]

Буду рад любой подсказке.
Кстати да, логи, все которые мог найти, уже просмотрел ничего полезного для себя не заметил. Включал трейсы - тоже ничего особого в них не замечал, один раз только на битый listener.ora указали при экспериментах и все. Если знаете как/какой лог включить чтоб точно диагностировать проблемы - тоже буду рад.


ld_library_path - это переменная окружения, по которой ОС ищет so библиотеки
Ее нужно указывать в Верхнем регистре
1 окт 18, 15:56    [21691447]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
VorobyevEvgeny
Буду рад любой подсказке.

Подсказываю по дырявой памяти, коллеги поправят если где.

1. В Вашем listener.ora листенер MGW_AGENT не описан.
Соответственно, листенер с таким именем не поднимался, и "lsnrctl status MGW_AGENT" ровно об этом и рапортует.

2. Обратите внимание на вывод lsnrctl без указания имени listener:
STATUS of the LISTENER

Слово "LISTENER" в этом выводе - это ИМЯ листенера.
Листенер по умолчанию называется "LISTENER" - неожиданно, правда? :)
Который описывается в listener.ora как "LISTENER=(...тут параметры листенера)"
Если процитированный listener.ora именно тот listener.ora, который использован для запуска листенера LISTENER:
автор
/u01/app/oracle/product/11.2.0/dbhime/network/admin/listener.ora

, то странно что он вообще поднялся.

Согласно Вашему конфигу должен был подняться листенер test, который должен отзываться на
lsnctl status test
но тут тоже есть ньюанс в виде пробела между именем и знаком равенства.
Не скажу за листенер (не помню), но клиент, разрешая имя через tnsnames, рассматривает такой пробел как часть имени ресурса.

3. Кроме того, статическая конфигурация "SID_LIST_SC" относится к листенеру "SC", который тоже не описан в listener.ora.

ИГОГО: не играйте с идентификаторами, смысла которых не понимаете.
Возьмите шаблон и работайте строго по нему, имея ввиду
<ИМЯ_ЛИСТЕНЕРА>=(...)
SID_LIST_<ИМЯ_ЛИСТЕНЕРА>=(...)

что по умолчанию выглядит как
LISTENER=(...)
SID_LIST_LISTENER=(...тут описание сервисов листенера LISTENER)
1 окт 18, 16:26    [21691521]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
Ах да, забыл.
Если переименовываете листенер или переводите его на другой индерфейс/порт - не забывайте изменять параметр "local_listener" в базах, которые с ним работают. По умолчанию база будет пытаться регистрироваться в листенере "LISTENER", слушающем localhost:1521
1 окт 18, 16:31    [21691533]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
Понараспинался, блин..
Elic ответил бы просто: https://docs.oracle.com/cd/B28359_01/network.111/b28317/listener.htm#NETRF008
1 окт 18, 16:35    [21691540]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
VorobyevEvgeny
Member

Откуда:
Сообщений: 31
Vadim Lejnin,

Спасибо, на это обратил внимание уже после публикации - исправил в верхний регистр.
2 окт 18, 14:15    [21692654]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
VorobyevEvgeny
Member

Откуда:
Сообщений: 31
Все верно говорите, уже начитался про листенеры, с именами все поправил, и казалось бы во всем разобрался, но, не взлетает...

Это работающая тестовая бд, я на ней впервые, открыл листенер.ора и тнснамес.ора и добавил туда
...
    (SID_DESC =
      (SID_NAME  = mgwextproc)
      (ENVS = "ld_library_path=/u01/app/oracle/product/11.2.0/dbhome/jdk/jre/lib/amd64:/u01/app/oracle/product/11.2.0/dbhome/jdk/jre/lib/amd64/server:/u01/app/oracle/product/11.2.0/dbhome/lib")
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
      (PROGRAM = extproc)
    )
...

и
...
MGW_AGENT =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCtest))
    )
    (CONNECT_DATA =
      (SID = mgwextproc)
      (PRESENTATION = RO)
    )
  )

Остальное не трогал. Не трогал до того момента, пока не понял, что что-то не взлетает... Поправил примерно все точно так же, как вы тут описали, но, увы :(
andrey_anonymous
Слово "LISTENER" в этом выводе - это ИМЯ листенера.
Листенер по умолчанию называется "LISTENER" - неожиданно, правда? :)
Который описывается в listener.ora как "LISTENER=(...тут параметры листенера)"
Если процитированный listener.ora именно тот listener.ora, который использован для запуска листенера LISTENER:
автор
/u01/app/oracle/product/11.2.0/dbhime/network/admin/listener.ora

, то странно что он вообще поднялся.

Согласно Вашему конфигу должен был подняться листенер test, который должен отзываться на
lsnctl status test
но тут тоже есть ньюанс в виде пробела между именем и знаком равенства.
Не скажу за листенер (не помню), но клиент, разрешая имя через tnsnames, рассматривает такой пробел как часть имени ресурса.

Вот прям в точку. Это прям тот самый листенер и даже вывод lsnrctl status говорит
...
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhime/network/admin/listener.ora
...

я прям копирую этот путь, открываю в редакторе и вижу свой горе конфиг с листенером test, но запускается LISTENER. Как это побороть? Может еще что вам показать с машины?
2 окт 18, 14:35    [21692707]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
VorobyevEvgeny
Member

Откуда:
Сообщений: 31
Это новые редакции tnsnames.ora:
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

MGW_AGENT =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROCtest))
    )
    (CONNECT_DATA =
      (SID = mgweproc)
      (PRESENTATION = RO)
    )
  )

TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = my.domain)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = test)
      (SERVER = DEDICATED)
    )
  )


И listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_TEST =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
      (SID_NAME = test)
    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = mgweproc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome)
    )
  )

TEST =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = my.domain)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCtest))
    )
  )

ADR_BASE_TEST = /u01/app/oracle/product/11.2.0


На счет пробелов перед/после равно (а так же "трех пустых строчек" в конце конфига) много видел на форумах, но при экспериментах ничего не меняется. Тем более эти конфиги я создал уже с помощью утилиты netmgr с этой машины, где бд развернута. Надеюсь она то не должна в синтаксисе ошибаться?

Кстати, lsnrctl status:
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-OCT-2018 14:58:00

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                02-OCT-2018 14:53:13
Uptime                    0 days 0 hr. 4 min. 46 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/11.2.0/diag/tnslsnr/user/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=my.domain)(PORT=1521)))
Services Summary...
Service "test" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
Service "testXDB" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
The command completed successfully


lsnrctl status test говорит:
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-OCT-2018 14:45:59

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(my.domain)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist
 TNS-12560: TNS:protocol adapter error
  TNS-00515: Connect failed because target host or object does not exist

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCtest)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 2: No such file or directory

Что, в принципе, ожидаемо. Но я не понимаю откуда он стартует этот LISTENER (который дефолтный) и почему изменения в /u01/app/oracle/product/11.2.0/dbhome/network/admin/listener.ora ровным счетом не делают ничего в моем случае?
Рестарт делал так: lsnrctl stop - lsnrctl start. Или он в этом случае дефолтовый запускает какой то, а не тот, который в listener.ora?
lsnrctl stop
lsnrctl start TEST
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-OCT-2018 14:52:51

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/11.2.0/dbhome/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/11.2.0/diag/tnslsnr/user/apayxd01/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=my.domain)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist
 TNS-12560: TNS:protocol adapter error
  TNS-00515: Connect failed because target host or object does not exist


Listener failed to start. See the error message(s) above...
2 окт 18, 15:01    [21692764]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
VorobyevEvgeny
lsnrctl start TEST
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-OCT-2018 14:52:51

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/11.2.0/dbhome/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/11.2.0/diag/tnslsnr/user/apayxd01/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=my.domain)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist

Я бы сказал, что имя my.domain не резолвится.
Попробуйте прописать HOST=0.0.0.0
И да, нестандартное имя листенера требует явного указания в команде lsnrctl.
Без указания - будет поднимать умолчательный LISTENER, а, поскольку конфига для него нет, то с параметрами по умполчанию.
Потому никто и не парится - пользуются LISTENER.
2 окт 18, 16:23    [21692932]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
VorobyevEvgeny
Member

Откуда:
Сообщений: 31
То есть проще переименовать мой "test" в "LISTENER" и дальше уже с ним бодаться, я правильно понял?
2 окт 18, 16:43    [21692975]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6434
VorobyevEvgeny,

Лучше на момент настройки пользоваться отдельный listener, чтобы не корёжить боевой
2 окт 18, 16:45    [21692981]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
Vadim Lejnin
Лучше на момент настройки пользоваться отдельный listener, чтобы не корёжить боевой

Его надо тогда на отдельном интерфейсе/порту держать.
И после переноса сервисов в боевой не забыть local_listener в базейке поправить.
2 окт 18, 17:06    [21693013]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6434
andrey_anonymous,

Андрей, а зачем его вообще на основной сажать?
мне например наоборот удобно, когда каждая служба сидит на отдельном.

тем более, можно совсем TCP не использовать (если конечно у Вас не RAC)
2 окт 18, 17:16    [21693024]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
Vadim Lejnin
мне например наоборот удобно, когда каждая служба сидит на отдельном.

А в чем удобство?
2 окт 18, 17:47    [21693064]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6434
andrey_anonymous,

Можно оперативно поменять настройки не трогая основной, понятно что на prod должно все быть отлажено и время переключение минимальное, но, если накосячишь, время переключения уже становится заметно.
Обычно LISTENER боевой и L2 технологический

было также, поднимал выделенный listener для плотных потоков (rman backup и archivelog) на достаточно удаленный узел, так как, из-за заметного ping пришлось крутить RECV_BUF_SIZE, SDU, SEND_BUF_SIZE

Ну и бывает удобно, когда надо быстро отключить возможность подключения клиентов
2 окт 18, 18:31    [21693126]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16916
Vadim Lejnin
Обычно LISTENER боевой и L2 технологический

Ну это совсем не то же самое, что и "каждая служба сидит на отдельном ".
А пользователей не пустить - положил пользовательский сервис в БД и все дела...
Вообще обычай ронять листенер для предотвращения логина - в некоторой степени атавизм до-сервисных времен, особенно если на одном листенере пасутся N... нет, N мало, лучше M базеек.
2 окт 18, 18:40    [21693138]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6434
andrey_anonymous,
Да понятно, все зависит от целей
2 окт 18, 18:42    [21693142]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Messgae Gateway. IPC. TNS-12541: TNS:no listener  [new]
VorobyevEvgeny
Member

Откуда:
Сообщений: 31
В общем всем спасибо, разобрался. Основная проблема была в том, что я не знал, что lsnrctl start/stop по дефолту стартует листенера с именем LISTENER и совсем не смотрит на то, что написано в listener.ora, если имя листенера там отличается от деволтного. А дальше уже по ошибкам можно было хоть как-то продвигаться.. мелочь, а нервов то попортила
4 окт 18, 14:41    [21695264]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить