none
Проблема с System.PropertyBagData RRS feed

  • Общие обсуждения

  • При выполнении скрипта на VBS, появляется такое сообщение:

    The process started at 10:09:14 failed to create System.PropertyBagData, no errors detected in the output. The process exited with 128

    Command executed: "C:\WINDOWS\system32\cscript.exe" /nologo "NotProactivatedContractsMonitor.vbs"
    Working Directory: C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 597\371855\

    Правило которое должно получить ответ не создает график, что самое интересное, на основе одного и того-же скрипта создано несколько правил, большая часть отрабатывается нормально. А несколько вот таким образом. Кто встречал? Как решили? Гугл не посоветовал вообще ничего стоящего.

     

Все ответы

  • Это означает, что скрипт не вернул PropertyBag вообще. Проверяйте логику скрипта, часто забывают вернуть "пустой" propertybag. скрипт сам по себе на этом агенте работает?


    http://opsmgr.ru
    7 июня 2011 г. 20:13
    Отвечающий
  • Вот такой скрипт:

     

    Dim objScriptAPI, RetValue, strSQL, strConnect, adoConnection, strResults, oBag
    Set objScriptAPI = CreateObject("MOM.ScriptAPI")
    Set oBag = objScriptAPI.CreatePropertyBag()
    strSQL = "select nvl(round(CNT),-1) as CNT from bit301.undelivered_orders"
    strConnect = "Provider=OraOLEDB.Oracle;Data Source=orcl1;user Id=***;Password=***;"
    Set adoConnection = CreateObject("ADODB.Connection")
    adoConnection.Open strConnect
    strResults = adoConnection.Execute(strSQL)
    RetValue = clng(strResults(0))
    adoConnection.Close

    Call oBag.AddValue("UndeliveredOrders",RetValue)
    Call objScriptAPI.Return(oBag)

     

    Раз выдает ошибку, значит скрипт работает.

    Более того, этот же скрипт выполняется несколько раз, но разными селектами, и все остальные нормально возвращают данные, именно этот не возвращает.

    отдельно этот скрипт отрабатывает все нормально, а в скоме нет.


  • Я вижу конвертацию в Long в скрипте. Эта операция чувствительна к разделителям десятичной части (к локали, по сути). Проверьте, совпадают ли выдаваемые из запроса разделители с разделителями локали аккаунта, от имени которого выполняется правило.

     


    http://OpsMgr.ru/
    8 июня 2011 г. 17:25
    Отвечающий
  • В селекте указано что должно вернуться целое, то есть делителей быть не должно.
  • В селекте указано округлять. Я не знаю как у Oracle, но SQL Server будет выдавать после этой операции значение с десятичными долями равными нулю.

    То есть при ROUND (123.345, -1) результатом будет 120.000(округление по последней цифре целой части).


    http://OpsMgr.ru/
    Отвечающий
  • В данном конкретном случае приходит именно целое число без дробной части. Плюс я думаю что при неверном конвертировании, был бы хоть какой-нибудь алерт.