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

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

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

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

Проблемма!

  • Автор темы SOFTOBZOR.ru
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

SOFTOBZOR.ru

На днях перетащили сервер на новое железо.
Конфигурация сервера (Domino) осталась неизменной, все сетевые протоколы остались тоже без изменений. Отличие только в названии машиниы (локальное название)
Было ServerDomono1 стало ServerDomino01 - насколько мне известно это не принципиально.

Проблема в следующем, на сервере в одной из ДБ крутится агент по расписанию.
Но работать он не хочет, при тестовом запуске агента (В дизайнере -> Test) ошибок нет, при запуке не в тестовом режиме Выдает окно "Overflow", начинает работать и затыкается.

В логах идет это

26.12.2006 06:55:22 AMgr: Agent ('MyAgent' in 'Demo\basez.nsf') error message: Overflow

Ни как не могу понять что произошло, из-за чего агент может корячится.
 
S

SOFTOBZOR.ru

PS

Сам агент

Код:
Sub Initialize

Dim s As New NotesSession
Dim doc As NotesDocument
Dim nextdoc As NotesDocument
Dim coll As NotesDocumentCollection
Dim i As Integer
Dim Deldocs As Integer
Dim agentLog As NotesLog 
Set agentLog = New NotesLog("MyAgent")
Call agentLog.OpenAgentLog
Call agentLog.LogAction("Начало")
Let deldocs=0
Set col = s.CurrentDatabase.UnprocessedDocuments
Set doc = col.GetFirstDocument
For i = 1 To col.count
Set nextdoc = col.GetNextDocument(doc)
If doc.form(0)="TempApprDoc"	Then
Call doc.Remove(True)
Let deldocs=deldocs+1
End If
Set doc = nextdoc
Next
Call agentLog.LogAction("Удалено док: " & Cstr(Deldocs))
Call agentLog.LogAction("Конец")
Call agentLog.Close
End Sub

Важно то что раньше он работал без сбоев
 
M

morpheus

Для: SOFTOBZOR.ru
Overflow - это переполнение... значить где то слишком много значений , возможно Dim Deldocs As Integer, зделать его Long? имхо переполнение идёт в строке Let deldocs=deldocs+1...

Проверяли вручную?может Print накидайте
 
S

SOFTOBZOR.ru

Вот тест запуск агента:

Код:
The following will occur when this agent is run:

Warning: Tester id (CN=AdministratorLN/OU=DOMEN/O=WOR) and agent signer id (CN=SERVER01/OU=NAME/OU=DOMEN/O=WOR) are different.
'CN=SERVER01/OU=NAME/OU=DOMEN/O=WOR' has unrestricted rights to run LotusScript/Java agents on 'CN=SERVER01/OU=NAME/OU=DOMEN/O=WOR'.
Allow restricted operations flag is selected. Restriction operations will be allowed.
Agent scheduled to run on 'CN=SERVER01/OU=NAME/OU=DOMEN/O=WOR'.

Started running agent 'MyAgent' on 26.12.2006 10:05:52
Running on new or modified documents: 33488 total
Found 33488 document(s) that match search criteria
Testing: Ran LotusScript code
Done running agent 'MyAgent' on 26.12.2006 10:05:52


То есть в тесте все ок.

А если не в тест т.е. Run то

Сначало оконко "Overflow"

Код:
Started running agent 'MyAgent' on 26.12.2006 10:09:45
Running on new or modified documents: 33490 total
Found 33490 document(s) that match search criteria
26.12.2006 10:09:45: --- Начало
Ran LotusScript code
Done running agent 'DeleteTempDocs' on 26.12.2006 10:09:46
 
M

morpheus

Found 33490 document(s) that match search criteria [/b] - Ну канечно, читаем хэлп
Specifies a variable that contains a signed 2-byte integer.
An Integer value is a whole number in the range -32768 to 32767, inclusive.

Integer не может содержать число больше 32767, тоесть Вам необходимо задекларировать deldocs как Long или ещё как похлеще, хотя думаю этого хватить
Specifies a variable that contains a signed 4-byte integer.
Usage
The Long suffix character is &.
Long variables are initialized to 0.
A Long value is a whole number in the range -2,147,483,648 to 2,147,483,647 inclusive.
 
S

SOFTOBZOR.ru

ЁПРСТ :D

Спасибо! Буду сейчас лечить.
 
S

SOFTOBZOR.ru

Попробовал замел на Long беда таже, "Overflow"
Хотя есть еще подозрение на Dim i As Integer

Но по логике кода (как я понима) в эту переменную заносится число документов удовлетворяющих требованию s.CurrentDatabase.UnprocessedDocuments.

Не совсем понимаю что такое UnprocessedDocuments.
И может ли их быть так много что нужен Long?
 
M

morpheus

<!--QuoteBegin-SOFTOBZOR.ru+26:12:2006, 12:22 -->
<span class="vbquote">(SOFTOBZOR.ru @ 26:12:2006, 12:22 )</span><!--QuoteEBegin-->Не совсем понимаю что такое UnprocessedDocuments.
[snapback]51757" rel="nofollow" target="_blank[/snapback]​
[/quote] это NotesDocumentCollection, нет там вроде ограничений нету.



<!--QuoteBegin-SOFTOBZOR.ru+26:12:2006, 12:22 -->
<span class="vbquote">(SOFTOBZOR.ru @ 26:12:2006, 12:22 )</span><!--QuoteEBegin-->Попробовал замел на Long беда таже, "Overflow"
Хотя есть еще подозрение на Dim i As Integer
[snapback]51757" rel="nofollow" target="_blank[/snapback]​
[/quote]
ТОЧНО... колво доков в коллекции больше чем может быть значение i - его в обязательном порядке Long
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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