| Центр удаленного доступа (26.07.2026) | |
Использование DBLINK в Пользовательских процедурах | |
Использование DBLINK в Пользовательских процедурах. Для возможности использования DBLINK в Пользовательских процедурах, необходимо соблюсти следующие условия:
Ранее (до релиза от января 2021), в ЦУД все Пользовательские процедуры принудительно всегда выполнялись в автономной транзакции. Это делалось для поддержки случаев, когда в пользовательской процедуре осуществляется управление текущей транзакцией (commit или rollback). Сейчас это поведение изменено в пользу возможности использования DBLINK в Пользовательских процедурах. В результате, чтобы Пользовательские процедуры с управление текущей транзакцией продолжили работать, необходимо отказаться от такого управления транзакцией, либо "обернуть" это управление в блок автономной транзакции, с помощью анонимного блока или отдельной подпрограммы. Управление списком объектов, автоматически оборачиваемых в блок автономной транзакции. Предопределенный список объектов БД из стандартной поставки Парус, которые управляют текущей транзакцией, ведется в отдельном списке, поддерживается и поставляется с самого начала вместе с текущим сервисом. Начиная с релиза от января 2021 добавлена возможность расширения списка таких объектов Администраторами сервиса. Это может быть оказаться полезным для пользовательских процедур, или процедур, разрабатываемых на местах, и не входящих в стандартную поставку Парус. Как было упомянуто выше, лучше всего отказаться от подхода с управлением текущей транзакции на серверной стороне. Но в тех случаях, где это сделать затруднительно, теперь можно включить наименование таких объектов в специальный список, и при использовании этого объекта в вызовах из клиента, SQL-код клиента будет автоматически "обернут" в блок автономной транзакции с помощью анонимного блока. Для включения объекта в этот список создайте (или добавьте в имеющийся) текстовый файл с именем AutonomouseTransactionObjects.txt, отдельную строку или строки с именами нужных объектов. Этот файл должен быть расположен в каталоге сервиса, рядом с исполняемым модулем (по умолчанию, C:\Program Files\ParusRemoteAccess). Обратите внимание на используемую разрядность сервиса - версия x64 находится в отдельном подкаталоге WIN64. | |