JBoss 附带 Hypersonic 数据库开箱即用。JNDI 名称为 DefaultDS,描述符存储在 deploy/hsqldb-ds.xml 中。RedHat 建议在部署生产 JBoss 实例之前删除此数据源。RedHat 不支持运行 Hypersonic 的生产实例,已知存在以下问题:
- 没有隔离事务
- 线程和套接字泄漏
- 坚持品质
- 数据库损坏
- 负载下的数据库不稳定
- 不支持集群环境
那么我该如何移除它呢?
仅删除数据源还不够好,因为您会遇到缺少依赖项错误:
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 而不会出现依赖错误,您必须执行以下操作:
完成这些步骤后,您应该不会再在启动时遇到依赖错误。但是,您会间歇性地看到以下警告:
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。确保已完成正确的步骤(数据源等)以使用更好的替代数据库:-)