• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Agent Runonserver

  • Автор темы Xalet
  • Дата начала
X

Xalet

Как создать агента, который бы запускался на сервере активацией из клиента?

Я сделал агента шедульного, который запускается никогда.
Сделал кнопочку и на нее повесил код:

Код:
	Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set agent = db.GetAgent("TestInsert")
Call agent.RunOnServer

На этом месте Call agent.RunOnServer выкидывает Неизвестная ошибка.
 
M

Murat

варианты ошибки
ошибка внутри агента(в коде)
права на запуск агентов на сервере
 
H

hosm

а можешь понять - агент вообще запускается???
во-первых, может понадобиться проверить код агента, настройки отбора документов и права запуска агентов на сервере.
 
X

Xalet

Вроде разобрался. Ошибки нет, но не работает. Надо настройки кое какие с сервером проделать...

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Вроде разобрался. Ошибки нет, но не работает. Надо настройки кое какие с сервером проделать...

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

Ну проверь имеел ли пользователь, который запускает агент, такие права.
Проверяй в серверном документе, а ACL-базы в которой крутится агент ну и в самом агенте уровень security.
 
A

Akupaka

Ну проверь имеел ли пользователь, который запускает агент, такие права.
пользователь, подписавший агент /библиотеки (!), должен быть указан в соотв. настройках безопасности сервера (в соотв. с требуемым уровнем агента и командами в нем вызываемыми)
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
пользователь, подписавший агент /библиотеки (!), должен быть указан в соотв. настройках безопасности сервера (в соотв. с требуемым уровнем агента и командами в нем вызываемыми)
Позвольне согласиться.
Права должны быть розданы тому кем подписан агент, а не тому кто подписывает!!!
Подписант и тот кем подписан агент не всегда одни и те же люди!

А вообще смотри раздел Programmability Restrictions в серверном документе
 
A

Akupaka

кгм :) если мы так глубоко забурились в терминологию, то конечно, но чаще всего пользователь подписавший агент будет его подписантом

а вообще тут много всего важного, вот только раздел Programmability Restrictions мало поможет чтобы это понять, надо смотреть
в дизайнере "Security for agents on servers and the Web", в админе "Controlling agents that run on a server"
 
X

Xalet

С правами вроде как все нормально там. Т.е. агент как бы и запускается. но не создает конекшн к дб2:

Код:
Dim session As New LCSession
Dim src As New LCConnection ("db2")

src не создается.
Может есть идеи?
 
A

Akupaka

ну, код ответа должен быть :) исчи :)

из хелпа пример? :)
Код:
Option Public
Uselsx "*lsxlc" 

Sub Initialize
Dim connect As New LCConnection ("db2") 
' set the appropriate properties to connect to DB2
' note the use of dynamic properties to do this
' all properties of a connection may be referenced
' by name
connect.Database = "Gold"
connect.Userid = "JDoe"
connect.Password = "xyzzy"

' try the connect
On error go to Trap
connect.Connect
Print "Successfully connected to DB2."
Exit Sub
Trap:
Print "Connection failed with error " & err & ": " & error
Exit Sub
End Sub
 
X

Xalet

ну, код ответа должен быть исчи

из хелпа пример?

пример не из хелпа, но суть похожая... соответственно в том примере сломается на строчке:

Код:
 connect.Database = "Gold"

Instance member DATABASE doesn't exists.

Собственно что и означает, что объекта connect не создал. Но тот же код из клиента замечательно работает.
 
A

Akupaka

1) ты как проверял, что он не создан?.. пробовал обработчик ошибок поставить, проверить connect is nothing и т.п.?
2) какая версия домино на сервере, какая ОС? может под тот сервер/ось нету реализации?..
я вот не уверен, конекторы эти в 6-ке появились или раньше... с сервера не пытался подключить...
 
X

Xalet

1) ты как проверял, что он не создан?.. пробовал обработчик ошибок поставить, проверить connect is nothing и т.п.?
2) какая версия домино на сервере, какая ОС? может под тот сервер/ось нету реализации?..
я вот не уверен, конекторы эти в 6-ке появились или раньше... с сервера не пытался подключить...

1. Странно. Не пустой он получается. Но почему тогда ошибка?

