Невозможно включить типы JMS в OracleXE 11g — должен быть объявлен компонент CONSTRUCT.

У нас есть набор автоматических тестов для базы данных Oracle, которые мы запускаем на сервере CI с помощью OracleXE. В некоторых тестах используется тип AQ$_JMS_TEXT_MESSAGE, например:

msg SYS.AQ$_JMS_TEXT_MESSAGE;
BEGIN
    msg := SYS.AQ$_JMS_TEXT_MESSAGE.construct;
    msg.set_text(pMessage);

В прошлом мы использовали OracleXE 10g, но я пытаюсь перейти на XE 11g, чтобы соответствовать обычным серверам Oracle, на которых работает эта база данных. К сожалению, я не могу включить эти типы в OracleXE 11g. Я получаю следующие ошибки при попытке скомпилировать эти пакеты с его помощью:

1797/5   PL/SQL: Statement ignored
1797/37  PLS-00302: component 'CONSTRUCT' must be declared
1798/5   PL/SQL: Statement ignored
1798/9   PLS-00302: component 'SET_TEXT' must be declared
1799/5   PL/SQL: Statement ignored

OracleXE также не устанавливал эти типы по умолчанию в 10g, что мы исправили, выполнив этот скрипт, найденный при установке:

RDBMS\ADMIN\prvtaqal.plb

Однако даже после запуска в OracleXE 11g типы по-прежнему не могут быть разрешены. Я также искал содержимое других файлов в том же месте, связанных с JMS, и нашел эти два:

RDBMS\ADMIN\dbmsaqad.sql
RDBMS\ADMIN\prvtaqji.plb

Их установка также не дала результата.

Кто-нибудь смог использовать тип AQ$_JMS_TEXT_MESSAGE в OracleXE 11g и знает, как это обойти? Или возможность обойти это в XE10g была дырой, которую они сейчас заткнули?


person ioscode    schedule 02.10.2013    source источник


Ответы (1)


Я нашел способ обойти эту проблему. Я скопировал сценарий prvtaqal.plb из старой установки OracleXE 10g и запустил его в экземпляре OracleXE 11g. Типы доступны и все хорошо.

person ioscode    schedule 07.10.2013
comment
Привет, ioscode, это все еще лучший и единственный способ заставить JMS работать в Oracle 11g XE? - person Robert Greathouse; 02.01.2015
comment
Насколько мне известно, с тех пор я его не рассматривал. - person ioscode; 06.02.2015