Windows Snmp Management Api - тайм-аут / повтор Snmp не работает - PullRequest
0 голосов
/ 13 февраля 2011

Я заметил странное поведение связи snmp при использовании MS SNMP Mgmt Api с точки зрения времени ожидания и повторных попыток. Мне было интересно, если mgmt API поддерживается на Win Server 2008 R1 x64. Моя программа - это C ++ 64-битный агент расширения snmp, который использует mgmt api для связи с другими агентами.

Это мой псевдокод:

SnmpMgrOpen(ip address, 150ms timeout, 3 retries)
start = getTickCount()
result = SnmpMgrRequest(get request with 3 or 4 OIDs)
finish = getTickCount()
if (result == some error)
{
     log Error including total time (i.e finish - start ticks)
}
SnmpMgrClose()

Когда время ожидания вызова snmpMgrRequest истекает, общее время составляет от 1014 до 5000 мс. Если я установлю повторные попытки на 0, общее время все равно будет от 1014 мс до 5000 мс.

Я ожидаю, что при повторных попытках, равных 0, время ожидания SnmpMgrRequest истечет в течение 150 мс. Документация, кажется, подразумевает это. Я что-то пропустил, есть ли минимальный период ожидания, по крайней мере, секунда? Что может быть причиной такого поведения?

Любая помощь будет принята с благодарностью. Я в растерянности здесь.

ballerstyle_98@hotmail.com

1 Ответ

1 голос
/ 06 апреля 2011

Из моего опыта работы с SNMP на платформах Windows минимальное время ожидания составляет 1 секунду.Таким образом, даже если вы установите какое-либо значение ниже этого, по умолчанию оно будет равно 1 секунде.

Также используемое значение тайм-аута удваивается при каждой повторной попытке.Таким образом, при конфигурации повторения 150 мс в худшем случае вы получите неудачный ответ на запрос через 1 + 2 + 2 + 2 = 7 секунд.

Надеюсь, это поможет.

...