Ошибка в Oracle при использовании DBLINK - PullRequest
6 голосов
/ 31 марта 2011

Я использую jboss5.1.x, EJB3.0, JPA3.

Я пытаюсь выполнить запрос 'select' из представления, которое подключено через dblink к другой базе данных.

исходная база данных - Oracle 9 , целевая база данных - Oracle 8 .

Я получаю эту ошибку:

15:27:06,625 WARN [JDBCExceptionReporter] SQL Error: 24777, SQLState: 99999

15:27:06,625 ERROR [JDBCExceptionReporter] ORA-24777: use of non-migratable database link not allowed

Я нашел решение этой ошибки после того, как понял, что не могу использовать dblink при использовании XA .Поэтому мне удалось решить, изменив сценарий dblink на создать ссылку на общую базу данных следующим образом:

 CREATE SHARED DATABASE LINK CONNECT TO IDENTIFIED BY AUTHENTICATED BY IDENTIFIED BY USING 

все работало нормально в этой тестовой среде.

Теперь я переместил свое приложение в производственную среду, где исходная база данных Oracle 11 , а место назначения по-прежнему Oracle 8 .

Трюк, который я использовал, на этот раз не сработал, и я не смог найти решение.Это новое исключение, которое я получаю:

    Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
    at ....Caused by: java.sql.SQLException: ORA-01012: not logged on
    ORA-02063: preceding line from TO_VANTIVE

Спасибо за вашу помощь,

ray,

Ответы [ 4 ]

3 голосов
/ 31 марта 2011
ORA-01012: not logged on

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

Поместите кавычки вокруг пароля в CREATE LINK, если удаленные схемы имеют пароли с учетом регистра. Таким образом

CREATE SHARED DATABASE LINK
CONNECT TO bob IDENTIFIED  BY "MyNewPasswd1"
AUTHENTICATED BY jim IDENTIFIED BY "JimsPass23" USING 'DB01';
1 голос
/ 03 октября 2014

У нас та же проблема с Weblogic, и решение состоит в том, чтобы использовать драйвер JDBC не XA oracle.

0 голосов
/ 23 сентября 2013

Пожалуйста, убедитесь, что используемая ссылка на БД - Public и Shared, если ссылка на DB - не Public и Shared, будет выдано исключение ORA-24777: использование немигрируемой ссылки на базу данных недопустимо.Но если вы попытаетесь выполнить тот же запрос непосредственно в БД без использования какой-либо транзакции Java или XA, он будет работать нормально.

0 голосов
/ 28 февраля 2012

У меня возникла такая же проблема с Oracle 11g (ORA-24777).Я выполнил соединение между одной таблицей (в моей схеме) и представлением (созданным по ссылке в базе данных).Я выполнил весь источник данных JBoss в режиме XA.

Чтобы заставить его работать хорошо, мне пришлось изменить режим моего представления dblink .В этом случае очень важно иметь точное предложение AUTHENTICATED BY, чтобы избежать включения «ORA-01012: not logged».

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