powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Улучшения, новые фичи в технологиях InterSystems
25 сообщений из 87, страница 2 из 4
Улучшения, новые фичи в технологиях InterSystems
    #39077309
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBAlexey Maslov,
Объектом для нового внешнего подключения все же является область, ее мы всегда задаем в качестве параметра соединения при любом способе подключения. Тот системный процесс, который анализирует все новые входящие запросы на подключение, наверняка может отбить такие запросы, если есть в том такая необходимость. И этому системному процессу абсолютно все равно, какие базы собраны в эту область, какие глобалы переданы в эту область, до этого даже дело не дойдет. То что работающие задачи переключаются между областями, так и пусть себе переключаются, пусть себе порождают новые JOBы в разных областях. Они уже работают и не будем им мешать. Я говорю только о новых внешних подключениях к определенной области, просто не устанавливать новое соединение. Для того, кто пытается подключиться это будет выглядеть всего лишь как неудачная попытка соединения, которую он попытается повторить позже.(ну наподобие временного отсутствия связи). Главное, чтобы новое подключение не состоялось, а не было прервано на прикладном уровне после его выполнения. Повторюсь еще раз, входное соединение, в качестве параметра передает область, в которую просит подключиться. А мы ему говорим - извини, на данная область временно недоступна, подключайся позже, или подключайся в другую, альтернативную область. И это уже третий вопрос, что и основная и альтернативная область может собираться из одних и тех же глобалов, или баз данных.Ну так, это и есть прикладная задача, которую есть возможность решать с помощью %ZSTART.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39077336
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
Увы, в %ZSTART область для нового подключения не всегда видна.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39077405
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBУвы, в %ZSTART область для нового подключения не всегда видна.Приведите код %ZSTART.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39077489
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предложение по улучшению API по работе с глобалами.
Начиная с 2015.1, появился метод %Library.GlobalEdit::GetGlobalSizeBySubscript(). Прогрессивная общественность это приветствовала, но оказалось, что размер в MB получается простым умножением размера в блоках на их кол-во. Поэтому пользоваться методом для обсчёта небольших подглобалов практически бессмысленно, слишком велика погрешность. Между тем, утилита %GSIZE отлично справляется с этим. Код внутри неё, естественно, совсем другой.

Предложение: упрятать этот (правильный) код внутрь метода класса, сделав функционал точного обсчёта подглобалов доступным программистам. Для обратной совместимости в сигнатуру метода можно добавить аргумент "считать быстро т.е. по-старому".
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078266
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitAlexKBУвы, в %ZSTART область для нового подключения не всегда видна.Приведите код %ZSTART.

Интересно, и что же такого Вы хотите увидеть в этом коде..?
Вопрос обсуждения ведь состоит не в моем коде. Я ведь не ставил вопрос таким образом, мол помогите решить проблему. Я ставил вопрос о желательном развитии функционала в том направлении, что заявил. Я вижу его полезность в будущем для решения некоторых вопросов, я их озвучил. Вы же (я имею ввиду не Вас лично) мне предлагаете некоторые частные решения, которые на Ваш взгляд могли бы явиться альтернативой. Я привожу свои доводы, оппоненты, кроме единственного не привели - у разработчиков нет времени. Если бы Вы привели довод такого плана, что дополнительная проверка в момент разрешения регистрации в Каше увеличит время регистрации на 5% (а это было бы недопустимым с моей точки зрения), или появятся другие накладные расходы, что это приведет к иным последствиям там-то и там-то, тогда да, есть над чем подумать, мол стоит ли овчинка выделки. А так, если появление предлагаемой мной функциональности никоим образом не отразится на работе систем, построенных и проектируемых на базе Каше моими оппонентами, то получается, что обратных доводов у Вас просто нет.
Вот Алексей Маслов высказал свое пожелание, я его вполне поддерживаю - разумно иметь единый механизм решения вопроса, но двумя способами (или быстро, или точно - решает пользователь). Но ведь на сегодняшний день есть пути решения, зачем чего-то переделывать специалистам Интерсистемс? Но я за переделку, это было бы разумнее.

