[ОТВЕТИТЬ]
25.11.2010 13:37
melisa
 
Добрый день! проблема: не выгружаются чеки из set retail в centrum.
версия системы и программы ретейла 05.02.79
постоянно в логе SETExchanger ретейла выходят ошибки:
25.11.2010 16:27:04.562 ERROR: Поток транспорта чеков.-1 Ошибка обработки Поток транспорта чеков.-1.CHEQUE: Поток транспорта чеков.-1.CHEQUE: dataAccepted
25.11.2010 16:27:04.593 DEBUG: Поток транспорта чеков.-1.OPERDAY >>> PUT
25.11.2010 16:27:04.968 DEBUG: Поток транспорта чеков.-1.OPERDAY: Accept
25.11.2010 16:27:04.984 ERROR: Поток транспорта чеков.-1 Ошибка обработки Поток транспорта чеков.-1.OPERDAY: Поток транспорта чеков.-1.OPERDAY: dataAccepted
25.11.2010 16:27:04.984 DEBUG: Поток транспорта чеков.-1.OPERGANG >>> PUT
25.11.2010 16:27:05.375 DEBUG: Поток транспорта чеков.-1.OPERGANG: Accept
25.11.2010 16:27:05.390 DEBUG: Created a new connection as set in pool sqlserver for class Поток транспорта чеков.-1.OPERGANG. Now have 2 connections checked out.
25.11.2010 16:27:05.390 ERROR: Поток транспорта чеков.-1 Ошибка обработки Поток транспорта чеков.-1.OPERGANG: Поток транспорта чеков.-1.OPERGANG: dataAccepted
25.11.2010 16:27:05.406 DEBUG: Created a new connection as set in pool sqlserver for class Поток транспорта чеков.-1.OPERGANGMONEY. Now have 3 connections checked out.
25.11.2010 16:27:16.234 DEBUG: Поток транспорта чеков.-1.CHEQUE >>> PUT
25.11.2010 16:27:26.078 DEBUG: Поток мониторинга.-1.GETSTATCASHINFO >>> PUT
25.11.2010 16:27:26.687 DEBUG: Поток мониторинга.-1.GETSTATCHEQUE >>> PUT
25.11.2010 16:27:27.562 DEBUG: Поток мониторинга.-1.GETSTATFREESPACE >>> PUT
25.11.2010 16:27:28.265 WARN : Поток мониторинга.-1.GETSTATFREESPACE. Сервер не прислал ACCEPT: SERVER ERROR Поток мониторинга.204.GETSTATFREESPACE: stopPutData

при этом, принудительно (выгрузка чеков намагазине или восстановление чеков в центруме) иногда может выгрузиться через какое-то время... вобщем уже все настройки пересмотрела - с других точек всё прекрасно идёт. :swoon2:
29.11.2010 16:06
TANGOR
 
Поставьте в конфиге транспорта DEBUGLEVEL = ALL
надо посмотреть что именно за ошибка бьётся.


# DebugLevel для лога службы. Может принимать следующие значения: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL и OFF. По-умолчанию = ALL
DebugLevel = ALL
30.11.2010 06:05
melisa
 
