alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (SnmpAdaptorServerMBean.java)

This example Java source code file (SnmpAdaptorServerMBean.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

illegalargumentexception, illegalstateexception, integer, ioexception, jmx, long, net, network, snmp, snmpinformhandler, snmpinformrequest, snmpmibhandler, snmpoid, snmppdupacket, snmpstatusexception, snmptimeticks, snmpvarbindlist, string, util

The SnmpAdaptorServerMBean.java Java example source code

/*
 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */


package com.sun.jmx.snmp.daemon;

// java import
import java.util.Vector;
import java.io.IOException;
import java.net.InetAddress;

// jmx imports
//
import com.sun.jmx.snmp.SnmpPduFactory;
import com.sun.jmx.snmp.SnmpStatusException;
import com.sun.jmx.snmp.SnmpVarBindList;
import com.sun.jmx.snmp.SnmpOid;
import com.sun.jmx.snmp.SnmpTimeticks;
import com.sun.jmx.snmp.SnmpIpAddress;
import com.sun.jmx.snmp.SnmpPduPacket;
import com.sun.jmx.snmp.InetAddressAcl;
import com.sun.jmx.snmp.SnmpPeer;

// SNMP Runtime imports
//
import com.sun.jmx.snmp.agent.SnmpMibAgent;
import com.sun.jmx.snmp.agent.SnmpMibHandler;
import com.sun.jmx.snmp.agent.SnmpUserDataFactory;

/**
 * Exposes the remote management interface of the {@link SnmpAdaptorServer} MBean.
 * <p>This API is a Sun Microsystems internal API  and is subject
 * to change without notice.</b>

*/ public interface SnmpAdaptorServerMBean extends CommunicatorServerMBean { // GETTERS AND SETTERS //-------------------- /** * Returns the Ip address based ACL used by this SNMP protocol adaptor. * @return The <CODE>InetAddressAcl implementation. * * @since 1.5 */ public InetAddressAcl getInetAddressAcl(); /** * Returns the port used by this SNMP protocol adaptor for sending traps. * By default, port 162 is used. * * @return The port number for sending SNMP traps. */ public Integer getTrapPort(); /** * Sets the port used by this SNMP protocol adaptor for sending traps. * * @param port The port number for sending SNMP traps. */ public void setTrapPort(Integer port); /** * Returns the port used by this SNMP protocol adaptor for sending inform requests. * By default, port 162 is used. * * @return The port number for sending SNMP inform requests. */ public int getInformPort(); /** * Sets the port used by this SNMP protocol adaptor for sending inform requests. * * @param port The port number for sending SNMP inform requests. */ public void setInformPort(int port); /** * Gets the number of managers that have been processed by this SNMP protocol adaptor * since its creation. * * @return The number of managers handled by this SNMP protocol adaptor * since its creation. This counter is not reset by the <CODE>stop method. */ public int getServedClientCount(); /** * Gets the number of managers currently being processed by this * SNMP protocol adaptor. * * @return The number of managers currently being processed by this * SNMP protocol adaptor. */ public int getActiveClientCount(); /** * Gets the maximum number of managers that this SNMP protocol adaptor can * process concurrently. * * @return The maximum number of managers that this SNMP protocol adaptor can * process concurrently. */ public int getMaxActiveClientCount(); /** * Sets the maximum number of managers this SNMP protocol adaptor can * process concurrently. * * @param c The number of managers. * * @exception java.lang.IllegalStateException This method has been invoked * while the communicator was <CODE>ONLINE or STARTING. */ public void setMaxActiveClientCount(int c) throws java.lang.IllegalStateException; /** * Returns the protocol of this SNMP protocol adaptor. * * @return The string "snmp". */ @Override public String getProtocol(); /** * Returns the buffer size of this SNMP protocol adaptor. * By default, buffer size 1024 is used. * * @return The buffer size. */ public Integer getBufferSize(); /** * Sets the buffer size of this SNMP protocol adaptor. * * @param s The buffer size. * * @exception java.lang.IllegalStateException This method has been invoked * while the communicator was <CODE>ONLINE or STARTING. */ public void setBufferSize(Integer s) throws java.lang.IllegalStateException; /** * Gets the number of times to try sending an inform request before giving up. * @return The maximun number of tries. */ public int getMaxTries(); /** * Changes the maximun number of times to try sending an inform request before giving up. * @param newMaxTries The maximun number of tries. */ public void setMaxTries(int newMaxTries); /** * Gets the timeout to wait for an inform response from the manager. * @return The value of the timeout property. */ public int getTimeout(); /** * Changes the timeout to wait for an inform response from the manager. * @param newTimeout The timeout (in milliseconds). */ public void setTimeout(int newTimeout); /** * Returns the message factory of this SNMP protocol adaptor. * * @return The factory object. */ public SnmpPduFactory getPduFactory(); /** * Sets the message factory of this SNMP protocol adaptor. * * @param factory The factory object (null means the default factory). */ public void setPduFactory(SnmpPduFactory factory); /** * Set the user-data factory of this SNMP protocol adaptor. * * @param factory The factory object (null means no factory). * @see com.sun.jmx.snmp.agent.SnmpUserDataFactory */ public void setUserDataFactory(SnmpUserDataFactory factory); /** * Get the user-data factory associated with this SNMP protocol adaptor. * * @return The factory object (null means no factory). * @see com.sun.jmx.snmp.agent.SnmpUserDataFactory */ public SnmpUserDataFactory getUserDataFactory(); /** * Returns <CODE>true if authentication traps are enabled. * <P> * When this feature is enabled, the SNMP protocol adaptor sends * an <CODE>authenticationFailure trap each time an authentication fails. * <P> * The default behaviour is to send authentication traps. * * @return <CODE>true if authentication traps are enabled, false otherwise. */ public boolean getAuthTrapEnabled(); /** * Sets the flag indicating if traps need to be sent in case of authentication failure. * * @param enabled Flag indicating if traps need to be sent. */ public void setAuthTrapEnabled(boolean enabled); /** * Returns <code>true if this SNMP protocol adaptor sends a response in case * of authentication failure. * <P> * When this feature is enabled, the SNMP protocol adaptor sends a response with <CODE>noSuchName * or <CODE>readOnly when the authentication failed. If the flag is disabled, the * SNMP protocol adaptor trashes the PDU silently. * <P> * The default behavior is to send responses. * * @return <code>true if responses are sent. */ public boolean getAuthRespEnabled(); /** * Sets the flag indicating if responses need to be sent in case of authentication failure. * * @param enabled Flag indicating if responses need to be sent. */ public void setAuthRespEnabled(boolean enabled); /** * Returns the enterprise OID. It is used by {@link #snmpV1Trap snmpV1Trap} to fill * the 'enterprise' field of the trap request. * * @return The OID in string format "x.x.x.x". */ public String getEnterpriseOid(); /** * Sets the enterprise OID. * * @param oid The OID in string format "x.x.x.x". * * @exception IllegalArgumentException The string format is incorrect */ public void setEnterpriseOid(String oid) throws IllegalArgumentException; /** * Returns the names of the MIBs available in this SNMP protocol adaptor. * * @return An array of MIB names. */ public String[] getMibs(); // GETTERS FOR SNMP GROUP (MIBII) //------------------------------- /** * Returns the <CODE>snmpOutTraps value defined in MIB-II. * * @return The <CODE>snmpOutTraps value. */ public Long getSnmpOutTraps(); /** * Returns the <CODE>snmpOutGetResponses value defined in MIB-II. * * @return The <CODE>snmpOutGetResponses value. */ public Long getSnmpOutGetResponses(); /** * Returns the <CODE>snmpOutGenErrs value defined in MIB-II. * * @return The <CODE>snmpOutGenErrs value. */ public Long getSnmpOutGenErrs(); /** * Returns the <CODE>snmpOutBadValues value defined in MIB-II. * * @return The <CODE>snmpOutBadValues value. */ public Long getSnmpOutBadValues(); /** * Returns the <CODE>snmpOutNoSuchNames value defined in MIB-II. * * @return The <CODE>snmpOutNoSuchNames value. */ public Long getSnmpOutNoSuchNames(); /** * Returns the <CODE>snmpOutTooBigs value defined in MIB-II. * * @return The <CODE>snmpOutTooBigs value. */ public Long getSnmpOutTooBigs(); /** * Returns the <CODE>snmpInASNParseErrs value defined in MIB-II. * * @return The <CODE>snmpInASNParseErrs value. */ public Long getSnmpInASNParseErrs(); /** * Returns the <CODE>snmpInBadCommunityUses value defined in MIB-II. * * @return The <CODE>snmpInBadCommunityUses value. */ public Long getSnmpInBadCommunityUses(); /** * Returns the <CODE>snmpInBadCommunityNames value defined in MIB-II. * * @return The <CODE>snmpInBadCommunityNames value. */ public Long getSnmpInBadCommunityNames(); /** * Returns the <CODE>snmpInBadVersions value defined in MIB-II. * * @return The <CODE>snmpInBadVersions value. */ public Long getSnmpInBadVersions(); /** * Returns the <CODE>snmpOutPkts value defined in MIB-II. * * @return The <CODE>snmpOutPkts value. */ public Long getSnmpOutPkts(); /** * Returns the <CODE>snmpInPkts value defined in MIB-II. * * @return The <CODE>snmpInPkts value. */ public Long getSnmpInPkts(); /** * Returns the <CODE>snmpInGetRequests value defined in MIB-II. * * @return The <CODE>snmpInGetRequests value. */ public Long getSnmpInGetRequests(); /** * Returns the <CODE>snmpInGetNexts value defined in MIB-II. * * @return The <CODE>snmpInGetNexts value. */ public Long getSnmpInGetNexts(); /** * Returns the <CODE>snmpInSetRequests value defined in MIB-II. * * @return The <CODE>snmpInSetRequests value. */ public Long getSnmpInSetRequests(); /** * Returns the <CODE>snmpInTotalSetVars value defined in MIB-II. * * @return The <CODE>snmpInTotalSetVars value. */ public Long getSnmpInTotalSetVars(); /** * Returns the <CODE>snmpInTotalReqVars value defined in MIB-II. * * @return The <CODE>snmpInTotalReqVars value. */ public Long getSnmpInTotalReqVars(); /** * Returns the <CODE>snmpSilentDrops value defined in rfc 1907 NMPv2-MIB . * * @return The <CODE>snmpSilentDrops value. * * @since 1.5 */ public Long getSnmpSilentDrops(); /** * Returns the <CODE>snmpProxyDrops value defined in rfc 1907 NMPv2-MIB . * * @return The <CODE>snmpProxyDrops value. * * @since 1.5 */ public Long getSnmpProxyDrops(); // PUBLIC METHODS //--------------- /** * Adds a new MIB in the SNMP MIB handler. * This method is called automatically by {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptor(SnmpMibHandler)} * and {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptorName(ObjectName)} * and should not be called directly. * * @param mib The MIB to add. * * @return A reference to the SNMP MIB handler. * * @exception IllegalArgumentException If the parameter is null. */ public SnmpMibHandler addMib(SnmpMibAgent mib) throws IllegalArgumentException; /** * Adds a new MIB in the SNMP MIB handler. * * @param mib The MIB to add. * @param oids The set of OIDs this agent implements. * * @return A reference to the SNMP MIB handler. * * @exception IllegalArgumentException If the parameter is null. * * @since 1.5 */ public SnmpMibHandler addMib(SnmpMibAgent mib, SnmpOid[] oids) throws IllegalArgumentException; /** * Removes the specified MIB from the SNMP protocol adaptor. * This method is called automatically by {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptor(SnmpMibHandler)} * and {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptorName(ObjectName)} * and should not be called directly. * * @param mib The MIB to be removed. * * @return <code>true if the specified mib was a MIB included in the SNMP MIB handler, * <code>false otherwise. */ public boolean removeMib(SnmpMibAgent mib); /** * Sends a trap using SNMP V1 trap format. * <BR>The trap is sent to each destination defined in the ACL file (if available). * If no ACL file or no destinations are available, the trap is sent to the local host. * * @param generic The generic number of the trap. * @param specific The specific number of the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. */ public void snmpV1Trap(int generic, int specific, SnmpVarBindList varBindList) throws IOException, SnmpStatusException; /** * Sends a trap using SNMP V1 trap format. * <BR>The trap is sent to the specified InetAddress destination * using the specified community string (and the ACL file is not used). * * @param address The <CODE>InetAddress destination of the trap. * @param cs The community string to be used for the trap. * @param generic The generic number of the trap. * @param specific The specific number of the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. */ public void snmpV1Trap(InetAddress address, String cs, int generic, int specific, SnmpVarBindList varBindList) throws IOException, SnmpStatusException; /** * Sends a trap using SNMP V1 trap format. * <BR>The trap is sent to the specified SnmpPeer destination. * The community string used is the one located in the <CODE>SnmpPeer parameters (SnmpParameters.getRdCommunity() ). * * @param peer The <CODE>SnmpPeer destination of the trap. * @param agentAddr The agent address to be used for the trap. * @param enterpOid The enterprise OID to be used for the trap. * @param generic The generic number of the trap. * @param specific The specific number of the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * @param time The time stamp (overwrite the current time). * * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. * * @since 1.5 */ public void snmpV1Trap(SnmpPeer peer, SnmpIpAddress agentAddr, SnmpOid enterpOid, int generic, int specific, SnmpVarBindList varBindList, SnmpTimeticks time) throws IOException, SnmpStatusException; /** * Sends a trap using SNMP V2 trap format. * <BR>The trap is sent to the specified SnmpPeer destination. * <BR>The community string used is the one located in the SnmpPeer parameters (SnmpParameters.getRdCommunity() ). * <BR>The variable list included in the outgoing trap is composed of the following items: * <UL> * <LI>sysUpTime.0 with the value specified by time * <LI>snmpTrapOid.0 with the value specified by trapOid * <LI>all the (oid,values) from the specified varBindList * </UL> * * @param peer The <CODE>SnmpPeer destination of the trap. * @param trapOid The OID identifying the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * @param time The time stamp (overwrite the current time). * * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. * * @since 1.5 */ public void snmpV2Trap(SnmpPeer peer, SnmpOid trapOid, SnmpVarBindList varBindList, SnmpTimeticks time) throws IOException, SnmpStatusException; /** * Sends a trap using SNMP V2 trap format. * <BR>The trap is sent to each destination defined in the ACL file (if available). * If no ACL file or no destinations are available, the trap is sent to the local host. * <BR>The variable list included in the outgoing trap is composed of the following items: * <UL> * <LI>sysUpTime.0 with its current value * <LI>snmpTrapOid.0 with the value specified by trapOid * <LI>all the (oid,values) from the specified varBindList * </UL> * * @param trapOid The OID identifying the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. */ public void snmpV2Trap(SnmpOid trapOid, SnmpVarBindList varBindList) throws IOException, SnmpStatusException; /** * Sends a trap using SNMP V2 trap format. * <BR>The trap is sent to the specified InetAddress destination * using the specified community string (and the ACL file is not used). * <BR>The variable list included in the outgoing trap is composed of the following items: * <UL> * <LI>sysUpTime.0 with its current value * <LI>snmpTrapOid.0 with the value specified by trapOid * <LI>all the (oid,values) from the specified varBindList * </UL> * * @param address The <CODE>InetAddress destination of the trap. * @param cs The community string to be used for the trap. * @param trapOid The OID identifying the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. */ public void snmpV2Trap(InetAddress address, String cs, SnmpOid trapOid, SnmpVarBindList varBindList) throws IOException, SnmpStatusException; /** * Send the specified trap PDU to the passed <CODE>InetAddress. * @param address The destination address. * @param pdu The pdu to send. * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. * * @since 1.5 */ public void snmpPduTrap(InetAddress address, SnmpPduPacket pdu) throws IOException, SnmpStatusException; /** * Send the specified trap PDU to the passed <CODE>SnmpPeer. * @param peer The destination peer. The Read community string is used of <CODE>SnmpParameters is used as the trap community string. * @param pdu The pdu to send. * @exception IOException An I/O error occurred while sending the trap. * @exception SnmpStatusException If the trap exceeds the limit defined by <CODE>bufferSize. * @since 1.5 */ public void snmpPduTrap(SnmpPeer peer, SnmpPduPacket pdu) throws IOException, SnmpStatusException; /** * Sends an inform using SNMP V2 inform request format. * <BR>The inform request is sent to each destination defined in the ACL file (if available). * If no ACL file or no destinations are available, the inform request is sent to the local host. * <BR>The variable list included in the outgoing inform request is composed of the following items: * <UL> * <LI>sysUpTime.0 with its current value * <LI>snmpTrapOid.0 with the value specified by trapOid * <LI>all the (oid,values) from the specified varBindList * </UL> * To send an inform request, the SNMP adaptor server must be active. * * @param cb The callback that is invoked when a request is complete. * @param trapOid The OID identifying the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @return A vector of {@link com.sun.jmx.snmp.daemon.SnmpInformRequest} objects. * <P>If there is no destination host for this inform request, the returned vector will be empty. * * @exception IllegalStateException This method has been invoked while the SNMP adaptor server was not active. * @exception IOException An I/O error occurred while sending the inform request. * @exception SnmpStatusException If the inform request exceeds the limit defined by <CODE>bufferSize. */ public Vector<?> snmpInformRequest(SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList) throws IllegalStateException, IOException, SnmpStatusException; /** * Sends an inform using SNMP V2 inform request format. * <BR>The inform is sent to the specified InetAddress destination * using the specified community string. * <BR>The variable list included in the outgoing inform request is composed of the following items: * <UL> * <LI>sysUpTime.0 with its current value * <LI>snmpTrapOid.0 with the value specified by trapOid * <LI>all the (oid,values) from the specified varBindList * </UL> * To send an inform request, the SNMP adaptor server must be active. * * @param address The <CODE>InetAddress destination for this inform request. * @param cs The community string to be used for the inform request. * @param cb The callback that is invoked when a request is complete. * @param trapOid The OID identifying the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @return The inform request object. * * @exception IllegalStateException This method has been invoked while the SNMP adaptor server was not active. * @exception IOException An I/O error occurred while sending the inform request. * @exception SnmpStatusException If the inform request exceeds the limit defined by <CODE>bufferSize. */ public SnmpInformRequest snmpInformRequest(InetAddress address, String cs, SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList) throws IllegalStateException, IOException, SnmpStatusException; /** * Sends an inform using SNMP V2 inform request format. * <BR>The inform is sent to the specified SnmpPeer destination. * <BR> The community string used is the one located in the SnmpPeer parameters (SnmpParameters.getInformCommunity() ). * <BR>The variable list included in the outgoing inform is composed of the following items: * <UL> * <LI>sysUpTime.0 with its current value * <LI>snmpTrapOid.0 with the value specified by trapOid * <LI>all the (oid,values) from the specified varBindList * </UL> * To send an inform request, the SNMP adaptor server must be active. * * @param peer The <CODE>SnmpPeer destination for this inform request. * @param cb The callback that is invoked when a request is complete. * @param trapOid The OID identifying the trap. * @param varBindList A list of <CODE>SnmpVarBind instances or null. * * @return The inform request object. * * @exception IllegalStateException This method has been invoked while the SNMP adaptor server was not active. * @exception IOException An I/O error occurred while sending the inform request. * @exception SnmpStatusException If the inform request exceeds the limit defined by <CODE>bufferSize. * * @since 1.5 */ public SnmpInformRequest snmpInformRequest(SnmpPeer peer, SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList) throws IllegalStateException, IOException, SnmpStatusException; }

Other Java examples (source code examples)

Here is a short list of links related to this Java SnmpAdaptorServerMBean.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.