|
|
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Добрый день. Друзья выручайте. База данных 2Гб. 7-8 коннектов. страница 4096 Firebird 2.5 SuperClassic, force write = on Операционная система Ubuntu 14 Сервер Firebird 2.5 SuperClassic для unix запускается на ubuntu 14 Клиентский софт для Windows запускается под wine, соответственно стоит клиент 2.5 windows, как на сервере так и на клиентских машинах. Куда копать не знаю поэтому описываю что имею. Проблема следующая: Потеря документов за пол дня у одного коннекта, в это время другие коннекты данные не потеряли. Точнее сказать документы сохранились в БД у всех кроме одного коннекта. Алгоритм работы программы следующий: Начала работы: 1. При открытии программы запускается хранимая процедура которая считывает не завершённый документ этого рабочего места, если его нет, тогда создаёт документ без позиций. 2. Производим commit transaction. 3. Для отображения на экране открываем другую транзакцию и считываем данные по документу. Добавление позиции: 1. Добавление позиции производится при помощи хранимой процедуры в таблицу БД. 2. Производим commit transaction. 3. Для отображения на экране открываем другую транзакцию и считываем данные по документу. Уменьшение остатков в БД: 1. Запускаем хранимую процедуру проведения документа. 2. Производим commit transaction. 3. Создаём хранимой процедурой новый документ. 4. Производим commit transaction. 5. Для отображения на экране открываем другую транзакцию и считываем данные по документу. Торговый документ обрабатываемый пользователем, на определённом рабочем месте, запоминается в БД и работать с другим торговым документом, с этого рабочего места, запрещено до полного проведения. Описание последовательности действий пользователя при котором второй раз возникает такая ошибка: 1. Человек работал без закрытия клиентской программы 2-е суток. 2. Вечером пользователь не успевает провести торговый документ и оставляет его на следующий день. Компьютер и программа на ночь не выключается. 3. Утром, новый пользователь не закрывая программу проводит торговый документ (оставленный с предыдущего дня). После этого компьютер не перезагружается. 4. Долее создаются и проводятся, без ошибок в БД, новые торговые документы в количестве 15 штук. 5. Параллельно на других компьютерах: принимали товар, создавали торговые документы. 6. Когда решили добавить в торговый документ только что принятый товар, программа не обнаружила остаток в БД. Одновременно с этим на других компьютерах товар числился на запасах. 7. Пользователь корректно закрывает программу и перезагружает компьютер. 8. При запуске программы она считывает текущий торговый документ из БД как прописано в алгоритме "Начало работы". 9. Пользователь видит торговый документ который был утром. 10. Проверка списка торговых документов на этом компьютере показывает что все торговые документы отсутствуют т.е. как будто ни кто не работал пол дня на данном рабочем месте. 11. В тоже самое время список торговых документов за этот день на других компьютерах есть и верен. После проверки в БД документы не обнаружили. Левых баз данных нет. (если кто то предположит что подключились к копии) Не знаю как это может быть. Проводки были, ошибок нет, если бы были ошибки программа бы их вывела. Документов нет. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 14:53:11 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351Куда копать не знаю поэтому описываю что имею. Лично я бы начал с того, что сменил пароль SYSDBA и владельца БД. Потом повесил на таблицу пропадающих документов триггер в лучшем случае выбрасывающий исключение при попытке удаления, а в худшем - протоколирующий этот факт где-нибудь. Вот когда на руках будут логи операций с указанием имени пользователя и его компа - можно будет копать конкретно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 15:31:55 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351, я советую либо аудитом-трейсом, либо FBScanner-ом промониторить одно приложение, а потом уже делать выводы, "как такое могло получиться". Потому что разработчик в коде программы видит одно, а на деле оно работать может совсем по другому. Bad_boY3511. Человек работал без закрытия клиентской программы 2-е суток. в программе в это время активных транзакций (не read read_committed) быть не должно. проверить можно в mon$transactions. Ну и посмотрите вот это http://www.ibase.ru/devinfo/optimize.htm с "Транзакции" (посередине). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 16:46:46 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
А не может быть ситуации что программа не отрабатывает ошибки коммита, и продолжает работать в той же транзакции? Или ещё какие ошибки скрываются, как то очень подозрительно выглядит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2014, 00:54:27 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovBad_boY351Куда копать не знаю поэтому описываю что имею. Лично я бы начал с того, что сменил пароль SYSDBA и владельца БД. Потом повесил на таблицу пропадающих документов триггер в лучшем случае выбрасывающий исключение при попытке удаления, а в худшем - протоколирующий этот факт где-нибудь. Вот когда на руках будут логи операций с указанием имени пользователя и его компа - можно будет копать конкретно. Структура базы не простая удалить данные руками не так то просто следы останутся. Логи операций пишутся в текстовый лог. И ошибок там нет. Тригер бесполезно делать, как так похоже что все что делается в этой транзакции не сохраняется, вопрос почему? не понятно. Так как ошибок транзакции не выдает. По текстовому логу все чисто и без ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 06:30:57 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
kdvBad_boY351, я советую либо аудитом-трейсом, либо FBScanner-ом промониторить одно приложение, а потом уже делать выводы, "как такое могло получиться". Потому что разработчик в коде программы видит одно, а на деле оно работать может совсем по другому. Bad_boY3511. Человек работал без закрытия клиентской программы 2-е суток. в программе в это время активных транзакций (не read read_committed) быть не должно. проверить можно в mon$transactions. Ну и посмотрите вот это http://www.ibase.ru/devinfo/optimize.htm с "Транзакции" (посередине). 50 торговых точек. 2-а случая за 2-е недели на разных точка. Ставить везде FBScanner, покупать на все торговые точки накладно. А аудит-трейс под Linux я так понял не работает. FBScanner есть и бесплатный но не сохраняет работу в файл, а без этого проблема отследить, так как о факте узнаем через день в лучшем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 06:36:51 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
NikolayV81А не может быть ситуации что программа не отрабатывает ошибки коммита, и продолжает работать в той же транзакции? Или ещё какие ошибки скрываются, как то очень подозрительно выглядит... С точки зрения программы, ошибки коммита всегда выводились, по крайней мере на windows, сейчас перешли на Linux софт работает по wine и параллельно перешли с firebird 2.1.3 на 2.5 SuperClassic (потому что тесты показали увеличение производительности). Как я уже и писал текстовые логи пишутся ошибок коммита или других ошибок из транзакции не было. В логах firebird бала только одна ошибка об обрыве соединения. Время обрыва совпадает с перезагрузкой компьютера перед тем как обнаружилась потеря данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 06:44:20 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351.... Тригер бесполезно делать, как так похоже что все что делается в этой транзакции не сохраняется.... В триггере пиши в external table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:02:13 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351аудит-трейс под Linux я так понял не работает и откуда так понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:22:35 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351А аудит-трейс под Linux я так понял не работает ты это Таблоиду скажи который каждый день его запускает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:30:36 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
m7mBad_boY351.... Тригер бесполезно делать, как так похоже что все что делается в этой транзакции не сохраняется.... В триггере пиши в external table Не нашел описания, Разве external table не требуют commit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:57:11 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351m7mпропущено... В триггере пиши в external table Не нашел описания, Разве external table не требуют commit? А искал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:59:32 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
dimitr, Я с ним не работал по гуглил, не нашел примеров работы под Linux. Может не тот софт нашел, плиз на название программы правильно как пишется? Да и у меня около 50 торговых точек, на каждой свая база данных, на какой выстрелит не знаю. Можно конечно поставить на все, но аудитом-трейсом есть бесплатная версия и умеет ли она записывать монитор в файл? Так как онлайн отслеживать 50 баз не реально, только просматривать логи постфактум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:03:25 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
wadmanBad_boY351пропущено... Не нашел описания, Разве external table не требуют commit? А искал? Искал, и явного сказания, что коммит не требуется не видел. Да есть описание что типа можно в одном запросе создать таблицу записать данные и удалить таблицу. По идеи файл должен остаться, ну и конечно данные запишутся. Так что да искал просто хотел узнать наверняка и не догадками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:15:26 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351Так что да искал просто хотел узнать наверняка и не догадками. Это текстовый файл, какой там коммит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:20:00 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Hello, wadman! You wrote on 7 апреля 2014 г. 10:21:55: wadman> Это текстовый файл, какой там коммит? жОсткий! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:22:54 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351похоже что все что делается в этой транзакции не сохраняется, вопрос почему?Патамушта - роллбек. Ищи его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:23:36 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Вот тебе пример, чисто гипотетический, т.е. без претензий на истину: Bad_boY3512. Вечером пользователь не успевает провести торговый документ и оставляет его на следующий день. Компьютер и программа на ночь не выключается.Сетевой стек рвёт idle соединение, сервер откатывает тр-цию, программа понятия об этом не имеет Bad_boY3513. Утром, новый пользователь не закрывая программу проводит торговый документ (оставленный с предыдущего дня). После этого компьютер не перезагружается.Программа получает и "глотает" ошибку потери связи и "прозрачно для пользователя" устанавливает новый коннект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:28:18 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
hvladВот тебе пример, чисто гипотетический, т.е. без претензий на истину: Bad_boY3512. Вечером пользователь не успевает провести торговый документ и оставляет его на следующий день. Компьютер и программа на ночь не выключается.Сетевой стек рвёт idle соединение, сервер откатывает тр-цию, программа понятия об этом не имеет Bad_boY3513. Утром, новый пользователь не закрывая программу проводит торговый документ (оставленный с предыдущего дня). После этого компьютер не перезагружается.Программа получает и "глотает" ошибку потери связи и "прозрачно для пользователя" устанавливает новый коннект. Ошибки потери связи программа не глотает и программа так построена, что на протяжении проведения документа данные сохраняются в базу коммит, после читаем стоимость всего документа и только после это проводим. Следовательно если бы бы RollBack стоимость бы не пересчиталась. А обрыв связи не теряет состояние документа на данном рабочем месте все сохраняется. Максимум последнее действие, а не 30 последующих документов. Больше похоже на то, что действительно ошибка коммита и прога ее не показала, причем софт не менялся а на винде все ошибки выводились, может глюк из за wine? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:43:37 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351может глюк из за wine?с логгированием? это да, может и с ним. никто вам никогда не гарантирует 100% совместимость и поддержку виндовых прог в вайне. ЗЫ перевод клиентов с винды на линукс - дело сомнительное, ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:45:36 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Ребят понимаю что инфы мало, но проблема есть, что написать о проблема кроме того что уже написано не знаю. Может кто сталкивался с проблемами в связке сервер linux клиент windows под wine. Может здесь где проблема? Я лично больше грешу на firebird client под wine. Так же может быть из за перехода с classic server на SuperClassic. Прошу мысли что может быть и варианты как решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:54:23 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
roadsterBad_boY351может глюк из за wine?с логгированием? это да, может и с ним. никто вам никогда не гарантирует 100% совместимость и поддержку виндовых прог в вайне. ЗЫ перевод клиентов с винды на линукс - дело сомнительное, ИМХО. Согласен полностью, но задача стояла за месяц, приложение которое писали несколько лет перевести на linux. Причем используется драйвер ККМ АТОЛ а он только под wine работает. АТОЛ в принципе с linux не работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:57:04 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351Может здесь где проблема? Я лично больше грешу на firebird client под wine.и там и там может быть вайн-проблем. Bad_boY351Так же может быть из за перехода с classic server на SuperClassic.здесь я вообще не понял аргументов к переходу на другую архитектуру, при 7-8 коннектах вы много памяти не наэкономите. кроме экономии памяти не вижу смысла менять классик на суперклассик. Bad_boY351Прошу мысли что может быть и варианты как решить?hvlad уже озвучил мысли. варианты следуют из них: 1. разобрать логику работы программы 2. переписать всё нафик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 11:01:01 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351задача стояла за месяц, приложение которое писали несколько лет перевести на linux. Причем используется драйвер ККМ АТОЛ а он только под wine работает. АТОЛ в принципе с linux не работают.согласились? теперь разгребайтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 11:02:11 |
|
||
|
Потеря данных firebird 2.5 Linux Ubuntu 14
|
|||
|---|---|---|---|
|
#18+
Bad_boY351Может кто сталкивался с проблемами в связке сервер linux клиент windows под wine. Может здесь где проблема? Я лично больше грешу на firebird client под wine. Таких проблем не замечал. зы. уточняю В такой связке ведется разработка и в такой связке работают некоторые наши заказчики ззы. Это конечно не означает что их не может быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 11:32:20 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38605673&tid=1563696]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
229ms |
get topic data: |
19ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 607ms |

| 0 / 0 |
