Такая формулировка может запутать. А что если так: структура MyExecutor включает в себя анонимное поле, в котором может быть что-то, соответствующее интерфейсу MyDatabase.
Проверку на буквы, цифры, символы ( вместо $translate ) в программе лучше переписать через всё тот же Pattern Matching. Ибо русский ( или другие ) символы, utf-8, настройки инстанса и т.д ;)
Если аудит выключен, то его надо включить, выбрав пункт меню «Enable Auditing».
И помнить, что в менеджере задач по умолчанию запущена программа очистки журнала аудита. В последней версии 2017.2 «Очистить всю информацию для аудита с момента переключения журнала», а в предыдущих ( точно в 2013, 2014 ) все что старше 2 месяцев
Думаю будет интересно, если поделитесь прикладным опытом исходя из типового сценария — вот «у одного моего знакомого» был grafana-дашборд для cache-сервера, в нем объединены метрики из ( node_exporter || wmi_exporter ) && cache_exporter… Какие именно метрики наиболее полезны и почему, куда смотреть в первую очередь, куда потом, куда копать глубже, как настроили для себя alert ы и примеры как справлялись с проблемными ситуациями
Так я же предлагаю улучшить их использование — переменные шаблона можно использовать для генерации панелей SingleStat.
слова «рутина» и «программа» взаимозаменяемы.
Замечание было не про термины рутина — программа, а про способ организации кода. Зачем вы используете дополнительный модуль ( рутина, программа ) с кодом, когда у вас есть класс, в который это все можно было сложить, задокументировать, покрыть тестами ( ыы :). Зачем в 2017 году использовать рутины-программы, когда у вас есть более удобная высокоуровневая абстракция — класс.
Насчет размазанности проверки версий — это к ISC -).
Нет, к вам. Это вы так организовали код, что одни и те же проверки многоратно повторяются. Принцип «Однажды и только однажды»?.. В Каше есть всё, чтобы переписать ваш код более лаконично и наглядно.
и брать метрики напрямую из SYS.Stats
Я попался с такой попыткой на версии 2014.1.4 — там баг для класса SYS.Stats.Dashboard. Имхо, более старые низкоуровневые функции работают надежней. Ну или тесты ;)
«отсутствие данных в Singlestat-панелях (которые, естественно, предполагают единственное значение). У нас сервера два, вот и значения два.» — делаем отдельную строку, определяем дополнительную переменную с именами серверов, в панели используем опцию «повторить для переменной». Вот тут пример
Замечание к реализации странице выдачи метрик — программа ( программа, Карл! ) и класс. Имхо класса более чем достаточно. Перед взятием метрик по коду размазана проверка версии сервера — если что, в каше есть режимы генерации кода
Товарищ ;) Рутины и инклуды можно было экспортировать как простой текст задолго до появления XML.
DFI даже в «плоском» виде представляют собой XML. Web файлам в базе делать нечего ;) За статью спасибо!
Начиная с выхода… и версии Caché 2016.2, у вас будет возможность ...
Если мне не изменяет память, класс %Compiler.UDL.TextServices с необходимыми методами появился где то в версии 2014.1
Так что, скорее — «достаточно давно есть возможность» ;)
Не все так думают, и не все от этого в восторге
w ##class(Security.Users).Copy("SergeyMi","doublefint")
Откройте для себя удивительный мир CLI ( command line interface ) — запускаете терминал, заходите в область %SYS, набираете do ^SECURITY
7.32ANP — это от 7 до 32 буквы или цифры или знаки пунктуации
Надо указывать программу
Так я же предлагаю улучшить их использование — переменные шаблона можно использовать для генерации панелей SingleStat.
Замечание было не про термины рутина — программа, а про способ организации кода. Зачем вы используете дополнительный модуль ( рутина, программа ) с кодом, когда у вас есть класс, в который это все можно было сложить, задокументировать, покрыть тестами ( ыы :). Зачем в 2017 году использовать рутины-программы, когда у вас есть более удобная высокоуровневая абстракция — класс.
Нет, к вам. Это вы так организовали код, что одни и те же проверки многоратно повторяются. Принцип «Однажды и только однажды»?.. В Каше есть всё, чтобы переписать ваш код более лаконично и наглядно.
Я попался с такой попыткой на версии 2014.1.4 — там баг для класса SYS.Stats.Dashboard. Имхо, более старые низкоуровневые функции работают надежней. Ну или тесты ;)
«отсутствие данных в Singlestat-панелях (которые, естественно, предполагают единственное значение). У нас сервера два, вот и значения два.» — делаем отдельную строку, определяем дополнительную переменную с именами серверов, в панели используем опцию «повторить для переменной». Вот тут пример
Замечание к реализации странице выдачи метрик — программа ( программа, Карл! ) и класс. Имхо класса более чем достаточно. Перед взятием метрик по коду размазана проверка версии сервера — если что, в каше есть режимы генерации кода
DFI даже в «плоском» виде представляют собой XML. Web файлам в базе делать нечего ;) За статью спасибо!
Если мне не изменяет память, класс %Compiler.UDL.TextServices с необходимыми методами появился где то в версии 2014.1
Так что, скорее — «достаточно давно есть возможность» ;)
Наверно, всё-таки не это. А наверно, те свойства глобалов, которые вы перечислили выше.
Вас ненавязчиво подталкивают ознакомится с документацией.
И вдруг такая феерия эмоций — «Дело в отношении к людям!!!», «Это… очень отталкивает»
И это еще лето, солнце. Что же зимой то будет? Волнуюсь я за вас