Панэль дадатковых інструментаў для маніторынгу і даследавання памылак прыкладанняў і інтэграцыйных рашэнняў на платформе дадзеных InterSystems IRIS, інтэграцыйнай платформе Ensemble і СКБД Caché, або гісторыя яшчэ аднаго разы.
У гэтым артыкуле я хачу расказаць аб дадатку, якім, разам са стандартнымі сродкамі адміністравання, карыстаюся штодня пры маніторынгу прыкладанняў і інтэграцыйных рашэнняў на платформе InterSystems IRIS і знаходжанні памылак пры іх узнікненні.
Рашэнне ўключае прагляд і рэдагаванне глабальных масіваў, выкананне запытаў (уключаючы JDBC / ODBC), адпраўка вынікаў пошуку па электроннай пошце ў выглядзе архіваваных XLS-файлаў. Прагляд аб'ектаў класаў з магчымасцю рэдагавання. Некалькі простых графікаў па пратаколах сістэмы.
Гэта CSP-дадатак, на аснове
Калі цікава, то прашу пад кат і ў
Усё пачалося з вывучэння пытання, як лагіраваць змены аб'ектаў у InterSystems IRIS, Ensemble і СКБД Caché.
Прачытаўшы
У выніку атрымалася рашэнне, якое рэалізавана як панэль падкласа %CSP.Util.Pane, у якім ёсць асноўнае акно для каманд і кнопка "Выканаць", плюс налады ўдакладненняў для каманд.
Пры ўводзе "?" атрымліваем кароткае апісанне гэтых каманд:
Глобалы
Самая частая мая каманда - прагляд глобала. Як правіла гэта глабал пратакола пры адладцы свайго ці чужога праекту. Яго можна паглядзець і ў зваротным парадку, а таксама наклаўшы фільтр як на спасылку, так і на дадзеныя. Знойдзеныя вузлы можна рэдагаваць і выдаляць:
Можна выдаліць увесь глабал увёўшы ў камандзе пасля імя мінус ^logMSW-
Але выдаліць так можна толькі глабалы, якія пачынаюцца на ^log (пратакольныя глабалы), г.зн. рэалізавана абмежаванне ад выпадковага выдалення.
Калі пасля імя ўводзіць "*" то атрымаем спіс глабалаў з дадатковымі характарыстыкамі. Другая "*" - дадасць новае поле "Allocated MB", а яшчэ адна зорачка - "Used MB" Гэта аб'яднанне двух справаздач і падзел на "зорачкі" зроблена, каб падзяліць часта доўга фармаваную справаздачу па занятых блоках вялікіх глабалаў.
З гэтай таблічкі можна па актыўных спасылках перайсці да прагляду самога глобала ці да яго прагляду/рэдагаванню стандартным спосабам з партала кіравання клікнуўшы ў поле Permission на R або W.
запыты
Канвертаванне справаздачы ў фармат Excel
Другая функцыя, па частаце выкарыстання, гэта выкананне запытаў. Для гэтага sql-сцвярджэнне ўводны ў якасці каманды.
Асноўнае, чаго мне хапала ў стандартным Партале кіравання сістэмы, гэтае выкананне запытаў па наладжаным у СКБД JDBC-/ODBC-крыніцам і выснова вынікаў у фармаце XLS, архіваванне і пасылка файла на пошту. Для гэтага ў маёй прыладзе перад выкананнем каманды трэба ўлучыць чэк-бокс "Выгрузіць у файл Excel".
Гэтая магчымасць эканоміць мне шмат часу ў паўсядзённым цякучцы, а гатовыя модулі я паспяхова ўбудоўваю ў новыя прыкладанні і інтэграцыйныя рашэнні.
Але для гэтага папярэдне трэба наладзіць шлях стварэння файлаў на серверы і ўліковыя дадзеныя карыстача і паштовага сервера, для гэтага ў сваю чаргу трэба рэдагаваць вузлы глобала налады праграмы ^%App.Setting.
Захаванне справаздач у глабале
Вельмі часта патрабуюцца вынікі выканання справаздачы захаваць у глабале. Для гэтага я ўжываю працэдуры:
Для JDBC:
##class(App.sys).SqlToDSN
Для ODBC:
##class(App.sys).SaveGateway
Для SQL выразаў:
##class(App.sys).SaveSQL
Для Query:
##class(App.sys).SaveQuery
Напрыклад, калі ў панэлі камандай
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
захаваем у масіве ^GN вынік запыту падліку выкарыстання ліцэнзій, а паглядзець, што захавалі ў панэлі можна камандай: result ^GN("%SYSTEM.License:Counts",0)
Модулі дапоўненай функцыянальнасці
І другое паляпшэнне, якое моцна спрасціла і аўтаматызавала мне працу - гэта рэалізацыя магчымасці выконваць спецыяльна напісаныя модулі пры фарміраванні кожнага радка запыту. Гэтым самым я магу на лёце за адзін праход убудоўваць у справаздачу новы функцыянал, напрыклад, актыўныя спасылкі для дадатковых аперацый над дадзенымі.
Прыклад 1: Праца з класам App.Parameter
Стварыць параметр праз "Таблічны навігатар"
Рэдагаваць параметр праз "Параметры"
Прыклад 2: Прагляд глобала праз спасылку "Гісторыя"
Графікі
Пад уражаннем ад артыкула [9] і для візуалізацыі росту баз дадзеных створана старонка, на якую выводзіцца памесячны графік памераў баз дадзеных, створаны па файле iris.log(cconsole.log) па запісах "Expand" рэтраспектыўна ад бягучага дня.
Для прыкладу яшчэ створаны графік падзей у InterSystems IRIS, які таксама фармуецца па файле пратаколу:
Спасылкі на матэрыялы:
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
Дзякую аўтарам гэтых і іншых артыкулаў, якія дапамаглі мне стварыць гэты інструмент.
PS Гэты праект развіваецца і многія задумкі яшчэ не рэалізаваны. У бліжэйшы час планую зрабіць:
1. Шаблон прыкладання на фрэймворку
2. Аўтадакументаванне кода фарматам
Крыніца: habr.com