[ТЕМА ЗАКРЫТА]
31.05.2007 07:01
7fox7
 
УКМ ver 42 sp1

Из линейки касс рандомно выпадают некоторые кассы.
В УКМ сервере они в состоянии offline. Соотвественно данные о продажах не попадают в базу УКМ сервер. Вобщем сервер думает что кассы выключены и ничего на них не происходило.

Для исправления ситуации, приходится зайти на веб интерфейс кассы и рестартануть службы. Сразу после этого в ручной выгрузке появляются новые данные для выгрузки файликов.

На кассе sql show process показывает, то что УКМ сервер не подключен к ней.

Наведите на мысль где копать...
31.05.2007 08:02
OlegON
 
ping server и посмотреть статистику за часок-другой, наверное
31.05.2007 08:17
Mtirt
 
На сервере УКМ4 что еще работает? Операционка? Количество касс? Количество одновременно открытыъ сетевых подключений?
31.05.2007 18:15
Little
 
Посмотри может в настройках винды кассы вырубаются по таймауту. Отключи его и будет счастье.
01.06.2007 03:02
7fox7
 
all thx
Похоже что это было влияние второго одноименного сервера Супермаг...

Еще вопрос возник...
Как объяснить кассе без переустановки, что сервер сменил свой адрес...
Поиск в БД кассы и сервера на предмет адреса для подключения, ни к чему не привел. Правка файла hosts на кассе тоже. При установке кассы указывалось netbios имя сервера.
01.06.2007 15:08
Little
 
Как ты изначально заводил связь с сервером?
01.06.2007 16:33
7fox7
 
Была одна подсеть, 192.168.6.* и был в ней магазин. И был в магазине сервер по имени supermag, и устанавливались кассы в данной подсетке с указанием в конфиге сервера как supermag.

И переехал сервер географически в другую подсеть, например 192.168.7.*, а кассы остались в старой подсети. Netbios имена к сожалению не транслируются между подсетями, видны лишь ip. Кассы при подъеме постоянно в поиске сервера. Каким образом касам можно объяснить, что сервер уже не по тому адресу где был раньше. По сути ничего не изменилось кроме адреса сервера.
01.06.2007 16:46
EugeneT
 
Цитата:
7fox7 Netbios имена к сожалению не транслируются между подсетями, видны лишь ip.
Чушь собачья. в MS KB куча статей про multihomed browsing.
Если ты не видишь комп в "Сетевом окружении" это не значит, что его имя неизвестно WINS серверу. А по простому можнотак, ищи на кассе файл типа /etc/samba/lmhost
пиши в нём:
Цитата:
192.168.7.ХХХ Supermag

01.06.2007 20:50
vdm
 
Цитата:
7fox7 Была одна подсеть, 192.168.6.* и был в ней магазин. И был в магазине сервер по имени supermag, и устанавливались кассы в данной подсетке с указанием в конфиге сервера как supermag.

И переехал сервер географически в другую подсеть, например 192.168.7.*, а кассы остались в старой подсети. Netbios имена к сожалению не транслируются между подсетями, видны лишь ip. Кассы при подъеме постоянно в поиске сервера. Каким образом касам можно объяснить, что сервер уже не по тому адресу где был раньше. По сути ничего не изменилось кроме адреса сервера.
Тут близкая тема (описание переноса сервера на другую машину)
https://olegon.ru/showthread.php?p=10473#post10473

Насчет ip касс и сервера в разных подсетях - если не ошибаюсь, касса не помнит ни имя, ни адрес сервера, а ищет его через UDP-broadcast.

Во, там-же и написано
Цитата:
0.1. Если СИ и СН содержатся в одной подсети класса С, то кассовые терминалы без проблем найдут СН на другом IP адресе, поскольку поиск сервера УКМ 4.0 осуществляется терминалами по порту;
Т.е. тут могут быть проблемы.
05.06.2007 06:58
EugeneT
 
Цитата:
vdm Насчет ip касс и сервера в разных подсетях - если не ошибаюсь, касса не помнит ни имя, ни адрес сервера, а ищет его через UDP-broadcast.
Тогда что она ищет? Открытый порт мускула или УКМ-сервера?
05.06.2007 09:28
vdm
 
Цитата:
EugeneT Тогда что она ищет? Открытый порт мускула или УКМ-сервера?
Должно быть порт сервера.
В кассовом install.cfg есть параметры:
export UKMSERVER_PORT=xxx
export UKMSERVER_ID=xxx

и их она запоминает в базе.
05.06.2007 09:41
EugeneT
 
Цитата:
vdm Должно быть порт сервера.
В кассовом install.cfg есть параметры:
export UKMSERVER_PORT=xxx
export UKMSERVER_ID=xxx

и их она запоминает в базе.
Если это так, то самым быстрым "лобовым" решением проблемы может стать маппинг порта на рутере.
06.06.2007 18:15
Little
 
