Можно ли запустить Агента именно на серверной реплике БД, вызывая его

  • Автор темы Автор темы cola
  • Дата начала Дата начала
C

cola

Есть БД на сервере и ее реплика на локале.
Есть агент (не шедульный), который при вызове проверяет где он запущен если на сервере, то пытается вызвать себя (т.е. копию себя под др. именем, т.к. рекурсивный вызов агентов запрещен) именно на серверной реплике БД, агент с локала связывается с по репликаИД с серверной БД, и имиеннно из нее берет агента (свою копию) через метод db.GetAgent, и далее этому агенту делается RunOnServer

Проблема в том что запускается агент, все равно, на сервере-локале, а не на сервере-сервере.

Менял у агента свойство ServerName, и save ему потом делал, а все равно на локале запускается.
 
То, что так написано в хелпе, не мешает запускать агенты именно на сервере-сервере из агента на сервере-локале, только вот эти вызываемые агенты, они из других БД, причем не важно есть ли у этой БД реплика на данном конкретном локале, агенты работают именно на сервере, проблема именно в том, как вызвать свои агенты к исполнению именно на сервере-сервере над серверной репликой...
 
толкай смита в серверной консоли..
 
Низя запускать локальные агенты на сервере... Вы представляете, если бы такая дыра была, что бы ло бы?
 
для сервера он не локальный.. поэтому можно..
можно агент сделать по расписанию и не запускать его никогда, а запускать с помощью другого агента
@Command([ToolsRunMacro];"agent")

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

это изврат конечно..
 
Привет всем, кто подскажет, как это дело решить "error message: java.lang.NoSuchMethodError: lotus.domino.Session: method createColorObject()Llotus/domino/ColorObject; not found"
Агент запускается по расписанию на сервере. дает ошибку, а вручную работает
 
сори... не очень внимательно прочел первый пост... подумалось, что нужно наоборот...

Вопрос, а зачем такое делать? Пусть себе агент отрабатывает на сервере, но объект его работы может быть любая переданная ему БД, если у агента есть нужные права доступа к этой БД...

Делаете настроечный документ, в нем указываете путь к базе, на которой нужно выполнить определенную операцию, агент запускается на сервере, лезет в этот настроечный дкоумент, получает путь к базе и соответсвенно саму базу, делает в ней все что надо и все... Не вижу сложности... Правда, это если нужная база все же не локальная... :)
 
Если не нужна немедленная реакция и данных для агента немного, то можно замутить следующую схему:
В серверной реплике каждые 5 минут запускается агент, который ищет специальный документ, обрабатывает его и удаляет.

А агент на локальной реплике создает в серверной такие специальные документы, заполняя их нужными данными.
 
Для запуска агента из другого агента (с др.сервера) требуются особые права. См. док-т Server/Security/~trusted Servers
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab