Я заметил какое-то странное поведение связи по протоколу snmp при использовании MS SNMP Mgmt Api с точки зрения тайм-аута и повторных попыток. Мне было интересно, поддерживается ли API управления в Win Server 2008 R1 x64. Моя программа представляет собой 64-битный агент расширения snmp на С++, который также использует API-интерфейс mgmt для связи с другими агентами.
Это мой псевдокод:
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 мс. Документация, кажется, подразумевает это. Я что-то упустил, есть ли минимальный период ожидания не менее секунды? Что может быть причиной такого поведения?
Любая помощь будет принята с благодарностью. Я здесь заблудился.