01.04.2021 15:41
TEHb2
 
Есть связка Set Retail 10 в качестве фронта с бэком в виде 1С Далион. Причем, во фронте нет делений на магазины. Каждая касса связана с главным сервером Set Centrum. А магазинов, на минуточку, около 170-180. Зачем так сделали - не понятно. Видимо посчитали, что в магазинах по одной-две кассы - пойдет такая структура.
Объекты раскиданы далеко, на них могут быть проблемы со скоростью интернета и т.п.
Обмен происходит через WS.
Из бэка, видимо, несколько раз запустили общую загрузку или что-то подобное. Плюс по регламенту бэк продолжал отправлять на загрузку обычные данные.
Итогом всего этого стало скопление большого числа данных.
Если в веб-интерфейсе Set Centum посмотреть в Мониторинге на "Товары" - "Не загружены в магазины" , то можно увидить колоссальное число в полмиллиона. А главное, выгрузка из бэка уже остановлена, а данный показатель продолжает увеличиваться.
Сотрудники отдел-IT этой организации видят только один выход - ждать. Пока все это дело не рассосется.
Но нельзя же так жить, товарищи!!! Должно же быть решение!
Как-нибудь прибить загрузку, очистив таблицу обмена или еще что-то? Вариант с очисткой таблицы товаров на кассе и новой загрузкой - слишком кардинальный и долгий.
Какие есть варианты? Заходить на каждую кассу, цепляться к БД. Искать последние документы и прибывать их. Выравнивать с данными в БД на сервере.
Может скрипт какой? Почитал форум, не нашел прямого ответа. Может плохо посмотрел. Если было уже тут, киньте в меня ссылкой, пожалуйста. Если нет, то огромная просьба - навести на мысль.
Это потом уже будем перестраивать структуру, вводить магазинные сервера и т.п.
Что сейчас делать, с учетом того, что не одна касса, а множество?
Почитал про структуру Set на официальном сайте, появилось пару мыслей. Но все это, как хирургическое вмешательство. Пока не рискую без подтверждения.
Пока оставляю на ночь включенными кассы. Может хоть часть информации просочится.
01.04.2021 16:21
TEHb2
 
В goods.log на кассе обнаружил вот такое
... 13 more
01.04 18:18:56.046 ERROR [HttpBasedGoodsFeedbackSender] failed to ack {}
ru.crystals.httpclient.ServerConnectorException: Could not connect to server on call: Obj - java:app/SET-Products/SET/ProductsFileTransferBean!ru.crystals.setretailx.products.common.IProductsManagerFileTransferRemote meth - acknowledgeProducts
at ru.crystals.httpclient.ServerConnector.getResponse(ServerConnector.java:261) ~[ServerHttpClient.jar:10.2.85.0]
at ru.crystals.httpclient.ServerConnector.requestServlet(ServerConnector.java:186) ~[ServerHttpClient.jar:10.2.85.0]
at ru.crystals.httpclient.ServerConnector.requestRPC(ServerConnector.java:152) ~[ServerHttpClient.jar:10.2.85.0]
at ru.crystals.setretailx.products.common.IProductsManagerFileTransferRemote_Stub1F998EFC.acknowledgeProducts(IProductsManagerFileTransferRemote_Stub1F998EFC.java) ~[?:10.2.95.1]
at ru.crystals.pos.catalog.transport.feedback.HttpBasedGoodsFeedbackSender.send(HttpBasedGoodsFeedbackSender.java:72) [goods.jar:10.2.95.0]
at ru.crystals.pos.catalog.transport.feedback.GoodsFeedbackTask.doJob(GoodsFeedbackTask.java:114) [goods.jar:10.2.95.0]
at ru.crystals.pos.catalog.transport.feedback.GoodsFeedbackTask.run(GoodsFeedbackTask.java:72) [goods.jar:10.2.95.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_112]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_112]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_112]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_112]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_112]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_112]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112]
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_112]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_112]
at java.net.SocketInputStream.read(SocketInputStream.java:170) ~[?:1.8.0_112]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_112]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_112]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[?:1.8.0_112]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_112]
at sun.net.) ~[?:1.8.0_112]
at sun.net.) ~[?:1.8.0_112]
at sun.net.) ~[?:1.8.0_112]
at sun.net.) ~[?:1.8.0_112]
at ru.crystals.httpclient.ServerConnector.getResponse(ServerConnector.java:232) ~[ServerHttpClient.jar:10.2.85.0]
... 13 more
01.04.2021 16:50
TEHb2
 
В document.log обнаружил похожее

01.04 10:24:51.165 ERROR [FileReader] Could not get new file from server
ru.crystals.httpclient.ServerConnectorException: Could not create connect to server on call: Obj - java:app/SET-Transport-System/SET/TransportSystem/Cash/FileTransferManager!ru.crystals.transport.cash.FileTransferManager meth - getNewFile
at ru.crystals.httpclient.ServerConnector.initConnect(ServerConnector.java:447) ~[ServerHttpClient.jar:10.2.85.0]
at ru.crystals.httpclient.ServerConnector.requestServlet(ServerConnector.java:182) ~[ServerHttpClient.jar:10.2.85.0]
...
...

01.04 10:37:37.205 ERROR [DocumentSender] Send document error:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_112]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_112]
at java.net.SocketInputStream.read(SocketInputStream.java:170) ~[?:1.8.0_112]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_112]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_112]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[?:1.8.0_112]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_112]
at sun.net.) ~[?:1.8.0_112]
...
....
02.04.2021 09:28
nik_ll
 
можно грохнуть (каскадно очистить) очередь товаров с центрума на кассы - un_cg_product_file_for_cashes
и после этого сделать выгрузку без снежного кома.
05.04.2021 13:29
TANGOR
 
1. есть же конкретные рекомендации для подобных сетей,
например грузить отдельно товары, без адресно, и отдельно цены по магазинам.
так как обработка и загрузка цен происходит быстрее чем по товарам, по которым в 90% случаях ничего не меняется.
2. очередь конечно можно почистить. не вижу проблем. просто нужно разобраться с рекомендациями по импорту, или по настройкам размеров пакетов и т.д.
3. 180 магазинов на одном сервере... и что? Есть примеры и > 4000 магазинов на одном сервере Set Centrum 10.

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