OpenNMS安装后,在其安装路径下(%OpenNMS_HOMT%)的bin目录下,可以通过执行

   
   
   
   
  1. opennms start 

来启动OpenNMS。那么在该启动过程中究竟发生了哪些事情呢?

首先会检查当前是否有OpenNMS在运行,如果有,则直接退出,本次启动结束;然后检查数据库是否在运行,检查的方法也很简单,就是简单的连下数据库看是否成功,如果数据库没有启动,则直接退出。然后从%opennms_home%/etc目录下的service-configuration.xml中的所有service,将所有配置的service生成其实例对象,然后对与每个service对象,根据配置文件中,将所有at属性为"start"的invoke其method方法调用。invoke里面还有个重要的属性即pass,这个属性用于控制比如在start时,如果有多个方法需要调用,可以通过pass值来定义它们之间的调用顺序。另外,在系统启动过程中还会检查opennms.home属性是否设置,它记录了OpenNMS的安装路径,如果没有设置,则会通过当前的classpath路径来确定opennms.home。一旦确定了opennms.home,则会继续加载opennms.home/etc/bootstrap.properties文件(如果该文件存在),rrd-configuration.properties文件及libraries.properties这三个属性文件。

另外通过opennms.classpath属性,还新建了一个classloader。opennms.classpath的内容包括了classloader加载jar及属性文件时的搜所路径,包括opennms.home/classes, opennms.home/lib, opennms.home/etc/