Trying to install an already registered mbean

问题描述:

同事问什么情况下,JBOSS的数据源会加载两遍。

想了想,回答说,出错的情况下:)

 

开发的一个同事用jobss连测开发库的时候一切正常,但想通过oracle-ds.xml连测试库的时候出现了数据源加载两遍的问题

 

 

 

以下是错误信息:

09:03:14,865 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'
09:03:14,944 ERROR [MainDeployer] Could not create deployment: file:/D:/jboss-eap-4.3/jboss-as/server/8080/deploy/oracle-ds.xml
org.jboss.deployment.DeploymentException: Trying to install an already registered mbean: jboss.jca:service=LocalTxCM,name=demoDataSource
 at org.jboss.system.ServiceCreator.install(ServiceCreator.java:103)
 at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:455)
 at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:171)
 at org.jboss.system.ServiceController.install(ServiceController.java:226)
 at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
 
--- Incompletely deployed packages ---
org.jboss.deployment.DeploymentInfo@a609c605 { url=file:/D:/jboss-eap-4.3/jboss-as/server/8080/deploy/oracle-ds.xml }
  deployer: org.jboss.deployment.XSLSubDeployer@1a0eec3
  status: Deployment FAILED reason: Trying to install an already registered mbean: jboss.jca:service=LocalTxCM,name=demoDataSource
  state: FAILED
  watch: file:/D:/jboss-eap-4.3/jboss-as/server/8080/deploy/oracle-ds.xml
  altDD: null
  lastDeployed: 1309251794944
  lastModified: 1309251794897
  mbeans:

 

简单记录解决过程:

1 .删除oracle-ds.xml后,重启jboss.

 

应用可以正常访问数据库。奇怪了,JBOSS中deploy目录下没有了oracle-ds.xml,还能访问数据库。比较不正常。

 

2.问同事做过什么操作?
答:原来连开发库,一切正常。后来想换测试库的时候,就删除了开发库的oracle-ds.xml。把配置好测试库的oracle-ds.xml

拷贝过来就出错了。但原来这个测试库的oracle-ds.xml是可以用的。


3.检查了一下,测试库的oracle-ds.xml确实没有问题。

 

4.分析与猜测

没有oracle-ds.xml居然可以连数据库,这是不正常的。一定是在deploy的其它目录下有oracle-ds.xml文件。但在deploy目录下搜索了一遍。没发现oracle-ds.xml。但我坚信deploy目录下一定是有oracle-ds.xml。否则在我们的应用里不可能连上数据库

 

5.真像大白

按修改日期对deploy目录下的文件排了一下序,发现一个jboss的jar包(jboss-ha-local-jdbc.rar)居然被修改过。按常理这个jar开发人员是不会去修改的。同事也说没动过这个jar。我相信机器是不会骗人的,有没有修改过。打开看看就知道了。果然用rar打开这个jar包的时候,在jar包中看到了一个oracle-ds.xml。而这个oracle-ds.xml正是连测试库的配置文件。

 

jar包中已经有了一个oracle-ds.xml,在deploy中再配置一个相同的oracle-ds.xml。出现Trying to install an already registered mbean 这个错误也就正常了。


这也解释了,删除掉deploy目录下的oracle-ds.xml后,系统能连数据库的原因了。

 

这时同事回想起来了,她拷贝测试库oracle-ds.xml的时候,拷贝了两遍。第一遍是拖过来的,但拖过来后在depoly目录下没发现oracle-ds.xml。又ctrl+c ,ctrl+v拷贝了一遍。再启动jboss的时候就出错了。没想到这小个问题,浪费了她大半天的时间。 

 

当帮她解决完这个问题时,她说你对jboss了解的真透彻。这么偏的问题,你都能找出来。

 

呵呵,其实我也是碰的,不一定什么问题都能解决。只不过是比她多了些怀疑与猜测的思想而已 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值