А код, да пожалуйста...  //%ZSTART
  quit
  //
JOB ; JOB'd process exits. 
  set $ZTrap="Error"
  set zapret=$g(^|"%SYS"|LLGG("ConnectDisable"),0)
  if zapret=1 {
    for i=0,1,4:1:15 set a(i)=$zu(67,i,$j)
    hang 200  // тут я смотрю в портале какими возможностями управления процессом я обладаю в данной точке исполнения
  }
  quit
  //
Error
  set $ZTrap=""
  quit
  //
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078336
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBservitAlexKBУвы, в %ZSTART область для нового подключения не всегда видна.Приведите код %ZSTART.Интересно, и что же такого Вы хотите увидеть в этом коде..?Как Вы определяете текущую область, что она не всегда видна, хотя должна быть видна всегда.

Попробуйте использовать $ZNSPACE и не забывайте "ньючить" переменные:

JOB ; JOB'd process exits.
NEW zapret,i,a

PS: будете делать upgrade c 5.0, вместо устаревших (уже недокументируемых) функций $ZUTIL лучше использовать их эквиваленты.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078423
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB...разумно иметь единый механизм решения вопроса, но двумя способами (или быстро, или точно - решает пользователь). Но ведь на сегодняшний день есть пути решения...Это сильно сказано :) Можно взять исходник %GSIZE, и на его основе слепить свою функцию вычисления размера подглобала. Нам собственно так и пришлось сделать (жизнь заставила), ждать, пока это реализует (или мотивированно откажет) ISC времени не было. Но наше "решение" уступает по функциональности упомянутому методу класса, т.к. мы реализовали только то, что нам было необходимо. Само собой, сопровождать его придётся нам самим, если оно уйдёт в продакшн.

По твоей задаче снова прав servit. Причина: JOB^%ZSTART вызывается слишком рано, когда могут быть заполнены ещё не все $zu(67, параметры ,$j). В этих параметрах нет ничего "фундаментального", их просто заполняет серверный модуль протокола. Некоторые из них можно заполнить самостоятельно, хотя трудно придумать, зачем.
Я бы брал текущую область из $zu(5) или из $namespace.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078498
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,
Я ведь писал уже, что область, куда происходит соединение, проверить невозможно. В этом случае - она будет равна "%SYS", при любом способе ее получить.
Я ведь сознательно не привел в своем коде чему равна область...
a("$zu(5)")="%SYS"
a("znspace")="%SYS"
a(6)="%SYS"

Не думал я, что давая советы, Вы не станете проверять их результативность...
Я надеялся, что может еще получу совет в плане использования еще каких-нибудь недокументированных функций, команд, приемов...
Но, увы...
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078530
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBНе думал я, что давая советы, Вы не станете проверять их результативность...Порылся в старом коде, нашёл у себя подобные проверки ($zu(67 в цикле) и аналогичные мучения. Так и есть, $zu(5) и иже с ней в момент вызова JOB^%ZSTART таки ещё не заполнены... Обход, который реально использовал:JOB
 job проверяльщик
   ...
проверяльщик
   hang 1
   if (текущая_область_процесса($zparent) запрещена для входа) d завершить_процесс($zparent)
   ...PS. Прошу прощения за невысокий уровень и многочисленные ошибки в моих консультациях.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078534
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл поставить начальную метку JOB в псевдокоде, еще раз извиняюсь.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078542
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому интересно, по крайней мере в 2015.1 метод %Library.GlobalEdit::GetGlobalSizeBySubscript() в некоторых случаях даёт ошибку в разы, тогда как утилита %GSIZE правильно считает и быстрым (Show details = N), и медленным (Show details = Y) способами.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078721
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,
Вот, вот...
Только через проверяльщик мне не подходит, слишком много нехорошего родительский процесс сможет натворить, даже если я отловлю его и прибью через 20 мс...
На данный момент для меня все это не критично, но я думал над перспективой и было бы хорошее для меня решение одного из вопросов будущей разработки, если бы я смог воспользоваться функциональностью, о которой говорил...
А вопрос возник еще и потому, что вроде бы в одной из реализаций МАМПСов, с которыми я работал, такая возможность была...
Не берусь утверждать, но что-то такое крутится в голове...
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39078803
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB...вроде бы в одной из реализаций МАМПСов, с которыми я работал, такая возможность была...Это вряд ли, т.к. понятие области afaik есть только в Cache (ещё м.б. в MiniM, но не уверен).
AlexKB...слишком много нехорошего родительский процесс сможет натворить...На прикладном уровне решается путём синхронизации родителя с потомком: родитель ждёт сигнала от потомка: "можно работать" или "пошёл вон". Методы синхронизации зависят от используемой версии Cache: Lock или $system.Event, подробно разжёвывать не буду.

Понятно, что тебе хотелось бы иметь готовый механизм "из коробки", но поскольку область - не объект защиты в её сегодняшней реализации, ИМХО, будет нелегко сподвигнуть ISC, но отчего не попробовать.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083036
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с такой фигней при использовании функции $locate() ...
Есть там последний параметр, в случае успешного поиска туда записывается найденная последовательность... Но фигня в том, что если ничего не найдено переменная не "обнуляется". В ней остается предыдущее значение!
По мне так это фигня полная.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083038
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в этом примере  n
  s pos=1
  s str="'^global(1)':{'^global(1,1)':{'^global(1,1,1)':'111a'}},'^global(2)':{'^global(2,1)':{'^global(2,1,1)':'211a','^global(2,1,2)':'212a'},'^global(2,2)':{'^global(2,2,1)':'221a','^global(2,2,2)':'222a','^global(2,2,3)':{'^global(2,2,3,1)':{'^global(2,2,3,1,1)':'22311a'}}}}"
  do {
    s name=""
    s pos=$locate(str,"\^[a-z()\d,]+",pos,,name)
    s len=$l(name)
    if $i(pos,len)
    if name'="" {
      s value=""
      if $locate(str,":[\s\S]+?(?=')",pos,,value) 
      s value=$s(value=":{":"",1:$e(value,3,*))
      w !
      zw name,value
      // s @name=value
    }
  } while len
  qУбрать строки

s name=""

и

s value=""

Все просто перестанет работать
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083040
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый лучший вариант, с моей точки зрения, делать ту переменную неопределенной, если поиск ничего не нашел.
Потому как пустая строка так же может быть результативным значением.

Но оставлять предыдущее значение - это что-то с чем-то!
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083052
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это нормальное поведение, $locate же возращает результат по которому можно верить или нет тому значению. Вы же в своем коде IF просто так повесили, и value разумеется может быть каким угодно. Этот код с ошибкой.
$data кстати работает так же, обновляет значение только в том случае если оно есть
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083103
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorЭто нормальное поведение
Это норма! (с)
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083185
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaDAiMorЭто нормальное поведение
Это норма! (с) $locate работает согласно документации и менять её спецификацию (чтобы ByRef заменить на Output) вряд ли станут, ибо уже написано много кода и он может перестать правильно работать (потеряется совместимость).
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083217
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда какой смысл в этой теме? Для объяснения почему это делать не станут?
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083231
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaТогда какой смысл в этой теме? Для объяснения почему это делать не станут? Для адекватных предложений, а не для того чтобы закрыть свои баги в коде.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083238
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эва!
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39083272
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitчтобы ByRef заменить на Output
Проблема кагбэ не в этом...
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39086480
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот думаю что нужно добавить. Расчет энтропии для пароля. С возможностью использовать это не только для встроенных пользователей, а и в том случае если используется собственная авторизация со своим хранением учеток пользователей и их паролей.
...
Рейтинг: 0 / 0
Улучшения, новые фичи в технологиях InterSystems
    #39096780
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, на самом деле смысл этой темы, чтобы ваши запросы превращались в WRC задачи, т.е. были решены и входили в продукт.

По части уже здесь предложенного либо есть либо будет создан продлог (задание на разработку).

Вопрос: как лучше всего по вашему мнению доносить эту информацию до вас? гуглотаблица? Специальный сайт? задания в редмайне?
Ваши предложения?
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 2 из 4
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Улучшения, новые фичи в технологиях InterSystems
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]