/* * Copyright (c) 2002-2003 iReasoning Inc. All Rights Reserved. * * This SOURCE CODE FILE, which has been provided by iReasoning Inc. as part * of an iReasoning Software product for use ONLY by licensed users of the product, * includes CONFIDENTIAL and PROPRIETARY information of iReasoning Inc. * * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH * THE PRODUCT. * * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD IREASONING SOFTWARE, ITS * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR * DERIVED FROM THIS SOURCE CODE FILE. */ package agent.multihome; import java.io.*; import java.util.*; import com.ireasoning.util.*; import com.ireasoning.protocol.snmp.*; import javax.management.*; import agent.multihome.interface1.*; import agent.multihome.interface2.*; /** * Agent main class */ public class Agent extends SnmpAgentX { /** * Constructor. Create MBeanServer instance internally. Agent will be listening on port specified in config file, which can be retrieved by using SnmpAgentConfig.getPort(). * @param configFileName Agent's config file name. If absolute path is not specified, the file will be assumed located under ./config directory or current directory */ public Agent(String configFileName) throws Exception { super(configFileName, false); } /** * Constructor. Use MBeanServer object passed from caller * @param server MBeanServer object * @param configFileName Agent's config file name. If absolute path is not specified, the file will be assumed located under ./config directory or current directory */ public Agent(MBeanServer server, String configFileName) throws Exception { super(server, configFileName, false); } public static void main(String[] args) { try { String configFile = "config\\MultiHomeSnmpAgent.xml"; Agent agent = new Agent(configFile); agent.startMasterAgent();//start master agent listening on a port specified in config file MBeanServer server = agent.getMBeanServer(); If1Agent if1agent = new If1Agent (server, "config\\If1SnmpAgent.xml"); SubAgentSession session1 = if1agent.connect(agent.getConfig().getIpAddress(), 705); //register first row of ifTable int ret = session1.register(OIDTree.IFENTRY + ".1.1" , 10, 22, 30); if(ret != 0) { Logger.error("ifagent1 registration of subtree failed"); } If2Agent if2agent = new If2Agent (server, "config\\If2SnmpAgent.xml"); SubAgentSession session2 = if2agent.connect(agent.getConfig().getIpAddress(), 705); //register second row of ifTable ret = session2.register(OIDTree.IFENTRY + ".1.2" , 10, 22, 30); if(ret != 0) { Logger.error("ifagent2 registration of subtree failed"); } } catch(Exception e) { Logger.error(e); } } /** * Sets the MIB tree data structure. This method gets called by base class */ protected void setOIDTree() { _root = OIDTree.getTree(); } /** * Register necessary MBeans */ protected void registerMBeans() throws SnmpException { AgentMib.registerMBeans(_mbeanServer, _root); } /** * Unregister necessary MBeans */ protected void unregisterMBeans() { AgentMib.unregisterMBeans(); } }