Войти

Показать полную графическую версию : Выявить и сгруппировать данные из COM-объекта


rudimko
15-01-2014, 12:24
Доброго дня!
Ситуация следующая: подключаюсь к COM-объекту к программе 1С8 для выявления информации о рабочих процессах, но возникла сложность, попробую ее описать.

Если вдруг кому знакомо, то подключение к 1С8:

$connector = New-Object -ComObject V82.COMConnector
$agent = $connector.ConnectAgent('tcp://HOST_SERVER:1540')
$clusters = $agent.GetClusters()
foreach ($cluster in $clusters) {}

$administratorCluster = ""
$passwordCluster = ""
$agent.Authenticate($cluster, $AdministratorCluster, $PasswordCluster)


Далее получаем список соединений:

$connections = $agent.GetConnections($cluster)
foreach ($connection in $connections) {}


Все нужные параметры находятся в $connection

$connection.infoBase - это название базы с которой работает текущее соединение, выводит String

$connection.process - параметры процесса
$connection.process.PID - ID процесса
$connection.process.MemorySize - Отжираемая память
$connection.process.HostName - Имя хоста сервера


Какова цель и какие затыки у меня возникли:
-----------------------------------------------------
Цель:
1. необходимо выявлять рабочие процессы ($connection.process), которые выжирают через-чур много памяти и рубить их (это понятно)
2. необходимо снять информацию с рабочего процесса перед действием №1 (информационная база, соединения на данном рабочем процессе)

Затык:
Т.к. структура COM 1С8 слегка убогая (обратная =\), а именно: переменной $connection выявляем соединение, а переменной $connection.process выявляем рабочий процесс и далее нужные параметры через ".", НО (!!!) рабочему процессу могут принадлежать несколько соединений...

Вопрос:
Как сгруппировать рабочие процессы? Т.е. создать новые объекты и сделать обратную структуру, а именно: Рабочий процесс (с такими же параметрами) -> Соединение (с параметров используемой информационной базы)


Если написал хаотично и не понятно, прошу заранее извинения, в голове каша. ;) Заранее спасибо за помощь!




© OSzone.net 2001-2012