Содержание
- 2. Содержание Транзакции Блокировки Параллельная работа с классами
- 3. Транзакции Последовательность логически взаимосвязанных изменений БД Атомарность Целостность Изолированность Долговечность
- 4. Транзакции в Caché
- 5. Пример применения транзакций Trans Tstart Set $Ztrap=“Error” Set ^A(1)=1 Set ^A(1,1)=11 Set ^Log(1)=error Tcommit Set ^B(1,$Horolog)=1
- 6. Откат транзакции TRollback ##sql(ROLLBACK WORK) %ETN
- 7. Автоматический откат транзакций При старте системы, когда есть открытые транзакции Если выполнении Halt система спрашивает про
- 8. Содержание Тразакции Блокировки Параллельная работа с классами
- 9. Блокировки LOCK:pc oper(lockname#locktype,...):timeout L:pc oper(lockname#locktype,...):timeout pc – postcondition oper - добавление или снятие блокировки Lockname –
- 10. Примеры блокировок Lock Lock ^a:5 else write "Try again later." Lock +^a Lock +^a#”S” Lock -^a
- 11. Транзакции и блокировки Блокировки остаются до окончания транзакции ##sql(%BEGTRANS) Lock ^A(0) set id=^A(0)+1,^A(0)=id Lock ^A(id) set
- 12. Пример блокировки TSTART LOCK +(^A#”S”) // ^A IS LOCKED SHARED LOCK +(^A) // ^A IS LOCKED
- 13. Управление блокировками Увеличение таблицы блокировок Удаление блокировок (конкретной блокировки, блокировок процесса, всех блокировок сервера) с помощью
- 14. Дополнительная информация о блокировках Чтобы избежать DeadLock (два процесса выполняют инкрементную блокировку уже заблокированных переменных) используйте
- 15. Содержание Транзакции Блокировки Параллельная работа с классами
- 16. Управление concurrency объектов Set oref=##class( ).%OpenId(id,concurrency) Уровни concurrency 0: No Locking 1: Atomic 2: Shared 3:
- 17. No Locking
- 18. Atomic
- 19. Shared
- 20. Shared/Retained
- 21. Exclusive
- 22. Увеличение/Понижение Concurrency Do obj.%UpgradeConcurrency(n) Do obj.%DowngradeConcurrency(n)
- 23. Пример стратегии управления Concurrency Если приложение показывает свойства объектов и позволяет редактировать объекты, но вероятность изменения
- 25. Скачать презентацию