Страница 1 из 1

СтОит ли защищать базы данных с помощью TTS в моем случае?

СообщениеДобавлено: 06 ноя 2003, 17:06
A. Korneliuk aka KAA
Файл-серверные базы, всё в DBF (Clipper), в самой большой базе около 500000 записей, работают одновременно около 10 пользователей. После зависания сервера в базе появилась куча мусора (около 200 записей по всем полям содержат сплошной мусор).
Есть ли смысл ставить на эти файлы атрибут Т? Как это отразится на производительности сервера и загрузке?
NW 5.0 SP6a, на Р!!-400, 512 М, винты Ultra Wide SCSI-2, раздел с базами зазеркален на два диска.

СообщениеДобавлено: 06 ноя 2003, 17:39
Андрей Троценко
Я пробовал делать так с 1С-таблицами - 1С позволяла открыть БД только первому пользователю (если правильно помню).

Можете ПОПРОБОВАТЬ (на всякий случай отбекапив файлы). Если в течении нескольких дней работы полет будет нормальный - можно оставить.

СообщениеДобавлено: 07 ноя 2003, 23:13
Shamai
Скорее всего вы не сможете работать со своими таблицами. Мы в свое время пробовали это сделать для приложений foxpro. Ничего не получилось.

СообщениеДобавлено: 10 ноя 2003, 11:22
Влад А.Сокол aka Akina
Если софт не организует транзакции (и соотв. режим работы с файлами) - то транзакционный атрибут вызовет блокировку файла первым пользователем до закрытия - другие работать с ним не смогут, т.е. без вызовов соотв. функций сеанс от открытия до закрытия файла есть одна транзакция.

резюме - не надо...

СообщениеДобавлено: 24 ноя 2003, 23:45
A. Korneliuk aka KAA
попробовал, но на дельфиной базе, юзающей парадоксовые таблицы. Поставил на основную таблицу "транзакционный" и "совместно используемый" - запустил с двух станций, всё работает. Блокировки работают как обычно - т.е. блокируются только записи, открытые кем-то на редактирование.

СообщениеДобавлено: 25 ноя 2003, 11:49
Влад А.Сокол aka Akina
Alex Korneliuk
ну ты сравнил...

СообщениеДобавлено: 25 ноя 2003, 12:06
Лебедев Виктор
Если программа специально не была написана для использования под механизм транзакций NW, то выставление атрибутов тр. ни к чему хорошему не приведет.
Прим.: Даже под ущербный (но все же любимый) FOX поставлялась библиотека "netware.plb". Как раз с соответствующими функциями.

СообщениеДобавлено: 25 ноя 2003, 12:48
Shamai
Лебедев Виктор писал(а):Если программа специально не была написана для использования под механизм транзакций NW, то выставление атрибутов тр. ни к чему хорошему не приведет.
Прим.: Даже под ущербный (но все же любимый) FOX поставлялась библиотека "netware.plb". Как раз с соответствующими функциями.

Собственно мы и пробовали использовать под нашу задачу эту библиотеку. Но возникли проблемы, которые мы не смогли решить (может руки кривые, а может что другое :(...). Сейчас уже все не вспомню, но одна из проблем - поскольку нельзя удалить файл, помеченный для TTS, то стандартный PACK не работает - ведь таблица сперва создается новая, а потом пишется поверх старой. Список проблем можно продолжить.

СообщениеДобавлено: 25 ноя 2003, 21:51
A. Korneliuk aka KAA
ладно, я в блокировках и принципах работы TTS профан полный, посему сделал так: взял копию базы, о которой шла речь изначально (на Clippere писанная), поставил на основную ДБФку "транзакционный" и "совместно используемый", запустил с двух станций, попробовал войти в редактирование/добавление записей - ничего не произошло. Т.е. всё было так, как оно обычно при работе с этой базой. На одной станции добавил запись, на второй - изменил старую, попытался сделать это одновременно - всё прошло нормально. Просмотрел потом саму ДБФку - да, одна запись добавлена, одна изменена. Исходников нет, использует ли база какие-то способы блокировки кроме стандартных клипперовских - ХЗ, но т.к. написана она была почти 15 лет тому назад - думаю, это маловероятно. В единственной книге по NW, что у меня есть, говорится, что механизм транзакций применим только к файлам блочной структуры - и рекламируется это как супер-пупер для баз данных, не имеющих встроенной подобной технологии. Может всё же TTS блокирует не весь файл, а только конкретные записи?

СообщениеДобавлено: 26 ноя 2003, 10:27
Владимир Фатеев
если посмотреть описание netware.plb, то все встанет на свои места
NETWARE.PLB provides these functions:
TTSAVAIL() -- Checks for the presence of Novell Netware's TTS (Transactional Tracking System).
TTSATTRIB() -- Specifies that a file be included in a transaction.
BEGINTRAN() -- Specifies the beginning of a transaction.
COMMIT() -- Writes changes to the files included in the transaction.
RLLBACK() -- Backs out changes made to the files included in the transaction.
Софт сам должен инициировать начало и конец транзакции.
Так у нас на предприятии и сделано с фоксовыми базами.
Все работает замечательно.

СообщениеДобавлено: 26 ноя 2003, 12:32
A. Korneliuk aka KAA
ну вот, теперь я уже запутался окончательно. Если Софт сам должен инициировать начало и конец транзакции - то что же тогда дает транзакционный атрибут ??

СообщениеДобавлено: 05 дек 2003, 16:31
A. Korneliuk aka KAA
ну может хоть ссылку на подробное описание принципов работы TTS кто-нить кинет? А то вопрос повис, а всё что я нахожу о работе TTS - сплошная реклама :(

СообщениеДобавлено: 08 дек 2003, 11:33
Влад А.Сокол aka Akina
Шагай на Novell.COM в раздел Concepts и читай там про TTS пока глаза не вылезут... и поройся в AppNotes - там года 3 назад была подробнейшая про это дело статья...