я не против, но как это сделать в ODBC (mysql) с помощью clarion ? Буду рад подсказкеRaFaeL писал(а): 16 Июль 2017, 10:30 Так а может перед каждым GET проверять, не пропало ли соединение?

Модератор: Дед Пахом
я не против, но как это сделать в ODBC (mysql) с помощью clarion ? Буду рад подсказкеRaFaeL писал(а): 16 Июль 2017, 10:30 Так а может перед каждым GET проверять, не пропало ли соединение?
gopstop2007
Да у меня так и сделано в отдельном треде и зависает все приложениеAdmin писал(а): 16 Июль 2017, 12:12 Кстати а отдельным тредом нельзя обойтись? Все равно будет виснуть?
gopstop2007
Вполне серьезно. Это зависит от архитектуры и функционала основного приложения.gopstop2007 писал(а): 16 Июль 2017, 10:12Серьезно, третье? А какие проблемы могут возникнуть, если основное за этим проследит ?finsoftrz писал(а): 16 Июль 2017, 9:56 А еще дополнительно третье приложение, которое следит, не зависло/отвалилось ли второе, чтобы автоматически его снять и перезапустить...
finsoftrz
Какая-такая параллельная запись? Я думал, что этот файл только для синхронизации. Тогда мне не понятен бизнес процесс. Вот у нас, бывает, связь с филиалами рвётся. Мы большие файлы качаем по ftp c докачкой и т.д. Мне представляется так. На одном компе создали файл с данными, послали на сервер. Программа проверила идентичность файла, кинула на сервер пустой файл "OK". На сервере резидентная программа увидела этот пустой файл и начала синхронизацию. Все велосипеды уже изобретены вродеgopstop2007 писал(а): 16 Июль 2017, 7:07 Нет не удаляет, как как в этот момент может идти параллельная запись в него данных из основной программы
kreator
С одним файлом prod.tps может работать несколько пользователей, процесс изменения остатков и записи на сервер быстрее асинхронныйkreator писал(а): 16 Июль 2017, 16:57 Какая-такая параллельная запись? Я думал, что этот файл только для синхронизации. Тогда мне не понятен бизнес процесс.
gopstop2007
Спабо за интересную информацию. Интересно как вы контролируйте зависло ли приложение, в процессе работы (отправки, получения данных) или в режиме "ожидания"?finsoftrz писал(а): 16 Июль 2017, 13:29 Вполне серьезно. Это зависит от архитектуры и функционала основного приложения.
... Основное вызывает его в виде процесса, передавая параметры командной строки. Если в течении заданного периода времени работа второго приложения не завершилась, то либо прерываем процесс (снимая второе запущенное приложение), либо активируем для пользователя кнопку Прервать. Тут еще есть один важный нюанс. Мы не знаем, на каком этапе произошел сбой соединения. Он может произойти, когда задание на сервере было получено и выполнено, но ответ об успехе от сервера получить не смогли.
gopstop2007
finsoftrz
В топике было, что файл prod.tps локальныйgopstop2007 писал(а): 17 Июль 2017, 9:04 С одним файлом prod.tps может работать несколько пользователей, процесс изменения остатков и записи на сервер быстрее асинхронный .
Чересчур замысловато. Чем больше звеньев, тем больше проблем. gopstop2007, если связь совсем хреновая, может вэб-морда поможет? Кстати, у нас много народу считают эту вэб-морду панацеей от медленных каналов связи.finsoftrz писал(а): 17 Июль 2017, 17:51 Если запуск второго приложения, которое должно завершиться после выполнения задания, то через процесс. По таймеру проверяем факт завершения процесса.
Если контролируется приложение, которое должно работать постоянно, то запускаем тоже через процесс и пингуем по ip-протоколу. Ответ пришел, значит работает. Не пришел, то зависло или отвалилось. Тогда убиваем процесс и перезапускаем.
kreator
finsoftrz
Код: Выделить всё
if fsProc.StartProcess('fsprmag_con.exe req=11 user="' & clip(AcUSE:Shtamp) & '" pswd=' & choose(AcUSE:Parol='','','"' & clip(AcUSE:Parol) & '"') & ' err="' & clip(FsAccess:ActiveUserDir) & '"','Запись документов на сервер...',1600,0)=0
....
end
finsoftrz
Магазин (локально) в котором несколько пользователей(продавец,кладовщик и т.п) и связь с офисом (сервером).
Согласен, только начал осваиватьКстати, у нас много народу считают эту вэб-морду панацеей от медленных каналов связи.
gopstop2007
Огромное спасибо за рабочий пример. Понятно, что есть много примеров по данному вопросу, но когда эти примеры начинаешь использовать(пробовать), вылазит много мелочей, которые сводят работу на нет.finsoftrz писал(а): 18 Июль 2017, 8:14 Вот классик для запуска программы через процесс, может, кому пригодится. Пример вызова:
gopstop2007
Тогда бы я попробовал сделать так. В локальном магазине периодически запускается некая прога, которая выгружает на удалённый сервер изменения в локальном prod.tps. На сервере при появлении этой выгрузки стартует синхронизация. Повторюсь - чем проще, тем лучше. Проблемы репликации всем известны. Даже в больших SQL с репликацией не всё однозначно.gopstop2007 писал(а): 18 Июль 2017, 9:43 Магазин (локально) в котором несколько пользователей(продавец,кладовщик и т.п) и связь с офисом (сервером).
kreator
Я проверяю сейчас такой механизм работы
gopstop2007
У меня сейчас похоже сетка из 14 продуктовых супермаркетов работает. В магазинах 1-2 рабочих места на бэке (Продмаг) и локальная сетка (кассовые узлы, весы). Основная база на сервере через интернет (КупецЪ). Справочники подгружаются с сервера по мере необходимости. Далее работают локально в каждом магазине. По мере готовности документов отправляют их на сервер (утверждают). Либо по одному, либо сразу все неотправленные. Раз в неделю автоматическая принудительная отправка. Если документ надо изменить после отправки, то отправку предварительно отменяют. На сервере документ при этом выключается. При повторной отправке на сервере документ создается заново. Каждую ночь выполняется автоматическая сверка документов и остатков товаров с сервером и по электронной почте отправляется отчет из каждого магазина.gopstop2007 писал(а): 18 Июль 2017, 9:43Магазин (локально) в котором несколько пользователей(продавец,кладовщик и т.п) и связь с офисом (сервером).
finsoftrz
Вернуться в «CLARION for Internet»
Создано на основе phpBB® Forum Software © phpBB Limited
Time: 0.067s | Peak Memory Usage: 1.33 МБ | GZIP: Off