Имя: Пароль:
1C
 
Зависшие сеансы на сервере 1С (postgresql)
0 KrabCore
 
04.09.15
16:27
Сильно не пинать, только учусь.

Что имеем: х64 сервер 1с, постгрискл от 1с (платформа и версия постгри последняя на сегодняшний день)

На сервере крутятся 2 базы: БП 2 и ЗУП 2.5 Корп. Обе базы типовые, без доработок.
По БП нареканий нет, работает нормально.
С ЗУПом же ситуация печальная - периодически (в основном при проведении документов или расчетах) вылетают конфликты блокировок.
разбирательство привело к тому что в данной базе создаются "пустые" сеансы, которые собственно блокируют базы.

https://gyazo.com/9cc73d0abfd1b5125278dedd05579bc3
Из скриншота видно что к базе есть лишь 4 реальных подключения, и 7 пустых(зависших) подключений которые висят по несколько часов.

Подскажите в чем может быть проблема, и в какую сторону копать?
1 KrabCore
 
04.09.15
16:43
Апну
2 KrabCore
 
04.09.15
17:07
нид хелп, апну еще раз
3 KrabCore
 
04.09.15
17:42
последняя попытка всплыть тему и добиться ответа от многоуважаемых мистян
4 cons74
 
04.09.15
18:22
Откуда сенасы не скажу. Как решить - перезапускать рабочие процессы: сперва ставишь ему использование=нет. Потом когда память с него "уйдет" - можно "удалить".
Ну или в свойствах кластера перезапуск часто.

Думаю, что многих мистян отпугнуло postgre в заголовке-хотя ни мой взгляд он тут не при чем. Да и пятница вечер...
5 rustemg
 
04.09.15
18:30
Повесь на шедулер на Winodws машине выполнение этого скрипта vbs:

'имя пользователя 1С:Предприятия
UserName = "Киилер"

'пароль пользователя 1С:Предприятия
UserPass = "123321"

'имя сервера 1С
ServerName  =    "server1c"
BaseName    =    "base1c"

Dim objFSO
Dim objFile
Dim LogFileName
Dim Result

'Sub CloseConnection()
    Dim Connector, Agent, Cluster, WorkProcess, WorkProcessConnection, Base, Connections, i, CurrentConnection
    Dim BaseList

    Set Connector = CreateObject("V83.COMConnector")
    
    'Селект текущего кластера серверов
    Set Agent = Connector.ConnectAgent(ServerName)
    Set Cluster = Agent.GetClusters()(0)
    
    Agent.Authenticate Cluster, "", ""
    'Agent.Authenticate Cluster, UserName, UserPass
    
    MassBase = Agent.GetInfoBases(Cluster)
    
    For i = LBound(MassBase) To UBound(MassBase)
        Set Base = MassBase(i)
        'MsgBox Base.Name
        If Base.Name = BaseName Then
            
            Sessions = Agent.GetInfoBaseSessions(Cluster, Base)
            For k = LBound(Sessions) To UBound(Sessions)
                
                Set ThisSession = Sessions(k)
                
                If ThisSession.AppID <> "COMConsole" And IsEmpty(ThisSession.process)  Then
                    Agent.TerminateSession Cluster, ThisSession
                    'MsgBox "User: " & ThisSession.UserName & " App ID: " + ThisSession.AppID
                End If
            Next
            
            Exit For
        End If
    Next
    
'End Sub
'CloseConnection()