Oracle OCI Change Notification - должен ли HOST = быть клиентским компьютером? - PullRequest
1 голос
/ 28 октября 2009

У меня есть пример программы, которая отлично работает с одной базой данных и не вызывает обратный вызов в другой базе данных.

Я заметил, что в рабочем случае SELECT CALLBACK FROM USER_CHANGE_NOTIFICATION_REGS возвращает строку, которая ссылается на IP-адрес клиента, который, кажется, интуитивно соответствует тому, что необходимо для обратного вызова.

    (46, 4, 'net8://(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.252.1)(PORT=49406))?PR=0',
     0, 0, 1800, 'MH.CBDEMO')
    # 172.16.252.1 = client machine

В случае переадресации строка хоста заполняется IP-адресом хоста базы данных.

  (271, 4, 'net8://(ADDRESS=(PROTOCOL=tcp)(HOST=138.72.249.167)(PORT=50966))?PR=0',
   0, 0, 1800, 'MH.CBDEMO')
  # 138.72.249.167 = database host

Итак, два вопроса:

  1. верно ли, что HOST = parm должен ссылаться на клиента OCI?

  2. Как лучше всего определить, где неправильно указывается HOST = parm?

окружающая среда:

  • клиент: Mac OSX, OCI, Python + cx_Oracle; база данных: 10.2.0.4.0
  • хороший сервер: linux на vmware, 10.2.0.4.0
  • сбой сервера: linux RAC, 10.2.0.4.0

1 Ответ

0 голосов
/ 12 ноября 2011

Oracle подтвердила, что это ошибка в Oracle 10g RAC. Поле должно быть IP-адресом клиента, и оно работает в системах без RAC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...