|
Поиск контекста запросов веб-сервиса | ☑ | ||
---|---|---|---|---|
0
breezee
28.06.24
✎
04:35
|
Коллеги, добрый день. Подскажите, пожалуйста.
У нас УПП 1.3 переписанная в хлам, формы почти везде обычные (но это не особо важно) Часть запросов, чтобы не грузить базу выполняются в рид онли копии через веб-сервисы. Недавно кто-то положил сервер очень большим отчетом. Подняли тех журнал. Я нашел самый долгий вызов, но у него нет контекста. Не знаете где его найти? Вот сам вызов, самый долгий за последнее время: 43:00.047003-236422001,CALL,2,process=rphost,p:processName=_1C_83_UPP_Proekt,OSThread=28300,t:clientID=126,t:applicationName=WebServerExtension,t:computerName=AD-WEB-COMP-02,t:connectID=20,SessionID=11,Usr=WebSrv,Interface=bc15bd01-10bf-413c-a856-ddc907fcd123,IName=IVResourceRemoteConnection,Method=0,CallID=63606,MName=send,Memory=-1915344,MemoryPeak=15989040,InBytes=4525004,OutBytes=4525533,CpuTime=765625 Контекста нет. Рядом есть call от пользователя - контекст есть 36:31.404006-632204996,CALL,2,process=rphost,p:processName=_1C_83_UPP_Proekt,p:processName=_1C_83_UPP_Proekte0938335928cb342bc5f032c1a3d13d500000000,OSThread=25960,t:clientID=168,t:applicationName=1CV8,t:computerName=AD-TERM-UK-15,t:connectID=43,SessionID=14,Usr=Сидорова Е. В.,Interface=a73a0756-4f0e-4645-bda4-ec823b433ff7,IName=IDataBaseEx,Method=40,CallID=62856,MName=executeSDBLEx_With_Command_Parameter,Memory=14531918,MemoryPeak=28410882,InBytes=0,OutBytes=0,CpuTime=140625 36:31.420005-0,Context,2,process=rphost,p:processName=_1C_83_UPP_Proekt,p:processName=_1C_83_UPP_Proekte0938335928cb342bc5f032c1a3d13d500000000,OSThread=25960,t:clientID=168,t:applicationName=1CV8,t:computerName=AD-TERM-UK-15,t:connectID=43,SessionID=14,Usr=Сидорова Е. В.,Context=' Отчет.ПоставкиПоДоговорам.Форма.Форма.Форма : 103 : ОбновитьОтчет(); Отчет.ПоставкиПоДоговорам.Форма.Форма.Форма : 8 : СформироватьОтчет(ЭлементыФормы.ПолеТабличногоДокументаРезультат); Отчет.ПоставкиПоДоговорам.МодульОбъекта : 4440 : УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект); Отчет.УниверсальныйОтчет.МодульОбъекта : 203 : ПостроительОтчета.Вывести(ТабличныйДокумент); В событиях ниже и выше искал. Все что выполняется под веб-сервисом идет без контекста |
|||
1
lEvGl
гуру
28.06.24
✎
06:58
|
что значит контекст, через сервис всегда серверный
в первом случае - расширение веб сервера, во втором - клиент написано |
|||
2
breezee
28.06.24
✎
07:04
|
(1) Контекст - какой именно код он выполняет, отчет там или еще что
|
|||
3
Valdis2007
28.06.24
✎
07:36
|
(0) что значит "Рядом есть call от пользователя"?
|
|||
4
lEvGl
гуру
28.06.24
✎
08:09
|
(3) а что кол, ну кол, а дальше что
логов этого нет и не будет, ясное дело, только прослеживать по вызовам от самого источника видимо |
|||
5
breezee
28.06.24
✎
08:20
|
(4) Понятно, спасибо. Грустно
|
|||
6
lEvGl
гуру
28.06.24
✎
08:35
|
повесили скл? вариант - анализ его нагрузки, там запрос есть, с описанием по отъеданию ресурсов, сопоставить с запросом уровня приложения, то есть понять какой запрос из 1с превратился в тот, который повесил сервер. Это будет узкое место. Но. Опыт говорит, что это вобще не факт, что причина "повешения" - всегда объемный запрос, как правило это нехватка ресурсов для выполнения возложенных обязанностей. Ну если кончено совсем грубых ошибок в запросе допущено не было, в духе школьников - кривые соединения аля олинклюзив.
|
|||
7
breezee
28.06.24
✎
08:35
|
(6) Да, скуль. Но Это же не реально все запросы логировать чтобы потом сравнивать их с тем что в ТЖ пишется) Хотелось бы понять какой код положил. То есть длительные call собрать по ТЖ за период ДО падения скуля. Вообще так, вроде и делается, но вот у меня контекстов нет на веб сервисах, а я знаю что 99.9% это веб сервис повесил
|
|||
8
lEvGl
гуру
28.06.24
✎
08:38
|
(7) тем более, если в курсе ситуации с базами, пользователями, функционалом, будет проще
на скл определяете самый грузящий запрос, по таблице соответствия таблиц в 1С --> скл, определяете, в какой регистр/документ было обращение и дальше уже прикидываете, в каком из отчетов/обработок есть обращения к этому объекту. Берете найденный запрос, выполняете его трассировку и убеждаетесь, что именно он повесил сервер |
|||
9
breezee
28.06.24
✎
08:43
|
(8) Большое спасибо, я полностью согласен, но во-первых, надо это делать в моменте, а во-вторых запросов к одной таблице может быть много, если таблица ходовая, отчетов тоже очень много. Ну раз по-другому нельзя, будет делать так. Еще раз большое спасибо
|
|||
10
breezee
28.06.24
✎
09:03
|
(3) Ну просто в тех журнале есть событие рядом от пользователя, в нем есть контекст
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |