Net-SNMP FAQ (Перевод)   |   Net-SNMP README (Перевод)

Перевод документации на Net-SNMP :: Net-SNMP FAQ




www.net-snmp.ru /  Net-SNMP FAQ / AGENT. Может ли агент запускаться в многопоточном режиме?



AGENT. Может ли агент запускаться в многопоточном режиме?

Короткий ответ - нет.
Длинный ответ - не просто.

Net-SNMP внутри одного потока многопоточного приложения - это нормально, до тех пор, пока ВЕСЬ snmp код находится внутри того же потока. Это позволит вам добавить поддержку SNMP в существующие многопоточные приложения.

Если же вы заинтересованы во времени обработки запроса для конкретного агента, объекта или подерева, и вы хотите, чтобы агент продолжал в то же самое время отвечать на другие запросы, то возможно 2 варианта.

Первый метод связан с использованием подагентов AgentX. Если у вас есть несколько таблиц, каждая поддерживается отдельным подагентом, то одиночный запрос для записей из каждой из таблиц будет обрабатываться параллельно (и агент будет продолжать отвечать на другие запросы в то время, когда он ожидает от подагента необходимую информацию). Однако запрос для нескольких объектов из одной таблицы будет оставлен соответствующим подагентов без ответа, так как в нормальной ситуации он должен обрабатываться поочередно.

Второй метод заключается в использовании делегированных запросов + IPC к другим процессам. Необходимо много времени для получения значения для данного объекта, затем обработчик объекта может выполнить все что необходимо для запуска или связи с другим (не-SNMP) процессом/потоком для реального получения значения, и маркирует запрос как делегированный. Основной агент (или подагент) может затем принять или обработать другие запросы пока ожидает окончание работы делегированного запроса. Конфликт по затрачиваемым ресурсам полностью на вашей совести.

Оба метода применимы только для группы запросов GET. SET запрос будет заблокирован пока все запущенные GET запросы не обработаются, и затем новые запросы не будут приниматься, пока SET не выполнится.

Добавить полностью мультипоточной поддержки напрямую в агент было бы здорово. Нам только нужен кто-то с деньгами/свободным временем для спонсирования/разработки.



<<<  AGENT. Длительность работы системы (sysUpTime) возвращается некорректной! 
COMPILING. Как мне использовать компилятор 'cc' вместо of 'gcc'?  >>>
При копировании размещение гиперссылки на оригинал обязательно!
© MIB Search 2006-2009