On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 1
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 07.08.06 15:30. Заголовок: ADS 6.11 (netware): странность с полем AXS_TPS


Всем доброго GMT!
Кто-нибудь сталкивался с тем, что в "служебном" поле AXS_TPS, которое рекомендуется добавить к таблицам, обрабатываемым в транзакциях, после окончания TRN _ИНОГДА_ остаётся символ `a` (CHR(97)) ? Дело в том, что следующая транзакция, обрабатывающая такие записи, НЕ изменяет их при своём завершении!!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


администратор




Пост N: 327
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.08.06 20:17. Заголовок: Re:


Можно тут глянуть
http://solutions.advantagedatabase.com/as/advantage_solutions.exe/LoginResponse

ЗЫ
Ответа нет ибо не юзал такое поле так как не на чем было проверить.
А делать такие вещи в слепую не люблю !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 08.08.06 11:40. Заголовок: ADS 6.11 (netware): странность с полем AXS_TPS


У них в хелпе есть вот это:

7042 Invalid bits set in the TPS semaphore byte
Problem: With DBF tables, the byte being used for the Transaction Processing System (TPS) semaphore byte (either the "deleted" byte or the AXS_TPS field, if one exists) has bits set that are invalid for that byte.
...
With DBF tables, a non-Advantage product is most likely causing the corruption. With ADT tables, the server likely crashed in the midst of a transaction, and the transaction was not properly recovered from when the Advantage Database Server was restarted. The previous Advantage Database Server error log file (ADS_ERR.DBF) entry contains the record number of the record that has invalid bits in its TPS semaphore byte(s).

Solution for DBF tables: When not in a transaction... if the TPS semaphore byte is the AXS_TPS field, open the table exclusively (doesn't matter which driver is used). Then loop through all records in the DBF table and clear all contents in the AXS_TPS field by replacing the field with a single space " ".

Исходя из этого, я понял, что этот байт может оставаться заполненным, если во время активной TRN программа была завершена без ROLLBACK'a. Решение нашел в том, что _ДО_ старта транзакции (когда "накапливаем" блокировки на нужных строках) надо сразу записывать в этот байт пробел.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 62
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет