3

JBoss 附带 Hypersonic 数据库开箱即用。JNDI 名称为 DefaultDS,描述符存储在 deploy/hsqldb-ds.xml 中。RedHat 建议在部署生产 JBoss 实例之前删除此数据源。RedHat 不支持运行 Hypersonic 的生产实例,已知存在以下问题:

  • 没有隔离事务
  • 线程和套接字泄漏
  • 坚持品质
  • 数据库损坏
  • 负载下的数据库不稳定
  • 不支持集群环境

那么我该如何移除它呢?

4

1 回答 1

4

仅删除数据源还不够好,因为您会遇到缺少依赖项错误:

DEPLOYMENTS IN ERROR: Deployment "jboss.ejb:service=EJBTimerService" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.ejb:service=EJBTimerService' **

要干净地删除 Hypersonic 而不会出现依赖错误,您必须执行以下操作:

  1. 删除部署/hsqldb-ds.xml
  2. 删除 deploy/uuid-key-generator.sar
  3. 删除部署/消息传递(如果您不使用它)
  4. 删除 deploy/juddi-service.sar/ 和 deploy/snmp-adaptor.sar
  5. 编辑 conf/standardjbosscmp-jdbc.xml,并注释掉 defaults 部分
  6. 编辑 conf/login-config.xml,并删除“HsqlDbRealm”应用程序策略
  7. 编辑deploy/ejb2-timer-service.xml注释掉数据库持久化策略,注释noop持久化策略,将EJBTimerServiceImpl持久化策略改为noop from database

完成这些步骤后,您应该不会再在启动时遇到依赖错误。但是,您会间歇性地看到以下警告:

WARN  [loggerI18N] [com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery  got XA exception javax.transaction.xa.XAException: Error trying to connect to provider java:/DefaultJMSProvider, XAException.XAER_RMERR

要解决此警告消息,您需要编辑 conf/jbossts-properties.xml 并注释掉 JBMESSAGING1 java:/DefaultJMSProvider 策略

完成所有这些步骤后,您应该已成功删除 Hypersonic。确保已完成正确的步骤(数据源等)以使用更好的替代数据库:-)

于 2012-05-28T18:52:53.920 回答