2. Домино 8.5 на линуксах

Коннекторы появились в пятерке.
 
A

Akupaka

може в линуксах и проблема?.. как вариант - поднять там ODBC, либо заюзать JDBC, что люди больше хвалят...
к стати, а сервак в консоли не пишет подобного?
"Error Creating Product Object"

к сведению... не факт, что как-то поможет...



Question
When Dimming a connection to Oracle on a Unix® Domino® Server, if you use Dim con as New LcConnection ("Oracle8") and not Dim con as New LcConnection ('oracle8"), you receive the following error:

"Error creating product object".


Answer
This issue has been reported to Quality Engineering as SPR# KBEK6CNSS8; currently there are no plans to address the issue.
The error occurs because UNIX machines are case sensitive, and when dimming the lcconnection, it is looking for a file name that matches the case of the file that actually exists ("oracle8.dcx").

This applies to all of the connectors, not just the Oracle8 connector. When Dimming any LCConnection, the case of the text being used in the connection must match the case of the text on the system, For example db2.dcx would require:

Dim con as new LcCOnnection("db2")

where Dim con as new LcCOnnection("Db2") would cause the error. This works the same way for all of the connectors.

Things to look for:

* Make sure the connection is lower case since Unix is case sensitive. i.e. should be Dim quotesrc As New LCConnection ("sybase"), instead of Dim quotesrc As New LCConnection ("Sybase").
* If it is still not working, run a script to list available connectors to see if the one you are trying to use is listed. Try dimming the connection to one that is listed.
* You can also compare the permissions set between the 2 .dcx files.
* If Domino is loading from a script, try loading it manually
 
X

Xalet

к стати, а сервак в консоли не пишет подобного?
"Error Creating Product Object"

Подробного ничего не пишет, ошибку я писал выше Instance member блаблабла doesn't exists. Т.е. как бы коннектор создается, но в нем нет свойств, которым пытаюсь присваивать значения.
 
X

Xalet

Проблема решена. Нужно было в /user/lib сделать линк на файл libdb2.so, который находится в директории в которую установлен дб2 рантайм(либо сервер) .../lib32/libdb2.so

на айбиэмовском сайте для аикса(она же и для юникс систем, с отличием в названии файлов):
 
A

Akupaka

Проблема решена. Нужно было в /user/lib сделать линк на файл libdb2.so, который находится в директории в которую установлен дб2 рантайм(либо сервер) .../lib32/libdb2.so

на айбиэмовском сайте для аикса(она же и для юникс систем, с отличием в названии файлов):
не знаю на сколько равнозначный будет нижеследующий вариант решения, но напоролся в нете на один блог, в котором пытаются подключиться к ораклу и вот, что чел пишет в коде:

Код:
'connect.database="XE" 'Don't use this method because it doesn't work
connect.Server = "XE"
и поясняет так:
found one funny thing, While connecting to the database it's mentioned to use
Код:
connection.Database="XE" method
But if you try this, it throws an error saying "Connection failed with error 182: Instance member DATABASE does not exist". But I've found the correct syntax ,
Код:
connect.Server = "XE"
But nowhere it's mentioned in the documentation.
 
X

Xalet

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

'connect.database="XE" 'Don't use this method because it doesn't workconnect.Server = "XE"

так проблем в том, что пока не пропишешь сошки(они же дллки) то вообще никакие поля у коннекшн недоступны.

В серверном агенте пытаюсь открыть базу с другого сервера:

Код:
Set db = session.GetDatabase(doc.LogServerName(0), doc.LogDbName(0), False)

Если код запускается с рабочегого места, то имя сервера берется из записной книжки. А когда на сервере, где прописать коннекшн? В домино директори что-то похожее нашел и настроил, но не помогло. Кто-нибудь сталкивался? Где и что нужно прописать? (Сорри, вопрос тут больше по администрированию скорее).
 
K

Klido

Если код запускается с рабочегого места, то имя сервера берется из записной книжки. А когда на сервере, где прописать коннекшн?

это... код приведи полнее - doc чем у тебя знаменит, например?
коннекшен для сервера - очевидно, либо не нужен (если серваки в DNS видят друг друга, либо стандартное соединение между серваками...)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!