[ОТВЕТИТЬ]
14.08.2015 18:24
TEHb2
 
Помогите решить проблему.
На одной из касс не проходят скидки.
На соседних нормально. Касса на связи, с этим проблем нет. Переоценка проходит на кассу.
До меня на ней очищали версионность таблиц. Почистили все записи в таблице cnv_table_client_versions. Строку trm_in_aoo тоже.
Кстати, для чего она?
Потом на ней делали восстановление базы.
Но по-прежнему все сваливается на кассу. Но вот скидка!
Сама скидка на артикул и классификатор. Т.е. назначает вторую цену при использовании карты.

Сейчас залез через Putty.
mysql> show processlist;
+----+--------------+--------------------+-----------+---------+------+----------+------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+--------------+--------------------+-----------+---------+------+----------+------------------------------------------------------+
| 3 | ukm_terminal | localhost:55205 | ukmclient | Sleep | 1464 | | NULL |
| 9 | ukmremote | 172.16.47.251:4876 | ukmclient | Sleep | 6278 | | NULL |
| 11 | ukmremote | 172.16.47.251:4880 | ukmclient | Sleep | 1463 | | NULL |
| 13 | ukmremote | 172.16.47.251:2628 | ukmclient | Killed | 49 | updating | delete from trm_in_classif where nomenclature_id = 1 |
| 14 | root | localhost | ukmclient | Sleep | 2485 | | NULL |
| 16 | root | localhost | ukmclient | Query | 0 | NULL | show processlist |
+----+--------------+--------------------+-----------+---------+------+----------+------------------------------------------------------+
6 rows in set (0,00 sec)


mysql> kill 13;
Query OK, 0 rows affected (0,00 sec)


Все равно ничего не происходит.
Я не особо силен в mysql.
Вот наиболее интересные отрывки из лога на кассе
19:54:01: 0x000025c8: INFO: replication#экспорт на терминал Терминал №4#010dc980: Запуск
19:54:01: 0x000025c8: INFO: replication#экспорт на терминал Терминал №4#010dc980: Коррекция версий данных
19:54:01: 0x000025c8: INFO: replication#экспорт на терминал Терминал №4#010dc980: Анализ таблиц и ожидание завершения обратной репликации
19:54:01: 0x000025c8: INFO: replication#экспорт на терминал Терминал №4#010dc980: trm_in_classif, 1 (с 0 по 97477)
19:54:01: 0x000025c8: INFO: replication#экспорт на терминал Терминал №4#010dc980: trm_in_classif, 1. Полная загрузка. Данные необходимо удалить
19:54:02: 0x00002c54: INFO: replication#экспорт на терминал Терминал №5#025566e0: started
19:54:02: 0x00002c54: INFO: replication#экспорт на терминал Терминал №5#025566e0: Запуск
19:54:02: 0x00002c54: INFO: replication#экспорт на терминал Терминал №5#025566e0: Коррекция версий данных
19:54:02: 0x00002c54: INFO: replication#экспорт на терминал Терминал №5#025566e0: Анализ таблиц и ожидание завершения обратной репликации

---------------------------------------
19:53:31: 0x000025c8: WARNING: replication#экспорт на терминал Терминал №4#010dc980: Query failed: Error(1205) Lock wait timeout exceeded; try restarting transaction: SQL delete from trm_in_classif where nomenclature_id = 1. Пауза 30 сек.
----------------------------------
При применении карты в логах кассы, ни в логах на сервере, ничего не отображается.

Подскажите куда копать.
Перезаливать кассу что-то не рискую. У меня в другом магазине схожа, но не совсем. Так там вообще кассы не регистрируются после заливки.
Об этом в другой ветке распишу.
14.08.2015 18:25
TEHb2
 
Да! Забыл.
Версия 49 sp 6.
14.08.2015 19:43
Павел Сосновских
 
репликация сейчас не проходит. trm_in_classif одна из первых таблиц, до товаров/цен/скидок он еще не добрался.
связь плохая между сервером и кассой?
kill 13 зачем? может как раз этим "прибил" репликацию
15.08.2015 09:10
TEHb2
 
Цитата:
Павел Сосновских репликация сейчас не проходит. trm_in_classif одна из первых таблиц, до товаров/цен/скидок он еще не добрался.
связь плохая между сервером и кассой?
kill 13 зачем? может как раз этим "прибил" репликацию
Error(1205) Lock wait timeout exceeded; try restarting transaction: SQL delete from trm_in_classif where nomenclature_id = 1.

13 | ukmremote | 172.16.47.251:2628 | ukmclient | Killed | 49 | updating | delete from trm_in_classif where nomenclature_id = 1

После перезагрузки тоже самое. Переоценки то проходят. И чеки обратно на сервак сыпятся. В обе стороны инфа ходит. Только скидка не идет.

Что сейчас делать?
16.08.2015 11:56
Onesoft
 
Коннекшенов в БД клиента с именем ukmremote должно быть ДВА. Один - на импорт данных, второй - на экспорт. Если их больше двух - KILL надо делать более СТАРЫМ, то есть достаточно было сделать KILL 9.
Поясню: были коннекшены 9 и 11, но "что-то пошло не так" (связь, например), и один из коннекшенов оборвался. Но поскольку процесс репликации происходит в одной открытой транзакции с блокировкой реплицируемых таблиц, этот коннекшен повисает и не даёт следующему создаваемому коннекшену 13 начать репликацию заново - и происходит Lock wait timeout exceeded. Убивая старые коннекшены (9), мы снимаем блокировку.
Итог: должно быть только два коннекшена с наибольшими номерами.
16.08.2015 17:54
TEHb2
 
Пробовал перезаливать кассу.
Взял новый системник CheckWay.
Касса не может зарегистрироваться. При попытке репликации вываливается ошибка.
Это кусок лога с кассы.

19:10:27: 0x00004000: INFO: Global: ---------- Client v.49 Service Pack 6 started -----------
19:10:27: 0x00008002: INFO: sound#0a178eb8: started
19:10:27: 0x0000c003: INFO: NTLP#b700b130: started
19:10:27: 0x00010004: INFO: Connector to server#b700b5a8: started
19:47:27: 0x00010004: INFO: NTLP#b700b130: Socket 10 connected to 172.16.47.251: new channel 1
69364632 created
19:48:22: 0x0001c005: WARNING: debug#/usr/local/storage/home/ukm/build-br-49_sp6-2012_04_19_19
_01_28/ukm/libukm/cprotocolmanager.cpp(146) TableAdjuster: Транзакция завершена
19:48:23: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-49_sp6-2012_04_19_19
_01_28/ukm/ukmclient/ukm-client.cpp(451) StartNetwork: BlokingReplication fail: error status w
hile check_ready_to_commit()
19:48:23: 0x00004000: FATAL: diag: КОД НЕИЗВЕСТЕН НЕИЗВЕСТНАЯ ОШИБКА /usr/local/storage/home/u
km/suite/boost-1.33.1/include/boost/optional/optional.hpp(525) boost::optional_detail::optiona
l_base<T>::reference_const_type boost::optional<T>::get() const [with T = unsigned int], expr:
this->is_initialized()
19:48:23: 0x00004000: INFO: main: terminating global task's
19:48:23: 0x00004000: INFO: hw: terminating poll task's
19:48:23: 0x00004000: INFO: sound#0a178eb8: Pending terminate request received
19:48:23: 0x00004000: INFO: NTLP#b700b130: Pending terminate request received
19:48:23: 0x00008002: INFO: sound#0a178eb8: finished
19:48:23: 0x00004000: INFO: Connector to server#b700b5a8: Pending terminate request received
19:48:23: 0x00010004: INFO: Connector to server#b700b5a8: finished
19:48:23: 0x00004000: INFO: NTLP#b700b130: Channel 169364632 closed
19:48:23: 0x00004000: WARNING: PROTOCOL: ChannelDied
19:48:23: 0x0000c003: INFO: NTLP#b700b130: finished
19:48:28:FATAL: ukmstart.sh: ukmclient exit code = 6
19:48:28:FATAL: ukmstart.sh: Standard error


Что-то с базой на сервере. Снимал дамп. Экспорт/импорт.
Прогонял srvdbcheck.cmdd в логах ничего нет. Все таблицы в норме. На всякий случай прогнал srvdbrepair.cmd. Тоже никаких ошибок нет.

Что теперь делать? Куда копать? У меня сейчас в двух магазинах такая беда. Руководство скоро меня повесит.
Вот кусок лога на сервере
19:46:13: 0x00001d10: INFO: prereplication#терминал id = 25019003#0107ac78: Pending terminate request received
19:46:13: 0x00001d10: WARNING: prereplication#терминал id = 25019003#0107ac78: Query failed: Error(1205) Lock wait timeout exceeded; try restarting transaction: SQL select latest_version, oldest_version from cnv_table_versions where mysterious_id = 25019 and table_name = 'trm_in_items_stocks' for update. Пауза 30 сек.
19:46:13: 0x00001d10: INFO: prereplication#терминал id = 25019003#0107ac78: finished

19:47:20: 0x00000538: INFO: NTLP#0102d738: Socket 1420 accepted from 172.16.47.204: new channel 17258944 created
19:47:20: 0x00001c24: INFO: GetDefaultConfigHandler#172.16.47.204#0105ad30: started
19:47:20: 0x00001c24: INFO: Cash#: успешное подключение из 17258944 канала
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: started
19:47:20: 0x00001c24: INFO: GetDefaultConfigHandler#172.16.47.204#0105ad30: finished
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: Запуск
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: Коррекция версий данных
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: Анализ таблиц и ожидание завершения обратной репликации
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: trm_in_items_stocks, 25019 (с 0 по 26508)
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: trm_in_items_stocks, 25019. Полная загрузка. Данные необходимо удалить
19:47:20: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: trm_in_items_stocks, 25019. Данные удалены

19:47:53: 0x00001e14: INFO: replication#экспорт на терминал Терминал №5#010707d0: Нет данных для репликации
19:47:53: 0x00001e14: INFO: replication#экспорт на терминал Терминал №5#010707d0: finished
19:48:04: 0x00001e78: INFO: replication#экспорт на терминал Терминал №5#0106de88: started
19:48:04: 0x00001e78: INFO: replication#экспорт на терминал Терминал №5#0106de88: Запуск
19:48:04: 0x00001e78: INFO: replication#экспорт на терминал Терминал №5#0106de88: Коррекция версий данных
19:48:04: 0x00001e78: INFO: replication#экспорт на терминал Терминал №5#0106de88: Анализ таблиц и ожидание завершения обратной репликации
19:48:04: 0x00001e78: INFO: replication#экспорт на терминал Терминал №5#0106de88: Нет данных для репликации
19:48:04: 0x00001e78: INFO: replication#экспорт на терминал Терминал №5#0106de88: finished
19:48:12: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: Pending terminate request received
19:48:12: 0x00001c68: WARNING: prereplication#терминал id = 25019003#0102de80: Query failed: Error(1205) Lock wait timeout exceeded; try restarting transaction: SQL select latest_version, oldest_version from cnv_table_versions where mysterious_id = 25019 and table_name = 'trm_in_items_stocks' for update. Пауза 30 сек.
19:48:12: 0x00001c68: INFO: prereplication#терминал id = 25019003#0102de80: finished
19:48:12: 0x00000538: INFO: NTLP#0102d738: Socket 1420 closed
19:48:12: 0x00000538: INFO: NTLP#0102d738: Channel 17258944 closed
19:48:12: 0x00001fa0: INFO: CChannel_closer#channel 17258944#010b6af0: started
17.08.2015 07:14
Mtirt
 
А после перезаливки кассы оптимизацию mysql на кассе делали?
17.08.2015 08:18
TEHb2
 
