为了测试我的一个业务系统在不同数据库上的表现,我的tomcat上配置了多个数据源,这样我可以轻松的切换系统到不同的数据源上。为了监测每个数据源的运行状况,随时观测执行的sql语句,我为每个数据源都配置了JDBMonitor,并且这些数据源的JDBMonitor的配置文件共用一个config.xml文件。
但是在我运行的时候却发现系统报错“java.net.bindexception: address in use: jvm_bind”,根据我三十多年的从医经验判断,俺认为是端口冲突。。。。。。唉,别扔臭鸡蛋呀,呵呵。原来是我在config.xml中配置了SocketDBListener,端口为默认的9527,这样当第一个数据源使用以后,这个数据源将启动一个SocketDBListener,所以9527端口就被占用了,以后其他的数据源被时候以后在启动SocketDBListener的时候,也尝试去监听9527端口,这样就出现了如上面的错误。解决问题很简单:为每个数据源都指定一个不同的配置文件(比如config1.xml,config2.xml),并且在每个配置文件中都配置不同的端口(比如9527、9528、3721、9981等等,只要不互相重复,并且不与系统中其他软件占用的端口冲突即可)。
文章来源于领测软件测试网 https://www.ltesting.net/