Проблема
Есть ADF-приложение, работающее на weblogic. Приложение использует Data source, предоставляемый weblogic'ом, для соединения с БД. Некоторые Entity приложения смотрят на вьюхи, которые, в свою очередь, смотрят на удаленные таблицы через DATABASE LINK.
При попытке приложения обратиться к данным в удаленной БД падает ошибка:
ORA-24777: использование непереносимых ссылок на базы данных недопустимоРешение
Data source на weblogic использует JDBC-драйвер "oracle.jdbc.xa.client.OracleXADataSource, либо обычный (non-XA) драйвер oracle.jdbc.OracleDriver, но в настройках датасорса стоит галочка "Supports Global Transactions" (которая, кстати, установлена там по-умолчанию). При этом DATABASE LINK создан не как SHARED.
Соответственно, варианта 2:
Соответственно, варианта 2:
- Использовать oracle.jdbc.OracleDriver со снятой галочкой "Supports Global Transactions", если распределенные транзакции по факту приложению не нужны
- Пересоздать DATABASE LINK с использованием SHARED-опции (подробнее см. https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm#i2061693). Например:
CREATE SHARED PUBLIC DATABASE LINK MY_DBLINK
CONNECT TO "USR1" IDENTIFIED BY "PSWRD1"
AUTHENTICATED BY "USR1" IDENTIFIED BY "PSWRD1"
USING 'MYRMTORCL';
Комментариев нет:
Отправить комментарий