Цитата:
Mtirt А после перезаливки кассы оптимизацию mysql на кассе делали?
Вот с этого момента можно поподробней. Я обычно просто заливал. Этого хватало. Дайте ссылку, если не трудно.
17.08.2015 10:20
Никита
 
юзани на кассе скрипт
DELETE FROM cnv_table_versions WHERE table_name LIKE "%trm_in%";
DELETE FROM cnv_table_client_versions WHERE table_name LIKE "%trm_in%";
COMMIT;

и выгрузку на нее сделай и будет тебе счастье
17.08.2015 10:28
TEHb2
 
Цитата:
Никита юзани на кассе скрипт
DELETE FROM cnv_table_versions WHERE table_name LIKE "%trm_in%";
DELETE FROM cnv_table_client_versions WHERE table_name LIKE "%trm_in%";
COMMIT;

и выгрузку на нее сделай и будет тебе счастье
Да там нечего удалять. Пустые таблицы
18.08.2015 08:35
Onesoft
 
Касса и сервер не в разных сетях, случайно?
У нас похожие проблемы наблюдаются, когда что-то в сетевом оборудовании настроют (или недонастроют, или оборудование сглючит), и MTU на разных железках оказывается рассогласованным. Выражается это в том числе и тем, что перестают проходить толстые пинги. Вот сейчас, например:

ping -l 21000 192.168.0.227

Обмен пакетами с 192.168.0.227 по с 21000 байтами данных:
Ответ от 192.168.0.227: число байт=21000 время=9мс TTL=126
Ответ от 192.168.0.227: число байт=21000 время=10мс TTL=126
Ответ от 192.168.0.227: число байт=21000 время=9мс TTL=126
Ответ от 192.168.0.227: число байт=21000 время=9мс TTL=126

Статистика Ping для 192.168.0.227:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 9мсек, Максимальное = 10 мсек, Среднее = 9 мсек

