|
|
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Давненько не встречал. На клиентских местах. Код: sql 1. 2. 3. 4. 5. Транзакция в том месте простая как барабан. Код: pascal 1. 2. 3. 4. 5. Как это случилось без записи видео об ошибках фиг бы понял. Да и то сам чуть не проглядел отмотал на несколько секунд раньше и опа поймал, почему. И так транзакцию нельзя завершить пока не напечатается фискальный чек и банковский аппарат не даст добро что оплата прошла. В момент работы с Сбербанковским аппаратом (знатоки как боритесь с этим глючным зверем), этот аппарат повис ничего не оставалось делать админу или оператору и они рубанули программу в диспетчере. И незакрытая транзакция повисла прошло 5 минут(судя по видео, видео отсутствует. пока программа не загружена видео не пишется) они вошли в программу и не смогли отредактировать/удалить чек. Валилась одна и та же ошибка с Deadlock. Закрыли программу снова открыли все чек без проблем удалился. Где крутануть чтобы избежать долгого отсутствия коннекта клиента? Или как можно такое с эмулировать стабильно тогда я сам разрулю это. В этот момент получается надо как то повесить сервак, чтобы он думал что коннект вернется и завершит транзакцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2013, 22:43:01 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Во-первых, читай http://ibase.ru/devinfo/keepalive.htm Во-вторых, разберись с какого перепою у тебя транзакция печати чека что-то апдейтит в базе. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2013, 23:04:37 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВо-первых, читай http://ibase.ru/devinfo/keepalive.htm Во-вторых, разберись с какого перепою у тебя транзакция печати чека что-то апдейтит в базе. Угу читаю. Я перед печатью чека делаю проведение документа, но не завершаю его пока не напечатается чек. В таком состоянии не может быть конфликтов с другими операторами. Т.к. это место ни с кем не пересекается. Одно поле отвечает всего за состояние документа и кроме оператора создателя никому не виден документ. Был выбрали путь транзакцией. Если что повиснет сломается не напечатается транзакция откатится. Видать не все учел. За много лет первый раз такая ситуация. И то по вине глючных Сбербанковских аппаратов и рук людей. Если ты работал с USB сбербановсими аппаратами то ты нас поймешь. Их окно открывается и висит в некоторых случаях. А прога в этот момет как будто подвисает. Благо у меня потоки еще с базой общаются. Так бы сервак наверно счел коннект подвисшим. Обслуживаю не я, а шишки на меня валятся. Сетку до сих пор не могут наладить до нормальной работы. И еще на серваке у них заведующая работает. Жуть короче. Мне проще програмно решить чем им работу сетей и сервака объяснять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2013, 23:53:38 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Евгений БолтикЯ перед печатью чека делаю проведение документа, но не завершаю его пока не напечатается чек. Если что повиснет сломается не напечатается транзакция откатится. И самое забавное будет если оно сломается уже после того, как чек напечатан. Транзакция откатится и в базе не останется никаких следов чека. Правильной последовательностью будет: 1) Старт транзакции - установка статуса "отправлено на печать" - коммит. 2) Печать. 3) Старт транзакции - установка статуса "печать подтверждена/обломалась" - коммит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 00:01:12 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПравильной последовательностью будет: 1) Старт транзакции - установка статуса "отправлено на печать" - коммит. 2) Печать. 3) Старт транзакции - установка статуса "печать подтверждена/обломалась" - коммит. +1 У меня так же распечатка организована, только не чеков и шагов поболе будет. Через короткие пишущие транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 09:03:19 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Извините за оффтоп, чото подумалось -База Болтика, десять лет спустя (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 11:03:21 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕвгений БолтикЯ перед печатью чека делаю проведение документа, но не завершаю его пока не напечатается чек. Если что повиснет сломается не напечатается транзакция откатится. И самое забавное будет если оно сломается уже после того, как чек напечатан. Транзакция откатится и в базе не останется никаких следов чека. Правильной последовательностью будет: 1) Старт транзакции - установка статуса "отправлено на печать" - коммит. 2) Печать. 3) Старт транзакции - установка статуса "печать подтверждена/обломалась" - коммит. Да такое было. Когда с сеткой была у них засада приходилось предварительно проверять можно ли провести чек (это почти шаг 1) (2 откатили флаг не нужен и печать) (3 подтвердили тут приходилось снова проверять на возможность оплаты.) Сейчас наконец свели все в одну транзакцию которая проводит оплату и контролирует ее. Для уменьшения затрат на контроль. СП за статью и варианты. Есть над чем подумать. И тут же пришла мысль: Надо по другому сделать журнал не проведенных транзакций это и будет типа отправлен на печать. Если грохнут программу и пользователь зайдет повторно программа просто отменить те транзакции которые висят. В журнале будет болтаться несколько строк и затраты на ведение его минимальны. Тем более сети нигде не придется ворошить не мое хозяйство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 11:41:17 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
rstrelbaИзвините за оффтоп, чото подумалось -База Болтика, десять лет спустя (с) Через 10 лет не останется и следа от тех моментов которые доставили проблем разработчикам сервера. Цели другие и не дают писать как хочешь. Ну а тема не к базе относится, а к сетке. Вообще то база на слуху по большей части рекурсивностью связей. Бакуп/рестор не могли просто сделать. Не надо додумывать, что там все неправильно. Там все по потребности и тормозов нету. А где возникают это по незнанию, что сервер плохо переваривает явные и не явные связи. Такого мало было. Вы здесь больше моего крутитесь и читаете поэтому об таком знаете я случайно наступил на граблю и то стало тормозить после обновления сервера. Дима сказал в 3 сервер будет ругаться, пришлось проштудировать код и выскребсти заранее на будущее. Кстати в тексте статьи была ошибочка уже сообщил ДК. В статье исправь #DummyPacketsInterval=0 на #DummyPacketInterval = 0 в конфиге так написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 12:46:31 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
Евгений Болтик, статья не моя ошибка прям аховая исправил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 13:19:17 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
kdvЕвгений Болтик, статья не моя ошибка прям аховая исправил Я на лавры не претендую. Ошибок хватает и я не ангел. Просто сначала подумал нет такого потом начал искать частями ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 13:23:45 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
про транзакции: сидел в одном ресторане, расплатился картой. А у них глюкнул терминал, якобы потерял связь с сетью в какой-то момент, или перегрузился, не помню. Чек не успел напечататься. Причем, в памяти терминала операцию снятия не обнаружили. Одновременно мне пришла смс от мобильного сбербанка, что деньги сняты. Тем не менее, пришлось заплатить налом. Через пару дней я пришел к ним, попросил отменить снятие, и они это сделали, мне не пришлось обращаться в сбербанк. Вот тебе и печать чека "в транзакции". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 13:25:44 |
|
||
|
Deadlock когда убили приложение
|
|||
|---|---|---|---|
|
#18+
kdvпро транзакции: сидел в одном ресторане, расплатился картой. А у них глюкнул терминал, якобы потерял связь с сетью в какой-то момент, или перегрузился, не помню. Чек не успел напечататься. Причем, в памяти терминала операцию снятия не обнаружили. Одновременно мне пришла смс от мобильного сбербанка, что деньги сняты. Тем не менее, пришлось заплатить налом. Через пару дней я пришел к ним, попросил отменить снятие, и они это сделали, мне не пришлось обращаться в сбербанк. Вот тебе и печать чека "в транзакции". У нас та же беда. Благо банк ставит свое по через которое побегав по меню можно сделать отмену. Нам сначала говорили у вас собственное ПО в 1С нет таких проблем. Но в соседнем магазине 1С, начал покупать достаточно часто и те же проблемы. Начал звонить и говорить сказали, что дадут вместо USB-COM кабеля чистый COM. Причем перестали ссылаться на 1С. Один раз даже минут 5 проторчал перед кассой. Оператор несметное кол-во раз нажала на ENTER & ESC. Когда на меня бочку клиент покатил я сказал. Будет проблема звони приеду и будем смотреть. Лечится следующим образом прога вроде весит выдергиваем терминал из компа через несколько секунд ПО терминала дает мне ошибку 99, оказалось не веси поя прога висит ДЛЛ банка. Втыкаем в комп пытаемся проплатить получаем 99. Еще раз выдергиваем терминал с компа. Снова вставляем. Эврика заработал терминал. Только поле этих слов удалось доказать что не мы виноваты. Банк сразу остыл и дал 1 шнур на COM. Надо будет спросить помогло ли клиенту. Иногда кажется что тот кто пишет для терминала ПО не квалифицирован, а может просто пофигу ЗП платят и делают вид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2013, 16:07:30 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38398219&tid=1564331]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 349ms |

| 0 / 0 |