добрый день! я ещё в настройках немного подменяла - теперь выдается только ошибка мониторинга. после изменения значения параметра DebugLevel в логе транспорта следующее:
30.11.2010 08:55:13.312 TRACE: Поток импорта.IMPORT: startGetData
30.11.2010 08:55:14.000 WARN : Поток мониторинга.-1.GETSTATFREESPACE. Сервер не прислал ACCEPT: SERVER ERROR Поток мониторинга.204.GETSTATFREESPACE: stopPutData
30.11.2010 08:55:15.000 TRACE: Поток мониторинга.-1.GETSTATTABLESIZE: startGetData
30.11.2010 08:55:15.046 DEBUG: Поток мониторинга.-1.GETSTATTABLESIZE >>> PUT
30.11.2010 08:55:15.671 TRACE: Поток мониторинга.-1.GETSTATTRANSFERCMD: startGetData
30.11.2010 08:55:15.703 DEBUG: Поток мониторинга.-1.GETSTATTRANSFERCMD >>> PUT
30.11.2010 08:55:16.484 TRACE: Поток мониторинга.-1.GETSTATCASHINFO: startGetData
30.11.2010 08:55:16.500 DEBUG: Поток мониторинга.-1.GETSTATCASHINFO >>> PUT
30.11.2010 08:55:17.203 TRACE: Поток мониторинга.-1.GETSTATCHEQUE: startGetData
30.11.2010 08:55:17.250 DEBUG: Поток мониторинга.-1.GETSTATCHEQUE >>> PUT
30.11.2010 08:55:18.156 TRACE: Поток мониторинга.-1.GETSTATFREESPACE: startGetData
30.11.2010 08:55:18.171 DEBUG: Поток мониторинга.-1.GETSTATFREESPACE >>> PUT
30.11.2010 08:55:18.937 WARN : Поток мониторинга.-1.GETSTATFREESPACE. Сервер не прислал ACCEPT: SERVER ERROR Поток мониторинга.204.GETSTATFREESPACE: stopPutData
30.11.2010 08:55:19.937 TRACE: Поток мониторинга.-1.GETSTATTABLESIZE: startGetData
30.11.2010 08:55:19.984 DEBUG: Поток мониторинга.-1.GETSTATTABLESIZE >>> PUT
30.11.2010 08:55:20.359 TRACE: Поток экспорта.EXPORT: startGetData
30.11.2010 08:55:20.843 TRACE: Поток мониторинга.-1.GETSTATTRANSFERCMD: startGetData
30.11.2010 08:55:20.859 DEBUG: Поток мониторинга.-1.GETSTATTRANSFERCMD >>> PUT
30.11.2010 08:55:21.796 TRACE: Поток мониторинга.-1.GETSTATCASHINFO: startGetData
30.11.2010 08:55:21.812 DEBUG: Поток мониторинга.-1.GETSTATCASHINFO >>> PUT
30.11.2010 08:55:22.562 TRACE: Поток мониторинга.-1.GETSTATCHEQUE: startGetData
30.11.2010 08:55:22.593 DEBUG: Поток мониторинга.-1.GETSTATCHEQUE >>> PUT

ещё интересный момент - если я на Retail ставлю принудительно восстановление смены, то чеки высыпаются и в centrum. Ещё - если полностью чищу в Retail таблицу transfercmd, то данные с момента чистки начинают высыпаться, но только некоторое время - потом опять всё тормозит :kez_02:
30.11.2010 06:07
melisa
 
и вообще, может мне кто-нибудь объяснить природу ошибки GETSTATFREESPACE? каковы могут быть причины? просто очень часто в логах вылезает
30.11.2010 13:48
TANGOR
 
Да Melisa конечно расскажем :)
GETSTATFREESPACE - это процедура БД для получения информации о свободном месте на жёстких дисках в магазине, для передачи этой информации на сервер Centrum и для отображения её в утилите SetMonitor
В принципе, если Вас беспокоят ошибки от службы мониторинга, и этой мониторинговой информацией Вы не пользуетесь, то Вы можете просто отключить поток мониторинга на Centrum.

в Вашем втором логе я что то не вижу ошибок
ERROR - это ошибка
WARN - (Warning) это как бы предупреждение о каких либо замечаниях в работе службы.
DEBUG - это отладочная информация.

так вот WARN это не ошибка, в вашем случае это предупреждение о не присланном Accept-е никаких нарушений в работе не несёт.

в 80 версии (или в одном из патчей) вышли исправленные скрипты по этим замечаниям.
01.12.2010 05:51
melisa
 
добрый день!
но дело в том, что проблема выгрузки чеков в центрум так и осталась неразрешённой..... а в логе ошибки только по мониторингу.
01.12.2010 15:22
TANGOR
 
Судя по вашему первому логу, это именно ошибки по чекам:

25.11.2010 16:27:04.562 ERROR: Поток транспорта чеков.-1 Ошибка обработки Поток транспорта чеков.-1.CHEQUE: Поток транспорта чеков.-1.CHEQUE: dataAccepted

причём все 3 типа данных, чека смены, опердни

25.11.2010 16:27:04.984 ERROR: Поток транспорта чеков.-1 Ошибка обработки Поток транспорта чеков.-1.OPERDAY: Поток транспорта чеков.-1.OPERDAY: dataAccepted
25.11.2010 16:27:05.390 ERROR: Поток транспорта чеков.-1 Ошибка обработки Поток транспорта чеков.-1.OPERGANG: Поток транспорта чеков.-1.OPERGANG: dataAccepted


так что попробуйте или перезапросить с centrum чека или попробивать новых и посмотреть лог.
07.12.2010 06:04
melisa
 
добрый день! вобщем сегодня я повторила уже выявленную последовательность: если чеки перестали валиться, то
1. чистим таблицу transfercmd на магазине - чеки начинают валиться с момента очистки таблицы
2. чтобы восстановить чеки до момента очистки таблицы - вручную ставим на магазине восстановление смены