Плохими для УКМ являются условия, при которых 4000-6000-байтовые пинги перестают проходить. На что это влияет: короткие пакеты данных реплицируются успешно, а вот большие - нет. Проявлялось как при импорте данных, так и при экспорте. Бывали ситуации, когда после восстановления связи с кассой репликация накопленного на сервере проходила на кассу успешно, а накопившиеся чеки с кассы на сервер - нет. Так же бывало и такое: в консоль SSH кассы коннектишься успешно (малые пакеты данных), но как только запускаешь mc (передача большого блока данных - прорисовка файловых панелей Midnight Commander'а) - связь зависает (но не обрывается).
31.03.2016 11:59
TEHb2
 
Ну вот опять у меня проблема со скидкой на "классификатор и артикул".

Сервер и касса в одной подсети. И пинги нормальные.
Делал очистку версионности таблиц.
Перегружал. Репликация идет долго. Но в итоге все равно данные не спускаются на кассу.
Где посмотреть на кассе, какие значения по данной скидке там сейчас? Какую таблицу проверить?

Главное, что в логах никаких ошибок видимых нет.
13:13:46:INFO: ukmstart.sh: Starting sudo -u ukmclient ./cashmain
13:13:49: 0x00004000: INFO: Global: ---------- Client v.49 Service Pack 6 started -- №12 ---------
13:13:49: 0x00004000: INFO: Global: 4281, 4272, 4359, 4224, 4262, 4297, 4273, 4344, 4351, 4393, 4394, 4389, 4327, 4544, 4596, 4607, 4606, 4271, 4172, 4733, 4562
13:13:49: 0x00008002: INFO: sound#0bb9fac0: started
13:13:49: 0x0000c003: INFO: NTLP#b700b060: started
13:13:49: 0x00010004: INFO: Connector to server#b700b560: started
13:13:49: 0x00010004: INFO: NTLP#b700b060: Socket 10 connected to 172.16.67.251: new channel 196735040 created
13:13:49: 0x00010004: INFO: LOGIN: operation in complete
13:40:43: 0x00004000: INFO: hw: initializing
13:40:43: 0x00004000: INFO: hw: USB-COM No usb-serial devices found in DB
13:40:43: 0x00004000: INFO: hw: Appending new keyboard port '/mb1/kbdp'
13:40:43: 0x00004000: INFO: hw: Appending new COM port '/mb1/com'
13:40:43: 0x00004000: INFO: hw: Appending new cashdrawer port '/mb1/com1/fiscalboard/cd'
13:40:43: 0x00004000: INFO: hw: USB HID keyboards list begin ----
13:40:43: 0x00004000: INFO: hw: No USB keyboards detected
13:40:43: 0x00004000: INFO: hw: USB HID keyboards list end ----
13:40:45: 0x00004000: INFO: context: Push front context CContextDefault
13:40:45: 0x00034008: INFO: CBottomExecutor#0bba9fb0: started
13:40:45: 0x00034008: INFO: CBottomExecutor#0bba9fb0: finished
13:40:45: 0x00004000: DEBUG: debug#/root/rel-49_sp6_patch/libukm/ah_payment_trposx.cpp(1285) loadLibrary: Ошибка загрузки библиотеки: QLibrary::load_sys: Cannot load libtrposx.so (libtrposx.so: cannot open shared object file: No such file or directory)
13:40:46: 0x00004000: WARNING: debug#/root/rel-49_sp6_patch/ukmclient/trposx_ukm.cpp(21) TrposxSenderUkm: Ошибка загрузки библиотеки для авторизации TRPOSX
13:40:46: 0x00004000: DEBUG: luaukm: hello
13:40:47: 0x00004000: WARNING: main: Правильно
13:40:48: 0x00004000: WARNING: OBSOLETE: Update hardware configuration after replication
13:40:48: 0x00004000: INFO: hw: terminating poll task's
13:40:49: 0x00004000: INFO: hw: initializing
13:40:49: 0x00004000: INFO: hw: USB-COM No usb-serial devices found in DB
13:40:49: 0x00004000: INFO: hw: Appending new keyboard port '/mb1/kbdp'
13:40:49: 0x00004000: INFO: hw: Appending new COM port '/mb1/com'
13:40:49: 0x00004000: INFO: hw: Appending new cashdrawer port '/mb1/com1/fiscalboard/cd'
13:40:49: 0x00004000: INFO: hw: USB HID keyboards list begin ----
13:40:49: 0x00004000: INFO: hw: No USB keyboards detected
13:40:49: 0x00004000: INFO: hw: USB HID keyboards list end ----
13:40:50: 0x00004000: DEBUG: luaukm: hello
13:40:51: 0x00004000: INFO: context: cleared stack of contexts
13:40:51: 0x00004000: INFO: context: Push front context CContextDefault
13:40:51: 0x00004000: DEBUG: luaukm: hello
13:41:19: 0x00004000: INFO: context: Push front context CContextReceipt
13:41:39: 0x00004000: INFO: context: Pop front context CContextReceipt
13:43:39: 0x00004000: INFO: context: cleared stack of contexts
13:43:39: 0x00004000: INFO: context: Push front context CContextDefault
13:44:01: 0x00004000: INFO: context: Push front context CContextReceipt
13:44:18: 0x00004000: INFO: context: Pop front context CContextReceipt
13:47:32: 0x00004000: INFO: context: Push front context CContextReceipt

В журнале сервера тоже.
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 Завершено
31.03.2016 13:44:18 0x00001350 INFO converter#{a0d56ec2-3356-4a6d-baf3-86b9d1d09c11}#Супермаг 2.5М экспорт по чекам##010f8510 exporting
31.03.2016 13:44:18 0x00001350 INFO converter#{a0d56ec2-3356-4a6d-baf3-86b9d1d09c11}#Супермаг 2.5М экспорт по чекам##010f8510 started
31.03.2016 13:44:18 0x00001788 INFO converter#{64c33778-b5af-47b4-8a1f-0433fd1f1720}#Стандартный 2 CSV экспорт по смене##01074a98 finished
31.03.2016 13:44:18 0x00001788 INFO converter#{64c33778-b5af-47b4-8a1f-0433fd1f1720}#Стандартный 2 CSV экспорт по смене##01074a98 started
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_subtotal, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_subtotal, 25008001 (с 646477 по 646478)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_item_handler, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_item_handler, 25008001 (с 646559 по 646560)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_item, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_item, 25008001 (с 646686 по 646687)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_header, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_header, 25008001 (с 649961 по 649962)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_footer, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_footer, 25008001 (с 646521 по 646522)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_discount_properties, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_discount_properties, 25008001 (с 526072 по 526073)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_discount_handler, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_discount_handler, 25008001 (с 510513 по 510514)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_discounts, 25008001. Передано записей: 1, удалено: 0
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 trm_out_receipt_discounts, 25008001 (с 510514 по 510515)
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 Анализ таблиц и ожидание завершения обратной репликации
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 Коррекция версий данных
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 Запуск
31.03.2016 13:44:18 0x00001ff4 INFO replication#импорт с терминала Т№4_Сбербанк#01080330 started
31.03.2016 13:44:16 0x00000cb0 INFO CAuthTransmitter#Т№4_Сбербанк#010780e8 finished
31.03.2016 13:44:15 0x00000cb0 INFO CAuthTransmitter#Т№4_Сбербанк#010780e8 started
31.03.2016 13:44:13 0x00000a6c INFO converter#{a0d56ec2-3356-4a6d-baf3-86b9d1d09c11}#Супермаг 2.5М экспорт по чекам##01074a98 finished
31.03.2016 13:44:13 0x00000a6c INFO converter#{a0d56ec2-3356-4a6d-baf3-86b9d1d09c11}#Супермаг 2.5М экспорт по чекам##01074a98 completed
31.03.2016 13:44:13 0x00000a6c INFO converter#{a0d56ec2-3356-4a6d-baf3-86b9d1d09c11}#Супермаг 2.5М экспорт по чекам##01074a98 000513800183.ret
31.03.2016 13:44:13 0x00000a6c INFO converter#{a0d56ec2-3356-4a6d-baf3-86b9d1d09c11}#Супермаг 2.5М экспорт по чекам##01074a98 preparing export...
31.03.2016 13:44:13 0x000003e0 INFO InvoicePrint#0105fd90 Handle new receipt: cash_id=25008002, receipt_id=629549. Owner: invoice_accepted_receipts
31.03.2016 13:44:13 0x00001738 INFO CAnalyze_Commiter#01060590 Handle new receipt: cash_id=25008002, receipt_id=629549. Owner: analyze_accepted_receipts
31.03.2016 13:44:13 0x00001be0 INFO InvoiceNumberProcessor#0105f6e0 Handle new receipt: cash_id=25008002, receipt_id=629549. Owner: invoicenumber_accepted_receipts


Куда копать?
31.03.2016 17:40
Павел Сосновских
 
у вас в предоставленном куске серверного лога - импорт с терминала, нужен экспорт
интересующие данные могут быть в 3х таблицах, в зависимости от того, на что назначена скидка
товары - trm_in_discount_types_items
группы - trm_in_disc_std_classif
списки - trm_in_discount_types_lists
01.04.2016 08:51
TEHb2
 
Скидка на "классификатор и артикул". На каждый товар назначается другая цена, при применении карты клиента.

Сейчас в логе вот такое постоянно встречается

01.04.2016 10:47:52 0x00002490 WARNING replication#экспорт на терминал Терминал №5#01087c60 Query failed: Error(1205) Lock wait timeout exceeded; try restarting transaction: SQL delete from trm_in_classif where nomenclature_id = 1. Пауза 30 сек.
01.04.2016 10:47:01 0x00002490 INFO replication#экспорт на терминал Терминал №5#01087c60 trm_in_classif, 1. Полная загрузка. Данные необходимо удалить
01.04.2016 10:47:01 0x00002490 INFO replication#экспорт на терминал Терминал №5#01087c60 trm_in_classif, 1 (с 143554 по 143556)
01.04.2016 10:47:01 0x00002490 INFO replication#экспорт на терминал Терминал №5#01087c60 Анализ таблиц и ожидание завершения обратной репликации

Ругается на классификаторы? За что конкретно отвечает эта таблица trm_in_classif ???
01.04.2016 09:32
Павел Сосновских
 
trm_in_classif - классификатор, группы товаров
важно не за что она отвечает, а то, что она по алфавиту идет раньше других
перечитываем, видимо, сообщение #5 из этой же темы
01.04.2016 10:12
TEHb2
 
Сейчас было так
mysql> show processlist;
+----+--------------+--------------------+-----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+--------------+--------------------+-----------+---------+------+-------+------------------+
| 1 | ukm_terminal | localhost:42457 | ukmclient | Sleep | 168 | | NULL |
| 3 | ukmremote | 172.16.47.251:3582 | ukmclient | Sleep | 192 | | NULL |
| 5 | ukmremote | 172.16.47.251:3591 | ukmclient | Sleep | 763 | | NULL |
| 6 | root | localhost | ukmclient | Query | 0 | NULL | show processlist |
| 8 | ukmremote | 172.16.47.251:4613 | ukmclient | Sleep | 9 | | NULL |
+----+--------------+--------------------+-----------+---------+------+-------+------------------+
5 rows in set (0,00 sec)
Через несколько секунд при том же запросе выдавал на третьем конекшене ukmremote апдейт как раз данной таблицы
Потом опять ничего. И снова показывал.
Сейчас
mysql> show processlist;
+----+--------------+--------------------+-----------+---------+------+----------+------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+--------------+--------------------+-----------+---------+------+----------+------------------------------------------------------+
| 1 | ukm_terminal | localhost:42457 | ukmclient | Sleep | 96 | | NULL |
| 3 | ukmremote | 172.16.47.251:3582 | ukmclient | Sleep | 500 | | NULL |
| 5 | ukmremote | 172.16.47.251:3591 | ukmclient | Sleep | 96 | | NULL |
| 8 | ukmremote | 172.16.47.251:4613 | ukmclient | Query | 44 | updating | delete from trm_in_classif where nomenclature_id = 1 |
| 9 | root | localhost | ukmclient | Query | 0 | NULL | show processlist |
+----+--------------+--------------------+-----------+---------+------+----------+------------------------------------------------------+
5 rows in set (0,00 sec)

Мне прибивать одну сессию?
И под каким номером?
01.04.2016 10:33
TEHb2
 
mysql> kill 3;
Query OK, 0 rows affected (0,00 sec)

И mysql> show processlist показывает, что процесс 3 все равно весит. Не сразу реагирует что ли?
01.04.2016 11:03
TEHb2
 
Что-то как-то странно.
Вроде таблицы пошли грузится дальше.
В таблице trm_in_discount_types_items значения скидок есть.
Но не работает.
И карту клиента распознает.
01.04.2016 11:08
Павел Сосновских
 
на самом деле есть некоторая неопределенность
может 3ий, а может 5ый, но скорее все же 3ий, т.к. он долго висит
в доке на mysql сказано, что kill может занимать некоторое время
см. оригинал или перевод
01.04.2016 11:45
TEHb2
 
Ну тут уже дело в другом, получается.
Данные в таблице есть
mysql> select * from trm_in_discount_types_items where item='0001720';
+-----------------+---------------+---------+--------+----------+-------------+---------+---------+
| nomenclature_id | discount_type | item | amount | quantity | modificator | version | deleted |
+-----------------+---------------+---------+--------+----------+-------------+---------+---------+
| 1 | 80 | 0001720 | 0.000 | 1.0000 | -20% | 1 | 0 |
| 1 | 130 | 0001720 | 0.000 | 0.0000 | 69.99 | 1 | 0 |
+-----------------+---------------+---------+--------+----------+-------------+---------+---------+
2 rows in set (0,00 sec)

Но почему не работает? Как-то связь нарушилась?
Где можно в структуре посмотреть?
01.04.2016 12:19
TEHb2
 
И за что отвечает trm_in_disc_std2perscard ?
Это и есть таблица карт клиентов?
trm_in_disc_std2perscard_stoplist получается для заблокированных клиентов?
01.04.2016 12:59
Павел Сосновских
 
Цитата:
TEHb2 Ну тут уже дело в другом, получается.
Данные в таблице есть
mysql> select * from trm_in_discount_types_items where item='0001720';
+-----------------+---------------+---------+--------+----------+-------------+---------+---------+
| nomenclature_id | discount_type | item | amount | quantity | modificator | version | deleted |
+-----------------+---------------+---------+--------+----------+-------------+---------+---------+
| 1 | 80 | 0001720 | 0.000 | 1.0000 | -20% | 1 | 0 |
| 1 | 130 | 0001720 | 0.000 | 0.0000 | 69.99 | 1 | 0 |
+-----------------+---------------+---------+--------+----------+-------------+---------+---------+
2 rows in set (0,00 sec)

Но почему не работает? Как-то связь нарушилась?
Где можно в структуре посмотреть?
Тут получается, что есть две скидки. С ид 80 и 130.
в скидке 80 написано, что при количестве товара>=1 давать скидку 20%
в скидке 130, что при количестве>=0 продавать товар по цене 69,99
Сколько этот товар стоит? Мин цена есть? Он весовой? Как эти скидки взаимодействуют по матрице?

Цитата:
TEHb2 И за что отвечает trm_in_disc_std2perscard ?
Это и есть таблица карт клиентов?
trm_in_disc_std2perscard_stoplist получается для заблокированных клиентов?
Это для скидки "Персональная скидка на классификатор (УКМ 2.х)"
Из СМ+ скидки по картам грузятся?
01.04.2016 15:07
TEHb2
 
1 | 80 | 0001720 | 0.000 | 1.0000 | -20% | 1 | 0 | Это вообще что-то левое. Да и не действует данная скидка. Возможно с прежней маркетинговой схемы осталось. В данной схеме на этот товар скидок других нет.

Товар весовой, минимальной цены естественно нет.
В Матрице скидок необходимая мне, т.е. скидка 130 поглощает построчно все остальные.

Где посмотреть, что эта за скидка такая 80, в какой таблице???

На кассе, у которой нет проблем, тоже так же. Т.е. скидка 80 не мешает.
01.04.2016 15:19
Павел Сосновских
 
Цитата:
TEHb2 Где посмотреть, что эта за скидка такая 80, в какой таблице???
В таблице trm_in_discount_types
Если она не удалена, то в современных версиях укма можно прямо в вебе. в параметрах скидки есть "Идентификатор в УКМ"
если удалена, то поле deleted=1 на сервере, а на кассе ее быть не должно,
но тогда и товаров к этой скидке на кассе тоже быть не должно
01.04.2016 16:03
TEHb2
 
Вообще странно.
Скидки на кассе нет. А почему то так отображает.
01.04.2016 16:45
TEHb2
 
Ее и вэбе нет этой скидки. Только запросом на сервере можно посмотреть.
Ну да ладно.

Почему скидка 130 не работает?
Хотя данные есть.
04.04.2016 13:33
TEHb2
 
В общем наковырял такое.
На кассе в таблице скидка есть.
Если посмотреть select * from trm_in_pricelist_items where item='товар';
minprice не равно нулю, хотя должно. И на базе сервера нулевая.
Получается поэтому и не проходит.
Но главное, что Update trm_in_priselist_items set minprice=0 where item='товар'; тоже вываливается в ошибку
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
И вроде мускул как-то оптимизировал.
Какой бы мне параметр подтянуть, чтобы он успевал внести изменения?
05.04.2016 11:21
Павел Сосновских
 
lock висит из-за незавершенной репликации
все "ковыряние" в бд - костыли
надо разбираться, почему репликация не проходит

то, что было про trm_in_classif - это первая таблица, которая должна реплицироваться
не может, потому что есть предыдущая, которая не завершилась - 3 коннекта с ukmremote

сеть, винт, антивирусы/файрволы на сервере...
Опции темы


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

 

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