powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / транзакции
14 сообщений из 14, страница 1 из 1
транзакции
    #33671419
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как записать что либо в глобал внутри транзакции так, что бы при откате запись не откатилась?

s $ZT="err"
TSTART
ошибочное выражение
if ошибка TROLLBACK
err
s ^Errors($H)=$ZE

вот такая конструкция ломается. происходит откат транзации и запись в ^Errors пропадает
...
Рейтинг: 0 / 0
транзакции
    #33671533
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно отключить журналирование для выбранной глобали, можно отключить временно журналирование для процесса.
http://dimas.ru/cvar/DisableJournalling
...
Рейтинг: 0 / 0
транзакции
    #33671655
tetra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно использовать дочерний процесс для записи данных в глобаль. Изменения в основном процессе откатятся, а в дочернем - нет

;;основной процесс
...
j someFunc^routine(data)
...

;;дочерний
someFunc(data)
s ^glo(...)=data
q
...
Рейтинг: 0 / 0
транзакции
    #33671991
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tetraМожно использовать дочерний процесс для записи данных в глобаль. Изменения в основном процессе откатятся, а в дочернем - нет

;;основной процесс
...
j someFunc^routine(data)
...

;;дочерний
someFunc(data)
s ^glo(...)=data
q

TSTART
s ^t=1
TSTART
s ^i=1
TCOMMIT
TROLLBACK

вы это имели ввиду? если так то не работает, после выполнения оба глобала пусты
...
Рейтинг: 0 / 0
транзакции
    #33672033
tetra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, не так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...
entryPointMain
 tstart
 s ^t= 1 
 j saveLog
 trollback
 ...
 q
saveLog
 s ^i= 1 
q
...


...
Рейтинг: 0 / 0
транзакции
    #33672137
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а без JOB никак нельзя? почему через JOB?
...
Рейтинг: 0 / 0
транзакции
    #33672146
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яМожно отключить журналирование для выбранной глобали, можно отключить временно журналирование для процесса.
http://dimas.ru/cvar/DisableJournalling

я так понял ^%NOJRN работает полностью с журналом и в документации ничего больше не нашёл по ней

а с
old=$$SetTransactionMode^%apiOBJ(0)
вообще ничего не понятно

можно поподробнее?

да, кстати, в версии 5.0 можно было отключить журналирование для глобалов начинающихся с "Z" а в версии 5.1 не видно этой фишки
кто нибудь что нибудь может сказать?
...
Рейтинг: 0 / 0
транзакции
    #33672148
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто, почему хотелось бы без job - intersystems предлагают бесплано однопользовательскую версию, понятно что система с одним пользователем...но каждый job увеличивает нагрузку на лицензию
(если я правильно понимаю)
...
Рейтинг: 0 / 0
транзакции
    #33672214
newbie'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
u78а с
old=$$SetTransactionMode^%apiOBJ(0)
вообще ничего не понятно

можно поподробнее?

да, кстати, в версии 5.0 можно было отключить журналирование для глобалов начинающихся с "Z" а в версии 5.1 не видно этой фишки
кто нибудь что нибудь может сказать?

By default %Save automatically manages transactions. You can enable and disable automatic transaction support using the $$SetTransactionMode^%apiOBJ() routine. See %Save method documentation(http://127.0.0.1:1972/apps/documatic/_CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25CACHELIB&CLASSNAME=%25Library.Persistent)

In 5.1 journaling is a database level selection so if the database is marked
for journaling, all globals, newly created and otherwise, are journaled.
...
Рейтинг: 0 / 0
транзакции
    #33672566
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u78просто, почему хотелось бы без job - intersystems предлагают бесплано однопользовательскую версию, понятно что система с одним пользователем...но каждый job увеличивает нагрузку на лицензию
(если я правильно понимаю)

Согласно лицензионному договору в Cache' 1 пользователь может иметь 12 подключений.
Фактически сейчас 1 пользователь может иметь 25 соединений с сервером.
Смотрите метод $System.License.MaxConnections()

Соответственно, Вам нужно сделать так, чтобы Ваш Job работал под тем же пользователем, что и программа.
Почитайте статью в документации Caché License Management .

Обратите внимание на метод $System.License.Login(UserIdentifier).
...
Рейтинг: 0 / 0
транзакции
    #33672567
tetra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отключение транзакций, на мой взгляд, неприемлемо вообще. Вариант с job применяю сам для ведения журнала изменений. Сама по себе команда Job не влияет на использование лицензии - только увеличивает кол-во процессов, но не лицензионных единиц. Почему Job - транзакции, отрабатываемые в родительском (основном) процессе, никак не влияют на ход сохранения данных в дочернем процессе.
...
Рейтинг: 0 / 0
транзакции
    #33672875
Тунгуз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локальные переменные не откатываются

s $ZT="err"
TSTART
...
TC
q
err
s tErr=$ZE
TROLLBACK
s ^Errors($H)=tErr
...
Рейтинг: 0 / 0
транзакции
    #33673097
tetra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И не должны. Транзакции применимы ТОЛЬКО к глобальным переменным
...
Рейтинг: 0 / 0
транзакции
    #33673202
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tetraИ не должны. Транзакции применимы ТОЛЬКО к глобальным переменным
Не в применении к каше, а к gtm - там судя по доке есть trestart, при этом и локальные переменные восстанавливаются в состояние на начало транзакции.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / транзакции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]