вопрос: с чем может быть связано переполнение таблицы transfercmd? почему чеки не восстаналиваются автоматически? (даже если смена была открыта в 9.00, а таблица очищена в 10:30, то чеки будут только с 10:30)

постоянно чистить и восстанавливать :kez_15:
07.12.2010 06:19
gorbach
 
для того чтобы переотправить в centrum чеки можно сделать так
Код:
/* переотправить все чеки по операционному дню 01.12.2010 */
update chequehead set taken = 0 where operday = 20101201
по ошибкам транспорта: посмотрите, что пишет в лог служба транспорта на centrum, вероятно там есть более подробная информация по ошибкам.
у меня, к примеру, были ошибки при insert'ах в таблицы centrum.
07.12.2010 12:10
TANGOR
 
Вы к хелпам кристалла не обращались? или у вас сервис свой?
тут вариантов тоже кстати много, начиная от отсутствия свободного места на Centrum и заканчивая какими-то не прогнанными скриптами или слетевшими настройками транспорта...
08.12.2010 05:32
gorbach
 
Если вы ко мне, то да, в кристалл обращались. Однако, если честно, то от кристалла добиться вменяемого ответа очень трудно.
Что кассается проблемы с insert'ами (там все было не так однозначно) на стороне centrum, то вероятнее всего то были баги в скрипатах. Потому что после обновления centrum до
5.2.80 все, что до того не грузилось залетело в centrum на раз-два-три.
Так что уже не актуально.
Вообще транспорт в 80-ке хорошо работает и если бы не глюки с выгрузкой, замечательный релиз бы был.
08.12.2010 06:26
melisa
 
добрый день! centrum выдает следующее:
08.12.2010 09:09:15.215 DEBUG: Поток мониторинга.204.GETSTATFREESPACE: putXML
08.12.2010 09:09:15.215 ERROR: Поток мониторинга.204.GETSTATFREESPACE: stopPut: Cannot insert the value NULL into column 'DeviceId', table 'SES_CENTRUM.dbo.ct_TransMonDeviceStat'; column does not allow nulls. INSERT fails.
08.12.2010 09:09:15.215 DEBUG: Created a new connection as set in pool sqlserver for class Поток мониторинга.204.GETSTATFREESPACE. Now have 10 connections checked out.
08.12.2010 09:09:15.215 ERROR: Поток мониторинга.204 Server Exception: Поток мониторинга.204.GETSTATFREESPACE: stopPutData
08.12.2010 09:09:15.215 ERROR: Поток мониторинга.204 processConnection: Поток мониторинга.204 Server exchanger exception

ошибка про insert всплывает и по другим магазинам - но она не мешает передаче данных.

p.s. gorbach спасибо большое за код! я его тока нмного подправила на
update chequehead set taken = 0 where (operday between 20101201 and 20101206)
это мне сохранило много времени =)

по поводу кристалловцев - начальник интересовался как-то по ошибке getstatfreespace - ничего толкового не сказали. Есть местная техподдержка, но они тоже не знают что это :(
08.12.2010 07:32
gorbach
 
ну, вот, centrum ясно дает понять чего у него не выходит. Не может вставить запись со значением поля DeviceId равным NULL в таблицу SES_CENTRUM.dbo.ct_TransMonDeviceStat. Ошибка валится в потоке мониторинга по типу данных GETSTATFREESPACE.
Если это принципиально, то нужно разбираться откуда retail берет NULL в поле DeviceID. Можно кристалл спросить, может что подскажут.
Вообще, как уже говорили, отключите вы поток мониторинга, не сильно он важен.
Гораздо важнее, что происходит с чеками. У вас были ошибки в потоке транспорта чеков. Из-за них в centrum не попадают чеки. Нужно посмотреть, что пишет транспорт в лог на стороне centrum, когда чеки перестают приходить.
08.12.2010 08:06
melisa
 
Цитата:
что пишет транспорт в лог на стороне centrum, когда чеки перестают приходить
а он только это и пишет.
запустила через выше указанный код перевыгрузку чеков с 1-го по 5-е (предварительно очистив таблицу transfercmd) - за 3 дня выгрузилось и встало. ещё интересно - таблица transfercmd на магазине не освобождается. Наверно (судя по сообщениям) центрум не отправляет какой-то флаг на подтверждение и данные остаются в задачах (кст transfercmdhistory пустая). тогда возникает вопрос: есть ли ограничения на количество записей в этой многострадальной табличке? размер базы на данный момент меньше установленного в SQL Manager лимита.
я уже понимаю что проще попробывать всю поднаготную переставить (SQL, set, jre), но в ближайшие пару недель это наврядли возможно, да и вообще уже просто интересно =)
08.12.2010 08:24
melisa
 
нашла новые строчки

08.12.2010 11:16:13.171 DEBUG: Server (Поток транспорта чеков) <<< HANDSHAKE CHEQUE;CHEQUEBANK;OPERDAY;OPERGANG;OPERGANGMONEY;REPCASHMESS;REPDISCOUNTCARD id=204 protocol=2
08.12.2010 11:16:13.171 DEBUG: Server (Поток транспорта чеков.204) >>> HANDSHAKE CHEQUE;CHEQUEBANK;OPERDAY;OPERGANG;OPERGANGMONEY;REPCASHMESS;REPDISCOUNTCARD id=-1 protocol=2
08.12.2010 11:16:33.607 ERROR: Поток транспорта чеков.204 processConnection: readLine return Null
08.12.2010 08:52
melisa
 
строка
08.12.2010 11:16:33.607 ERROR: Поток транспорта чеков.204 processConnection: readLine return Null
это не то - в этот момент перезагружались службы
08.12.2010 09:24
gorbach
 
Ограничений на количество записей в таблице transfercmd нет.
Отключите поток мониторинга (на retail и на centrum). Остановите службу транспорта на centrum. Удалите логи транспорта. На centrum в конфигурационном файле службы транспорта (config.conf) поставте DebugLevel = ERROR (будет в лог писать только ошибки). Запускайте службу транспорта. И смотрите, что будет в логах.
А как вы узнаете, что записи из таблицы не удаляются? Удаляются только те, которые были приняты в centrum. Как только в потоке транпорта ошибка, все, поток встает пока не будет устранена ошибка.
08.12.2010 09:40
melisa
 
08.12.2010 12:32:20.028 ERROR: Поток мониторинга.204.GETSTATFREESPACE: stopPut: Cannot insert the value NULL into column 'DeviceId', table 'SES_CENTRUM.dbo.ct_TransMonDeviceStat'; column does not allow nulls. INSERT fails.
08.12.2010 12:32:20.028 ERROR: Поток мониторинга.204 Server Exception: Поток мониторинга.204.GETSTATFREESPACE: stopPutData
08.12.2010 12:32:20.028 ERROR: Поток мониторинга.204 processConnection: Поток мониторинга.204 Server exchanger exception


вот эти 3 строчки повторяются
отслеживаю я содержание transfercmd в основном через количество строк:
select targetid,transfertype,count(*) from transfercmd (nolock) group by targetid,transfertype
это самый простой вариант )
08.12.2010 10:31
TANGOR
 
1. очистите табличку ct_TransMonDeviceStat
trancate table ct_TransMonDeviceStat.
2. по поводу акцептера, то да если он не вызывается то на магазине задания не грохаются, смотреть надо в настройках экспортных типов данных по чекам, сменам, дням...
3. по мониторингу, если Вы реально не пользуетесь утилитой SetMonitoring на Centrum то потоки мониторинга на Centrum и на Retail можно отключить.
4. в состав версии 05.02.79.03 (и соответственно 5.2.80) входят скрипты по мониторингу исправляющие все ошибки :)
по Centrum: 05028010_SETMonitorC_FullSetup.sql
по Retail: 05028010_SETMonitorR_FullSetup.sql
но после этого и утилиту SetMonitor надо брать тоже из этой версии
08.12.2010 10:59
melisa
 
а иабличка ct_TransMonDeviceStat за что отвечает? её чистить-то вообще можно?
по поводу версий - set retail стоит 79.003
мониторингом на магазинах пользуемся
08.12.2010 11:02
melisa
 
посмотрела - скрипт этот есть
08.12.2010 11:14
TANGOR
 
