Class SNMP4JAgentSnmpService

java.lang.Object
org.snmp4j.model.snmp.agent.SNMP4JAgentSnmpService
All Implemented Interfaces:
SnmpService, TransactionManager

public class SNMP4JAgentSnmpService extends Object implements SnmpService
The SNMP4JAgentSnmpService implements the SnmpService interface for SNMP4J-Agent agents. Instead of communication using UDP or TCP transport, this service directly provides access to a MOServer instance.
  • Constructor Details

    • SNMP4JAgentSnmpService

      public SNMP4JAgentSnmpService(org.snmp4j.agent.MOServer[] moServers)
      Create a SnmpService based on an array of managed object servers.
      Parameters:
      moServers - an array of MOServer instances that serve the managed objects available for this SNMP service.
  • Method Details

    • initTransports

      public void initTransports() throws IOException
      Description copied from interface: SnmpService
      Initializes the transports associated with this service. This will open the necessary network ports.
      Specified by:
      initTransports in interface SnmpService
      Throws:
      IOException - if an IO error occurred during initialization.
    • get

      public List<? extends org.snmp4j.smi.VariableBinding> get(org.snmp4j.Target target, List<org.snmp4j.smi.OID> oidList) throws SnmpException
      Description copied from interface: SnmpService
      Gets the SNMP values for the specified OIDs.
      Specified by:
      get in interface SnmpService
      Parameters:
      target - the SNMP target to send the SNMP PDUs to.
      oidList - the instance object identifiers to GET values for.
      Returns:
      a list of variable bindings.
      Throws:
      SnmpException - if an SNMP error or timeout occurred.
    • getNext

      public List<? extends org.snmp4j.smi.VariableBinding> getNext(org.snmp4j.Target target, List<org.snmp4j.smi.OID> oidList) throws SnmpException
      Description copied from interface: SnmpService
      Gets the next following SNMP values for the specified OIDs.
      Specified by:
      getNext in interface SnmpService
      Parameters:
      target - the SNMP target to send the SNMP PDUs to.
      oidList - the instance object identifiers to GET-NEXT values for.
      Returns:
      a list of variable bindings.
      Throws:
      SnmpException - if an SNMP error or timeout occurred.
    • getSubTree

      public List<? extends org.snmp4j.smi.VariableBinding> getSubTree(org.snmp4j.Target target, org.snmp4j.smi.OID oid) throws SnmpException
      Description copied from interface: SnmpService
      Gets the SNMP values for the specified sub-tree root OID.
      Specified by:
      getSubTree in interface SnmpService
      Parameters:
      target - the SNMP target to send the SNMP PDUs to.
      oid - the root OID of the sub-tree to get values for (using GETBULK or GETNEXT).
      Returns:
      a list of variable bindings.
      Throws:
      SnmpException - if an SNMP error or timeout occurred.
    • getTable

      public List<? extends SnmpRow> getTable(org.snmp4j.Target target, List<org.snmp4j.smi.OID> columnOIDs, org.snmp4j.smi.OID minIndex, org.snmp4j.smi.OID maxIndex) throws SnmpException
      Description copied from interface: SnmpService
      Gets the rows of a SNMP table synchronously.
      Specified by:
      getTable in interface SnmpService
      Parameters:
      target - the SNMP target to send the SNMP PDUs to.
      columnOIDs - the OIDs of the columns to retrieve (columns might be combined from several tables although the indexes of the included tables should then contain a common prefix).
      minIndex - the minimum index to return (or null for no limit).
      maxIndex - the maximum index to return (or null for no limit).
      Returns:
      a list of SnmpRow instances.
      Throws:
      SnmpException - if an SNMP error or timeout occurred.
    • getTable

      public void getTable(org.snmp4j.Target target, List<org.snmp4j.smi.OID> columnOIDs, org.snmp4j.smi.OID minIndex, org.snmp4j.smi.OID maxIndex, SnmpRowListener callback, Object userObject) throws SnmpException
      Description copied from interface: SnmpService
      Gets the rows of a SNMP table asynchronously.
      Specified by:
      getTable in interface SnmpService
      Parameters:
      target - the SNMP target to send the SNMP PDUs to.
      columnOIDs - the OIDs of the columns to retrieve (columns might be combined from several tables although the indexes of the included tables should then contain a common prefix).
      minIndex - the minimum index to return (or null for no limit).
      maxIndex - the maximum index to return (or null for no limit).
      callback - the callback that receives the retrieved rows.
      userObject - an optinal user object to be associated with this retrieval.
      Throws:
      SnmpException - if an SNMP error or timeout occurred.
    • update

      public void update(SnmpTransaction snmpTransaction, org.snmp4j.Target target, SnmpValuesChangeSet variableBindings, SnmpCommitListener snmpCommitListener)
      Description copied from interface: SnmpService
      Updates (SETs) a set of changes with an atomic SET operation asynchronously.
      Specified by:
      update in interface SnmpService
      Parameters:
      snmpTransaction - the transaction that controls this update.
      target - the SNMP target.
      variableBindings - the change set to commit to the agent identified by target.
      snmpCommitListener - a listener for commit events.
    • commit

      public List<? extends SnmpCommitResult> commit(SnmpTransaction transaction, SnmpCommitListener commitListener)
      Description copied from interface: TransactionManager
      Commits the transaction to the agent.
      Specified by:
      commit in interface TransactionManager
      Parameters:
      transaction - the transaction to commit.
      commitListener - the optional listener that is immediately informed during this commit call about failures and successful committed change sets.
      Returns:
      the SnmpErrorStatus indicating success or failure reason of the transaction.
    • rollback

      public void rollback(SnmpTransaction transaction)
      Specified by:
      rollback in interface TransactionManager
    • getSnmpTransaction

      public SnmpTransaction getSnmpTransaction(SnmpTransactionStrategy transactionStrategy)
      Specified by:
      getSnmpTransaction in interface TransactionManager
    • isAtomic

      public boolean isAtomic(SnmpTransaction transaction)
      Description copied from interface: TransactionManager
      Checks if this transaction can be committed with atomicity. As SNMP guarantees atomicity only for a single SET PDU. That is, if a transaction cannot be completed with a single SET PDU (message), this method will return false.
      Specified by:
      isAtomic in interface TransactionManager
      Parameters:
      transaction - the transaction to test.
      Returns:
      true if this transaction can be committed by using a single SET PDU. Thus, the variables to set do not exceed the target's maximum size PDU length (including estimated SNMP message overhead).