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;

и выгрузку на нее сделай и будет тебе счастье
Часовой пояс GMT +3, время: 13:29.

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