![]() |
|
Не разрываются программно соединения | ☑ | ||
---|---|---|---|---|
0
Холодильник
24.06.14
✎
18:01
|
Есть код на vbs, который всегда работал и разрывал текущие соединения с базой.
После установки новой платформы(8.3) он перестал разрывать соединения. Что надо исправить в коде, или в настройках консоли серв 1С, чтобы соединения разрывались? Set Bases = CreateObject("Scripting.Dictionary") Bases.Add "test" , "test" ServerName = "Serv1C" For Each Base In Bases BaseName = Bases.Item(Base) If Base = BaseName then Set connector = CreateObject("V83.COMConnector") Set AgentConnection = Connector.ConnectAgent(ServerName & ":1540") Set Cluster = AgentConnection.GetClusters()(0) AgentConnection.Authenticate Cluster, "", "" WorkingProcesses = AgentConnection.GetWorkingProcesses(Cluster) For Each WorkingProcess In WorkingProcesses ConnectString = WorkingProcess.HostName & ":" & WorkingProcess.MainPort Set WorkingProcessConnection = Connector.ConnectWorkingProcess(ConnectString) WorkingProcessConnection.AddAuthentication "Admin", "123" Set ibDesc = WorkingProcessConnection.CreateInfoBaseInfo() ibDesc.Name = BaseName Connections = WorkingProcessConnection.GetInfoBaseConnections(ibDesc) For Each Connection In Connections If (Connection.AppID <> "COMConsole") Then WorkingProcessConnection.Disconnect Connection Else Set ConnectionCOMConsole = Connection End If Next WorkingProcessConnection.Disconnect ConnectionCOMConsole Next End if Next |
|||
1
Холодильник
24.06.14
✎
18:12
|
пробую рабочий код из
v8: VBS. Разгон всех пользователей 1С со всех рабочих процессов и всех кластеров - все равно не разъединяет(( |
|||
2
Холодильник
24.06.14
✎
18:16
|
+ смотрю соединения - после выполнения кода из 1 - польз переподключаются.
т.е. в консоли время начала их сеанса = времени выполнения скрипта |
|||
3
Segate
24.06.14
✎
18:31
|
У меня вот такое нормально работает...
ИД_Скл = СокрЛП(ТекСтр.НомерСоединенияSQL); Попытка Если УничтожатьSQL Тогда Если НЕ ПустаяСтрока(ИД_Скл) Тогда Команда_SQL.CommandText = "kill "+СокрЛП(ИД_Скл); Команда_SQL.Execute(,1,128); КонецЕсли; КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КнопкаВыполнитьНажатие(); Возврат; КонецПопытки; Если УничтожатьV8 Тогда Если ТекСтр.IConnection <> Неопределено Тогда Если НЕ ПустаяСтрока(СокрЛП(ТекСтр.НомерСоединенияV8)) Тогда СчПопыток = 30; ОперацияВыполнена = Ложь; Пока (НЕ ОперацияВыполнена)и(СчПопыток >0) Цикл Состояние("Ждем завершения клиентского потока..."+Строка(СчПопыток)); ОбработкаПрерыванияПользователя(); Попытка ТекСтр.РабочийПроцесс.Disconnect(ТекСтр.IConnection); ОперацияВыполнена = Истина; Исключение ОперацияВыполнена = Ложь; СчПопыток = СчПопыток - 1; КонецПопытки; Для Сч = 1 по 500000 Цикл // Ждем КонецЦикла; КонецЦикла; Если НЕ ОперацияВыполнена Тогда Сообщить("Непредвиденная ошибка уничтожения клиентского потока на сервере V8",СтатусСообщения.ОченьВажное); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; |
|||
4
Segate
24.06.14
✎
18:37
|
Но это для одного конкретного пользователя из списка.... я думаю для всех, ты цикл сможешь сам дописать )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |