|
The timeout is the time interval that an application waits for a response message from an agent. Typically these values are given in milliseconds or in seconds. If the value is 5 seconds, the application waits for 5 seconds for the response before timing out. Retries are the number of times a request is sent when a timeout occurs. If the retry value is 0, the request is not re-transmitted during timeout.
Applications differ in handling the non-zero retry value. Some applications handle it linearly. In other words, for every timeout, the retry count decrements by one and the request message is sent again. This cycle continues until a response is received or the retry count decrements to zero.
Some applications will use the "exponential back off algorithm" for the timeout-retry counts. The timeout value grows exponentially if the retry value is non-zero. The timeout value doubles after each retry. For example, if the timeout value is set to 5 seconds and retry is set to 3, the first re-transmission happens after 5 seconds, the second after 15 seconds, the next after 35 seconds, the next after 75 seconds, and so on.
| API Name | Class/Component Name | API Methods | Remarks |
|---|---|---|---|
|
High-Level |
SnmpTarget |
Timeout and retries value are in secs. |
|
|
Low-Level |
SnmpSession |
Timeout and retries value are in milliseconds. |
|
|
RMI |
SnmpTarget |
Timeout and retries value are in secs. |
|
|
CORBA |
SnmpTarget |
- same as above - |
|
|
EJB |
SnmpTargetEJB |
- same as above - |
|
|
Note: WebNMS SNMP API follows "exponential back off" algorithm to calculate the timeout and retry value. The timeout value specified increases exponentially with the retry value. In general, for the timeout value is 'T' and the retry value is 'R', the total time taken for the entire SNMP operation can be given as follows. r=R Total time taken = S T x 2^r r=0 If the response is received in between, it is notified to the user either by returning the response PDU (in case of synchronous request) or by calling the callback method (in case of asynchronous request). |
|