Как мне обойти ограничение Oracle DBLinks в Entity Framework? - PullRequest
0 голосов
/ 27 ноября 2018

Я создаю приложение MVC, используя Oracle Entity Framework, и пишу немного кода, чтобы перебрать все соответствующие DBLink и протестировать их, возвращая сетку результатов (успех / неудача).Моя проблема в том, что после использования четвертого DBLink я получаю сообщение об ошибке «ORA-02020: слишком много ссылок на базу данных используется».

Я пытался явно закрыть каждый DBLink после его использования («изменить имя сеанса закрыть ссылку на базу данных LinkName»), но затем я получаю сообщение об ошибке «ORA-02080: ссылка на базу данных используется».

Я пытался выполнить оператор «COMMIT» перед попыткой закрыть DBLink, но это не меняет ошибку («ссылка на базу данных используется»).

Я пытался закрытьсоединение с базой данных, но я все еще получаю ошибку «ссылка на базу данных используется», когда я создаю новое соединение и пытаюсь закрыть DBLink.

К сожалению, увеличение количества доступных DBLinks (open_links, open_links_per_instance)не вариант.

Кто-нибудь видел это с Entity Framework и нашел решение?У кого-нибудь есть идеи, что еще можно попробовать?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

ПОБЕДА!Я обнаружил, что если я установлю «Pooling = false» в строке подключения, то эта ошибка исчезнет во всех проблемных сценариях.Это жизнеспособно для меня, так как это просто используется для тестирования DBLinks по требованию, поэтому я могу безопасно отключить пул в этом сценарии.Большое спасибо за ваши ответы.Я был готов сдать полотенце и признать поражение

0 голосов
/ 28 ноября 2018

Чтобы узнать, сколько db links открыто в моем сеансе, используйте представление GV$DBLINK

select DB_LINK from GV$DBLINK;

DB_LI
-----
LEDRP
YDO

Чтобы закрыть db link, вы должны сделать две вещи.

Первая commit или rollback транзакция.Обратите внимание, что даже если вы ничего не измените, транзакция открыта из-за использования DB LINK.

Second, вы должны CLOSE DATABASE LINK, используя оператор ALTER SESSION.

rollback;
ALTER SESSION CLOSE DATABASE LINK LEDRP;

Вы видите, что ссылка закрыта и не отображается:

select DB_LINK from GV$DBLINK;

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