Может все еще проще, может достаточно прописать на кассе гейт?! Если просто попробовать tracert с кассы на сервер и в обратном направлении посмотреть? Думаю можно будет понять где накрывается маршрут.
07.06.2007 10:34
EugeneT
 
Цитата:
vadim Может все еще проще, может достаточно прописать на кассе гейт?! Если просто попробовать tracert с кассы на сервер и в обратном направлении посмотреть? Думаю можно будет понять где накрывается маршрут.
Дык если она бродкастингом орет на всю подсеть, типа 192.168.6.255:"номер порта", то такое через гейт не пройдёт. Это если верно, что имя и IP УКМ-сервера касса не хранит
07.06.2007 21:41
vdm
 
Да и порт хранится не в базе, а в отдельном файле.
Он скрипте запуска в качестве параметра передается
Цитата:
DBHOST="127.0.0.1"
........................
./cashmain --addr=$DBHOST -p${UKMSERVER_PORT}
Так что нету ip :)
08.06.2007 06:44
EugeneT
 
Цитата:
vdm Да и порт хранится не в базе, а в отдельном файле.
Он скрипте запуска в качестве параметра передается
Так что нету ip :)
А ты не ошибаешься? Приведенная процедура выглядит как обращение кассовой программы к локальному серверу УКМ.
DBHOST="127.0.0.1"
........................
./cashmain --addr=$DBHOST -p${UKMSERVER_PORT}

А вот если переменная DBHOST принимала значение IP сетевого сервера, то вопрос о поиске сервера в сети был бы снят.
08.06.2007 06:49
Mtirt
 
Насколько я понимаю, его туда можно добавить.
Код:
 ./cashmain --addr=$DBHOST -s192.168.7.xxx  -p${UKMSERVER_PORT}
06.05.2008 10:43
TiRaN
 
У меня тоже кассы теряют связь с сервером. Напиример утром включаем сервер, включаем кассы. Все прекрасно. Проходит полдня - все работает. А к примеру через час связь теряется. Так причем здесь сеть (локалка свежемонтированая) - непонятно. В общем потом стало ясно следующее: если из бэк-офиса 2 раза подряд делать полное обновление справочника товара, то все кассы отваливаются. Только почему так происходит - непонятно. УКМ4 v42.
12.05.2008 23:28
Onesoft
 
Цитата:
TiRaN У меня тоже кассы теряют связь с сервером. Напиример утром включаем сервер, включаем кассы. Все прекрасно. Проходит полдня - все работает. А к примеру через час связь теряется. Так причем здесь сеть (локалка свежемонтированая) - непонятно. В общем потом стало ясно следующее: если из бэк-офиса 2 раза подряд делать полное обновление справочника товара, то все кассы отваливаются. Только почему так происходит - непонятно. УКМ4 v42.
Объясняю: сервер принимает выгрузку и рассылает их на все кассы одновременно, точнее - он сообщает кассам, что для них есть новая инфа, они все одновременно лезут на сервер и вешают сеть своими запросами. Потом ведь всё раскочегаривается, верно?
13.05.2008 09:47
OlegON
 
Цитата:
Onesoft Объясняю: сервер принимает выгрузку и рассылает их на все кассы одновременно, точнее - он сообщает кассам, что для них есть новая инфа, они все одновременно лезут на сервер и вешают сеть своими запросами. Потом ведь всё раскочегаривается, верно?
Больной вопрос... Очень хочется как-то регулировать одновременность. Когда у меня 54 магаза ломятся одновременно что-то тянуть серьезное, они кладут офисный 5Мбитный канал влет и отваливается VPN на котором магазы сидят. Помогает только ребут модема-роутера. Ничего не кочегарится.
13.05.2008 09:50
TiRaN
 
Неверно. Потом ничего не раскочегариватеся. Все так же в оффлайне. Да и вешать нечего. В локалке 100 Mbit один комп, 2 кассы и одни весы. Все новенькое. Размер справочника товаров 5 метров максимум. Все пингуется. Это может повесить сервер?....
13.05.2008 10:09
TiRaN
 
Интересно, как это большой трафик может повесить роутер? :) Да еще так, что соединение отваливается? А на этом VPN только кассы? Можно кроме касс через него что-нить юзать? А что если поотключать половину касс и выяснить порог количества касс и объема трафика после которого все виснет?
13.05.2008 10:14
OlegON
 
Роутер не вешается, отваливается VPN, которое потом не поднимается. Смысл бегать, отключать магазины? Дело не в траффике, а интенсивности разовой передачи.
13.05.2008 10:17
Onesoft
 
Цитата:
TiRaN Неверно. Потом ничего не раскочегариватеся. Все так же в оффлайне. Да и вешать нечего. В локалке 100 Mbit один комп, 2 кассы и одни весы. Все новенькое. Размер справочника товаров 5 метров максимум. Это может повесить сервер?....
Тогда проблема однозначно в ЛВС (приведённый мной эпизод выше, разумеется, относился к сети 10 Мbit и 12-ти терминалам, когда в сети магазина ещё с компа на комп перекачивались фильмы - реально происходило)
13.05.2008 10:18
TiRaN
 
Разовая передача. А что это? У меня тоже VPN вис постоянно, пока модем не поменяли.
13.05.2008 10:22
TiRaN
 
Цитата:
Onesoft Тогда проблема однозначно в ЛВС (приведённый мной эпизод выше, разумеется, относился к сети 10 Мbit и 12-ти терминалам, когда в сети магазина ещё с компа на комп перекачивались фильмы - реально происходило)
А что ЛВС? Ну допустим сеть сдохла. Но связь с весами есть. То есть весы-комп работает. Неужели так избирательно отключаются одноовременно 2 кассы? Тут дело в сервисе УКМ сервер. Его перезапускаешь и все иногда начинает работать. Видно когда обновление на кассу падает, сервак начинает проверять ключ. После проверки обменивается с кассой инфой о ключе. Так как сеть загружена время отклика увеличивается. Сервак лочит ключ. Ну или что-то наподобие этого. Есть у кого кряк для УКМ4? :)
13.05.2008 12:25
Onesoft
 
Цитата:
TiRaN А что ЛВС? Ну допустим сеть сдохла. Но связь с весами есть. То есть весы-комп работает. Неужели так избирательно отключаются одноовременно 2 кассы?
Весы работают с сервером по его открытому сокету.
Объясняю принцип обмена данными между сервером и кассой.
0. Касса загрузилась и посылает в сеть UDP-пакет. Сервер, приняв его, открывает сокет и устанавливает связь с сокетом терминала;
1. на сервере появилась нова инфа для касс: сервер пинает кассы, подключённые к нему. Кассы, получившие пинок, начинают лезть в mysql сервера и отбирать данные, которых ещё нет на кассе. Кассы, выходящие из офф-лайна (либо загрузившиеся) также лезут на сервер в БД и смотрят, что нового есть для них.
2. Касса, пробив чек, пинает сервер, сервер лезет в БД кассы и смотрит, что там есть нового и качает это в свою БД. Если касса выходит в on-lайн, сервер в любом случае лезет в её БД.

Таким образом видим, что между кассой и сервером организовываются четыре независимых TCP-соединения (сервер->касса, касса->сервер, БД кассы -> БД сервера, БД сервера -> БД кассы), аналогично организована связь СГО с СМ.

ИТОГ: ЛВС следует настраивать с учётом этого всего. Т.е. кассы должны свободно пинговаться с сервера, а сервер - с касс (аналогично должны быть открыты порты УКМ и MySQL на VPN-маршрутизаторе). Если кассы находятся при этом в другой (по сравнению с сервером) подсети - то в ukmstart.sh в строках запуска ./cashmain добавить ключ -s<IPсервера>
Если надо зафиксировать на сервере порт соединения с терминалами, то в строке запуска службы сервера ([HKLM\SYSTEM\CurrentControlSet\Services\UkmService]\Image Path) добавить ключ --tcp-port=<порт>
Ну и ещё можно доступ с сервера к порту 80 на кассах открыть - чтобы кассовый WEB был доступен.
Вот и всё...
13.05.2008 14:28
OlegON
 
Немного в сторону. Как быть, если будет 500 магазинов? Как их с СГО связывать? Если они сразу ломятся, мне гигабитного канала не хватит...
13.05.2008 14:39
Onesoft
 
Цитата:
OlegON Немного в сторону. Как быть, если будет 500 магазинов? Как их с СГО связывать? Если они сразу ломятся, мне гигабитного канала не хватит...
И сервер с касс, и СГО с СМов забирает чеки по очереди. А вот выгрузку кассы с СМ и СМ с СГО забирают независимо друг от друга, это да. Т.е. ломиться будут одновременно и толкать друг друга локтями. Но протолкнутся же! (спросите у XSeven'а - у него как раз все СМы питаются ценами и товарами с СГО :)
По части работы СГО с СМами в 43-44 версиях уже введён функционал, позволяющий, например, одновременно на всех СМах иметь одинаковую номенклатуру, но разные цены. Т.е. при изменении цен номенклатура трогаться не будет, а каждый СМ заберёт свою порцию цен. Так же и со скидками и прайс-листами.
Конечно, если 500 СМов... То это хорошо бы было провести нагрузочное тестирование, да...
13.05.2008 14:57
TiRaN
 
Цитата:
Onesoft Объясняю принцип обмена данными между сервером и кассой. Касса загрузилась и посылает в сеть UDP-пакет. Сервер, приняв его, открывает сокет и устанавливает связь с сокетом терминала. ЛВС следует настраивать с учётом этого всего.
Инфа подробная. Только почему связь теряется с кассами и не восстанавливается? Настройки сети никто не меняет. Касса загрузилась и посылает в сеть UDP-пакет, а сокет не открывается? А чо ее настраивать-то. Воткнул шнур в коммутатор, отключил всякие фарволы и всего делов. Вот в этом магазине все и оффлайнится. Причем здесь сеть???


Опции темы


Часовой пояс GMT +3, время: 05:28.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.