08.05.2003, 11:19 | #1 |
Участник
|
Как-нибудь можно перехватить сообщение, что связь с базой данных разорвалась ?
Это нужно, чтобы как-то фиксировать розничные продажи, если падает сервер с базой
|
|
08.05.2003, 11:56 | #2 |
Moderator
|
Может быть попробовать обратиться к БД и в случае неудачи обработать Exception ?
В Аксапте я так не пробовал, но в C++ я бы делал так. |
|
08.05.2003, 11:58 | #3 |
Moderator
|
Цитата:
Это нужно, чтобы как-то фиксировать розничные продажи, если падает сервер с базой
Вообще-то для этого принято пользоваться транзакциями. В случае обрыва связи, все неподтвержденные транзакции откатятся автоматически. |
|
08.05.2003, 12:07 | #4 |
Участник
|
Re: Как-нибудь можно перехватить сообщение, что связь с базой данных разорвалась ?
Цитата:
Изначально опубликовано Yury
Это нужно, чтобы как-то фиксировать розничные продажи, если падает сервер с базой Розничные продажи через что - POS-терминал или рабочее место Аксапты? Если POS, то каким образом взаимодействует с аксаптой в нормальной режиме? |
|
08.05.2003, 13:22 | #5 |
Участник
|
Уточнения
Вопрос был несколько в другом: у нас розница работает круглосуточно и без выходных, для учета розничных продаж используется модуль, написанный нами же. Соответствено, если падает сервер, продавец не может ничего продать. Предполагается (если это возможно) при разрыве связи с базой данных, перехватывать аксаптовское сообщение (см. аттач) и записи о продажах делать в файл на локале. Когда связь восстанавливается, читать этот файл и запускать обработку. Собственно, вопрос: можно ли как-то перехватить и обработать это сообщение?
|
|
08.05.2003, 13:42 | #6 |
Moderator
|
То есть, проблема только с этим ?
Цитата:
(если это возможно) при разрыве связи с базой данных, перехватывать аксаптовское сообщение (см. аттач)
А как сделать это вы знаете ? Цитата:
записи о продажах делать в файл на локале. Когда связь восстанавливается, читать этот файл и запускать обработку.
|
|
08.05.2003, 14:18 | #7 |
Участник
|
Собственно, почему я и спрашивал про POS-терминал. Если нет гарантии устойчивой связи с сервером, розничная точка, тем более работающая круглосуточно, должна работать off-line, время от времени сливая данные серверу, желательно используя транзакционный механизм. Для передачи данных можно использовать хотя бы протокол SMTP.
Вот от этого и нужно плясать, а не ловить сообщение о разрыве связи. Ну, поймал, ну записал в локальную базу, и что? |
|