В локальной сети есть два сервера один сервер (на Windows) имеет web-сервис для обработки данных, второй сервер (под centos'ом) отправляет данные для обработки в этот сервис. Данные из второго сервера отправляются посредством создания фонового задания на втором сервере и подключения внешней обработки в которой заложены все что необходимо. Обмены данными происходят корректно, но бывают моменты когда вешаются фоновые задания с этой внешней обработкой и обмен не происходит. Причем если попытаться открыть эту обработку (после того как фоновые задания с этой обработкой повисли) в клиенте и попытаться отправить данные, то в тонком клиенте при открытии этой обработки клиент вешается (на открытие этой обработки/формы ничего не завязано). Помогает только рестарт сервера - после чего начинает работать все в течении нескольких дней без сбоев, а потом опять происходить непонятное и приходится рестартовать сервер. Был подключен технологический журнал в нем конкретно что-то найти не получается ... подскажите в какую сторону смотреть - вангую в сторону роста сеансовых данных.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В техлогическом журнале море вот таких сообщений:
31:07.182017-0,EXCP,2,process=rphost,ClientID=0,Exception=NetDataExchangeException,Descr='server_addr=any:1560 descr=98(0x00000062): Address already in use line=183 file=./src/DataExchangeServerImpl.cpp'
31:07.182018-0,EXCPCNTX,0,ClientComputerName=,ServerComputerName=,UserName=,ConnectString=
31:07.182019-20019,EXCPCNTX,1,SrcName=CONN,OSThread=-1940957376,process=rphost,ClientID=1,Txt=Outgoing connection closed
31:07.182020-50018,EXCPCNTX,0,SrcName=PROC,OSThread=-1940957376,process=rphost,RunAs=application
31:07.182022-0,SCOM,3,process=rphost,Func='setSrcProcessName(RHostRoot,RHostRoot)'
31:09.942000-0,CONN,3,process=rphost,ClientID=2,Protected=0,Txt='Accepted, client=(2)192.168.1.88:37828, server=(2)192.168.1.88:1561'
31:10.782002-0,SCOM,3,process=rphost,t:clientID=2,Func='setSrcProcessName(ServerJobExecutorContext,ServerJobExecutorContext)'
31:18.022000-0,CONN,3,process=rphost,ClientID=3,Protected=1,Txt='Accepted, client=(2)192.168.1.102:50011, server=(2)192.168.1.88:1561'
31:19.312003-0,CONN,2,process=rphost,t:clientID=3,Txt=eAPSENo
31:19.312015-0,EXCP,2,process=rphost,t:clientID=3,Descr='GSS-API error gss_acquire_cred: Unspecified GSS failure. Minor code may provide more information
'
31:19.312016-0,EXCP,2,process=rphost,t:clientID=3,Descr='GSS-API error gss_acquire_cred:
'
31:20.062001-0,SCOM,3,process=rphost,t:clientID=3,Func='setSrcProcessName(uim_m01,UIM_M01)'
31:20.112010-0,EXCP,4,process=rphost,p:processName=UIM_M01,t:clientID=3,t:applicationName=1CV8C,t:computerName=RemoteApp,t:connectID=5983,Exception=DataBaseException,Descr='Ошибка СУБД:
ERROR: syntax error at or near "application"
LINE 1: lock table pg_class in application share mode
непонятно что это вообще
31:07.182017-0,EXCP,2,process=rphost,ClientID=0,Exception=NetDataExchangeException,Descr='server_addr=any:1560 descr=98(0x00000062): Address already in use line=183 file=./src/DataExchangeServerImpl.cpp'
31:07.182018-0,EXCPCNTX,0,ClientComputerName=,ServerComputerName=,UserName=,ConnectString=
31:07.182019-20019,EXCPCNTX,1,SrcName=CONN,OSThread=-1940957376,process=rphost,ClientID=1,Txt=Outgoing connection closed
31:07.182020-50018,EXCPCNTX,0,SrcName=PROC,OSThread=-1940957376,process=rphost,RunAs=application
31:07.182022-0,SCOM,3,process=rphost,Func='setSrcProcessName(RHostRoot,RHostRoot)'
31:09.942000-0,CONN,3,process=rphost,ClientID=2,Protected=0,Txt='Accepted, client=(2)192.168.1.88:37828, server=(2)192.168.1.88:1561'
31:10.782002-0,SCOM,3,process=rphost,t:clientID=2,Func='setSrcProcessName(ServerJobExecutorContext,ServerJobExecutorContext)'
31:18.022000-0,CONN,3,process=rphost,ClientID=3,Protected=1,Txt='Accepted, client=(2)192.168.1.102:50011, server=(2)192.168.1.88:1561'
31:19.312003-0,CONN,2,process=rphost,t:clientID=3,Txt=eAPSENo
31:19.312015-0,EXCP,2,process=rphost,t:clientID=3,Descr='GSS-API error gss_acquire_cred: Unspecified GSS failure. Minor code may provide more information
'
31:19.312016-0,EXCP,2,process=rphost,t:clientID=3,Descr='GSS-API error gss_acquire_cred:
'
31:20.062001-0,SCOM,3,process=rphost,t:clientID=3,Func='setSrcProcessName(uim_m01,UIM_M01)'
31:20.112010-0,EXCP,4,process=rphost,p:processName=UIM_M01,t:clientID=3,t:applicationName=1CV8C,t:computerName=RemoteApp,t:connectID=5983,Exception=DataBaseException,Descr='Ошибка СУБД:
ERROR: syntax error at or near "application"
LINE 1: lock table pg_class in application share mode
непонятно что это вообще
Процедура ОповеститьОбработчик(ВнешнийОбработчик,Событие,ОбъектСобытия,ДанныеДляОбработки,ВнешнееСобытие) Экспорт
Менеджер = ВнешниеОбработки;
Попытка
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ВнешнийОбработчик.ХранилищеОбработки.Получить());
ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище,,Ложь);
Исключение
ЗаписьЖурналаРегистрации("Создание внешнего модуля: ОШИБКА! '"+ОписаниеОшибки()+"'", УровеньЖурналаРегистрации.Предупреждение);
ИмяОбработки = Неопределено;
КонецПопытки;
Если НЕ ИмяОбработки = Неопределено Тогда
ОбработкаОбъект = Менеджер.Создать(ИмяОбработки);
Настройки = Новый Структура;
Для Каждого ДанныеПеременных Из ВнешнийОбработчик.НастройкиМодуля Цикл
Настройки.Вставить(ДанныеПеременных.Переменная,ДанныеПеременных.ЗначениеПеременной);
КонецЦикла;
Для Каждого ДанныеПеременных Из ВнешнийОбработчик.Команды Цикл
Настройки.Вставить(ДанныеПеременных.ИмяМетода,ДанныеПеременных.ЭлементСвязки);
КонецЦикла;
Настройки.Вставить("СсылкаНаМодуль",ВнешнийОбработчик.Ссылка);
Попытка
ОбработкаОбъект.Настройки = Настройки;
Исключение
ЗаписьЖурналаРегистрации("Настройка внешнего модуля: ОШИБКА! '"+ОписаниеОшибки()+"'", УровеньЖурналаРегистрации.Предупреждение);
КонецПопытки;
Если НЕ ВнешнееСобытие Тогда
ОбработкаОбъект.ОбработатьВнутреннееСобытие(СокрЛП(Событие),ОбъектСобытия);
ИНаче
ОбработкаОбъект.ОбработатьВнешнееСобытие(ДанныеДляОбработки);
КонецЕсли;
КонецЕсли;
УдалитьИзВременногоХранилища(АдресВоВременномХранилище);
КонецПроцедуры
ПоказатьНа всякий случай в конце выполнения добавил УдалитьИзВременногоХранилища(АдресВоВременномХранилище);
Процедура ОбработатьВнутреннееСобытие(Событие,ОбъектСобытия) Экспорт
Если Событие = "Изменение" Тогда // Обработка события изменения
// обработка объекта Поступление товаров и услуг
Если НЕ НеобходимоОбработатьСобытиеПоОбъекту(ОбъектСобытия) Тогда
Возврат;
КонецЕсли;
СтруктураДанныхОтправки = Новый Структура;
СтруктураДанныхОтправки.Вставить("ТипОбъекта",СокрЛП(ОбъектСобытия.Ссылка.Метаданные().Имя)); // фиксирование в сервисе что за объект
СтруктураДанныхОтправки.Вставить("Событие",Событие); // тип события
СтруктураДанныхОтправки.Вставить("Объект",ПреобразоватьДокументКФорматуПередачи(ОбъектСобытия)); // подготовленный объект
// Инициализация отправки данных в сервис
Определения = Новый WSОпределения("http://****************************************/WSProcessingExternalEvents.1cws?wsdl", СокрЛП(Настройки.Логин),СокрЛП(Настройки.Пароль));
Прокси = Новый WSПрокси(Определения, "ControlOfExternalModules", "WSImportDate","WSImportDateSoap");
Прокси.Пользователь = СокрЛП(Настройки.Логин);
Прокси.Пароль = СокрЛП(Настройки.Пароль);
Результат = Прокси.ImportDate(СтруктураДанныхОтправки);
Если Результат.status = "error" Тогда
ЗначениеИзДанных = Результат.error;
Попытка
ИсключениеОписание = ЗначениеИзДанных;
Исключение
ИсключениеОписание = ОписаниеОшибки();
КонецПопытки;
ВызватьИсключение ИсключениеОписание;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьВот код самого обработчика передается текст
00:01.968002-1069995,CONN,0,process=rphost,t:clientID=14645,t:clientID=14645,t:computerName=servcentos,t:applicationName=BackgroundJob,t:connectID=14499,Calls=14404
00:01.968021-0,CONN,1,process=rphost,ClientID=14644,Txt=Incomming connection closed: long still
частенько вываливаются вот такие вот записи в тех журнале
Стоп точно ....
Прокси = Новый WSПрокси(Определения, "ControlOfExternalModules", "WSImportDate","WSImportDateSoap");
Прокси.Пользователь = СокрЛП(Настройки.Логин);
Прокси.Пароль = СокрЛП(Настройки.Пароль);
Прокси.Таймаут = 9;
Прокси = Новый WSПрокси(Определения, "ControlOfExternalModules", "WSImportDate","WSImportDateSoap",,9);
Прокси.Пользователь = СокрЛП(Настройки.Логин);
Прокси.Пароль = СокрЛП(Настройки.Пароль);
Правильный код, иначе будет ошибка
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот