убрал запись с указанием сервера, перезапустил кассу. ничего не поменялось.
внимательнее посмотрел логи и сравнил ещё раз запрос-ответ.
как я понял, сам сервер при соединении через сокет отдаёт неверный порт подключения и по этим данным касса, естественно, не может установить соединение.
есть у кого мысли по поводу того, где можно отредактировать эти данные?
лог кассы:
после запуска кассы получает верные данные
10:31:10: 0x00004000: INFO: Global: ---------- Client v.65 Service Pack 2 started -----------
10:31:10: 0x00004000: INFO: Global: ---------- Patch#1 7316 -----------
10:31:10: 0x0000c003: INFO: sound#b6c07548: started
10:31:10: 0x00010004: INFO: licsvc#b6c0a1a0: started
10:31:10: 0x00014005: INFO: mngsvc#0e4c9cf8: started
10:31:12: 0x00004000: INFO: Global: database host:127.0.0.1 db:ukmclient user:ukm_terminal port:3306
10:31:12: 0x00004000: INFO: Global: ---------- Installed service pack 2 -----------
10:31:12: 0x0001c007: INFO: NTLP#b6c0ae48: started
10:31:12: 0x00020008: INFO: Connector to server#b6c2cff0: started
10:31:24: 0x00020008: INFO: NTLP#b6c0ae48: Socket 15 connected to 192.168.1.20: new channel 3066224696 created
10:31:24: 0x00024009: INFO: NtlpTrnManager: Remote username: ukm3w5e111lt88xk. ptr = ffffffffb6c2e038
10:31:24: 0x00024009: INFO: NtlpTrnManager: Answer for 192.168.1.201 host: remotehost, db = ukmclient, port = 3306, user = ukm3w5e111lt88xk
10:31:24: 0x00028009: INFO: NtlpTrnManager: Remote username: ukm3w5e111lt88xk. ptr = ffffffffb6c2e038
10:31:24: 0x00028009: INFO: NtlpTrnManager: Answer for 192.168.1.201 host: remotehost, db = ukmclient, port = 3306, user = ukm3w5e111lt88xk
10:31:24: 0x00020008: INFO: LOGIN: operation in complete
10:31:26: 0x00004000: INFO: hw: initializing
10:31:26: 0x00004000: INFO: hw: USB-COM No usb-serial devices found in DB
10:31:26: 0x00004000: INFO: hw: Appending new keyboard port '/mb1/kbdp'
10:31:26: 0x00004000: INFO: hw: Appending new COM port '/mb1/com'
10:31:26: 0x00004000: INFO: hw: Appending new cashdrawer port '/mb1/com1/fiscalboard/cd'
10:31:26: 0x00004000: INFO: hw: USB HID keyboards list begin ----
10:31:26: 0x00004000: INFO: hw: No USB keyboards detected
10:31:26: 0x00004000: INFO: hw: USB HID keyboards list end ----
10:31:31: 0x00004000: DEBUG: luaukm: hello
10:31:31: 0x00004000: INFO: context: Push front context CContextDefault
10:31:31: 0x0003800b: INFO: CBottomExecutor#b6c85f20: started
10:31:31: 0x0003800b: INFO: CBottomExecutor#b6c85f20: finished
10:31:33: 0x00004000: WARNING: main: Правильно
10:31:33: 0x0004000c: INFO: UpdatesDownloadMonitor#b6652a98: started
после запуска процедуры возврата - нет
10:35:45: 0x00004000: INFO: NtlpTrnManager: Receive host:192.168.1.20, db:ukmserver, port: 0, user: ukm00000002059pc
10:37:53: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-65-2015_07_13_18_26_15/ukm/libukm/ccontext_default.cpp(706) HandleReturnbyreceiptBasic: Ошибка при подключении БД. Параметры подключения: host=192.168.1.20, user=ukm00000002059pc, db=ukmserver, port=0: Error(2003) Can't connect to MySQL server on '192.168.1.20' (110): SQL
логи сервера:
что видит сервер при запуске укм-клиента на кассе
10:29:08: 0x00001510: INFO: CAnalyze_Commiter#020d6540: Handle new receipt: cash_id=1001004, receipt_id=3703. Owner: analyze_accepted_receipts
10:30:56: 0x000016fc: INFO: NTLP#02106f60: Socket 3284 accepted from 192.168.1.201: new channel 121178208 created
10:30:56: 0x000016f8: INFO: diag: incoming command 101
10:30:56: 0x000036f4: INFO: CCash_loginner#192.168.1.201#07429160: started
10:30:56: 0x000016f8: INFO: diag: finished command 101
10:30:56: 0x000036f4: INFO: NtlpTrnManager: Receive host:192.168.1.201, db:ukmclient, port: 3306, user: ukm3w5e111lt88xk
10:30:56: 0x000036f4: INFO: NtlpTrnManager: Receive host:192.168.1.201, db:ukmclient, port: 3306, user: ukm3w5e111lt88xk
10:30:57: 0x000036f4: INFO: Cash#Терминал №101: успешное подключение из 121178208 канала
10:30:57: 0x00001788: INFO: replication#экспорт на терминал Терминал №101: Запуск
10:30:57: 0x00001788: INFO: replication#экспорт на терминал Терминал №101: формирование предварительного списка таблиц для репликации.
10:30:57: 0x00001788: INFO: replication#экспорт на терминал Терминал №101: Коррекция версий данных
10:30:57: 0x00001764: INFO: replication#импорт с терминала Терминал №101: Запуск
10:30:57: 0x00001764: INFO: replication#импорт с терминала Терминал №101: формирование предварительного списка таблиц для репликации.
10:30:57: 0x00001764: INFO: replication#импорт с терминала Терминал №101: Коррекция версий данных
10:30:57: 0x00001788: INFO: replication#экспорт на терминал Терминал №101: Анализ таблиц
10:30:57: 0x000036f4: INFO: CCash_loginner#192.168.1.201#07429160: finished
10:30:58: 0x00001788: INFO: replication#экспорт на терминал Терминал №101: Нет данных для репликации
что отдаёт сервер при запуске возврата
10:35:17: 0x000016f8: INFO: diag: incoming command 244
10:35:17: 0x000016f8: INFO: NtlpTrnManager: Remote username: ukm00000002059pc, for host: 192.168.1.20
10:35:18: 0x000016f8: INFO: NtlpTrnManager: Answer for 192.168.1.20 host: remotehost, db = ukmserver, port = 0, user = ukm00000002059pc
10:35:18: 0x000016f8: INFO: diag: finished command 244
извиняюсь за то, что плодюпложу развожу много постов.
в момент отказа запуска возврата на экране кассы появляется окно ошибки, где имя пользователя ukm000000002059pc, которое отдаёт сервер. соответственно, проблема именно в сервере, т.к. совпадают все данные подключения, но отдаётся неверный порт, в который пытается стучаться касса.
А если netstat -an или tcpdump посмотреть в момент отрыва, он правда на 0 пытается лезть? не уверен, что ему удастся создать такой пакет, но вдруг... Просто иногда 0 обозначает бродкаст или "по умолчанию", а по умолчанию там честный 3306.
да, сервер через sql manager принимает соединение по 3306 порту по стандартным имени и паролю. по данным временного подключения не пускает, ибо пароля не знаю.
время на сервере и кассе примерно одинаково, но не синхронно, т.к. кассы берут время с другого сервера.
от техподдержки с+ получил, наконец, ответ. будем его прорабатывать.
Цитата:
10:35:18: 0x000016f8: INFO: NtlpTrnManager: Answer for 192.168.1.20
host: remotehost, db = ukmserver, port = 0, user = ukm00000002059pc
в данном случае port = 0 - значит использовать порт по умолчанию, а порт по умолчанию 3306
в логе
10:37:53: 0x00004000: WARNING:
debug#/usr/local/storage/home/ukm/build-br-65-2015_07_13_18_26_15/ukm/libukm/ccontext_default.cpp(706)
HandleReturnbyreceiptBasic: Ошибка при подключении БД. Параметры
подключения: host=192.168.1.20, user=ukm00000002059pc, db=ukmserver,
port=0: Error(2003) Can't connect to MySQL server on '192.168.1.20'
при возврате при попытке подключения в mysql 192.168.1.20, получаем Can't connect to MySQL server on '192.168.1.20'
проблема скорей всего в сети
попробуйте сделать возврат получите ошибку вида (см. выше)
на сервере в бд mysql в таблице user будет запись для пользователя ukm00000002059pc (взять из последних логов)
поставьте ему пароль такой же как у root
и попробуйте подключиться с кассы к mysql на 192.168.1.20 с логином ukm00000002059pc и паролем CtHDbCGK.C
скорей всего получите ошибку Can't connect to MySQL server on '192.168.1.20'
причем если локально подключаться с 192.168.1.20 в mysql с такими данными все ок
=> кто-то между кассой и сервером блокирует порт 3306
вчера прописал всевозможные правила разрешений в брандмауэре - не помогло. сейчас отключил доменное наблюдение - не помогло. отключил слежение ещё и частных и гостевых сетей.
постучался телнетом в различных направлениях на порт 3306. телнет цепляется.
попробовал возврат - работает.
на данный момент проблема решена. если это оказалось не то решение, уважаемые коллеги, напишу здесь.