Цитата:
melisa ...
по поводу кристалловцев - начальник интересовался как-то по ошибке getstatfreespace - ничего толкового не сказали. Есть местная техподдержка, но они тоже не знают что это :(
Рассказываю :koo-koo:
1. мониторинг и потоки:
для передачи статистических данных о работе магазина на Retail создаётся клиентский поток отправки статистических данных (4 или 5 типов данных в зависимости от версии). на Centrum соответственно создаётся принимающий серверный поток. по приходу данных от магазинов поток мониторинга с помощью процедур "путтеров" заносит данные в соответствующие таблицы в БД SES_Centrum.
Период работы потоков - настраиваемый, по умолчанию 30 секунд.
каждая "getter" - (процедура формирования данных) формирует данные в виде XML, поэтому если просто дёрнуть процедуру на магазине то можно увидеть что именно ходит в потоке.
Передаваемые данные:

GETSTATCHEQUE - exec cp_MonOtherStatisticGetInfo_App - процедура собирает статистические данные по чекам, количество за последние 2 дня, сколько всего и сколько отправлено на Centrum. и по заданиям в таблице JobsQueue
пример XML:
<Stat ShopIndex="1">
<Cheque OperDay="20101208" ChequeResv="0" ChequeSend="123" ChequeCount="123" />
<Jobs DeviceType="2" DeviceId="41" JobCount="2" JobDataCount="4" JobStatus="2" JobMinTime="2010-12-08T10:10:44.790" JobMaxTime="2010-12-08T10:11:53.470" />
</Stat>

GETSTATFREESPACE - exec cp_MonOtherStatisticFreeSpaceGetInfo_App - процедура собирает данные по всем физическим жёстким дискам установленным на сервере магазина, точнее на том сервере где стоит MSSQL, по каждому диску собирается данные по общему размеру диска, и свободному месту. размеры в мегабайтах.
пример:
<Stat ShopIndex="1">
<Space DriveName="D" FreeSpace="17471" TotalSpace="69994" />
<Space DriveName="C" FreeSpace="5758" TotalSpace="17484" />
</Stat>

GETSTATTABLESIZE - exec cp_MonOtherStatisticTableSizeGetInfo_App - процедура собирает статистические данные по основным 30 таблицам, с заданиями, логами и т.д., по каждой таблице кол-во строк, объём занимаемого места на диске именно данной таблицей, сколько под неё зарезервировано, и % от общего объёма базы данных
пример:
<Stat ShopIndex="1">
<Table Id="1611308950" Name="DiscountCards" Rows="1234567.00" Reserved="2820176.00" Data="2312008.00" Perc="17.56" />
<Table Id="2061614783" Name="TransferCmdHistory" Rows="109623.00" Reserved="2352728.00" Data="1850784.00" Perc="14.06" />
...
</Stat>

GETSTATTRANSFERCMD - exec cp_MonOtherStatisticTransferCmdGetInfo_App - процедура собирает статистику по заданиям на устройства в таблице TransferCmd
пример:
<Stat ShopIndex="1">
<Trans MinId="187614417" TransCount="6" TransferType="201" Operation="0" ImpExp="3" TargetType="8" TargetId="-1" MinDataCreate="2010-12-08T11:04:52.360" />
...
</Stat>

GETSTATCASHINFO - exec cp_MonOtherStatisticCashesGetInfo_App процедура собирает статистику (состояние) по всем кассам на магазинам.
пример:
<Stat ShopIndex="2">
<Cash CASHNUMBER="1" CASHVERSION="5.2.79.3" Type="DOS" .../>
...
</Stat>
08.12.2010 11:16
TANGOR
 
Цитата:
melisa а иабличка ct_TransMonDeviceStat за что отвечает? её чистить-то вообще можно?
по поводу версий - set retail стоит 79.003
мониторингом на магазинах пользуемся
можно грохать, там только инфа по мониторингу.

а если Вы говорите, что скрипт есть прогоните его ещё раз и на магазе и на centrum.
08.12.2010 11:35
melisa
 
сделала - все выполнила, запустила - теперь с других магазинов полезло:
08.12.2010 14:30:51.984 ERROR: Поток мониторинга.213.GETSTATCASHINFO: stopPut: Violation of PRIMARY KEY constraint 'PK_ct_TransMonCashesFromShop_SC'. Cannot insert duplicate key in object 'ct_TransMonCashesFromShop'.
08.12.2010 11:47
melisa
 
очень очень жду ответа! эту операцию на всех точках провести?
08.12.2010 12:01
TANGOR
 
Цитата:
melisa очень очень жду ответа! эту операцию на всех точках провести?
да конечно нужно прогнать скрипт по мониторингу для магазинов на всех магазах
08.12.2010 12:08
melisa
 
а таблицу чистить? или можно просто стопорнуть мониторинг и sql прогнать?
08.12.2010 12:18
TANGOR
 
после этих скриптов она вообще уже не нужна :) но прогонять скрипты при выключенных потоках мониторинга. да и лучше вообще службу транспорта пока стопорнуть.
08.12.2010 13:07
TANGOR
 
melisa ну как там? скажите что-нибудь :) а то я волнуюсь
:mebiro_01:
08.12.2010 13:07
melisa
 
итак, 5 магазинов обновила - с 4-х перестали сыпаться ошибки, а с одного идут..


Опции темы


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

 

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