如何从默认的 JBoss 服务器配置中删除 Hypersonic?
Posted
技术标签:
【中文标题】如何从默认的 JBoss 服务器配置中删除 Hypersonic?【英文标题】:How do you remove Hypersonic from default JBoss server configuration? 【发布时间】:2012-05-28 18:47:12 【问题描述】:JBoss 附带 Hypersonic 数据库开箱即用。 JNDI 名称为 DefaultDS,描述符存储在 deploy/hsqldb-ds.xml 中。 RedHat 建议在部署生产 JBoss 实例之前删除此数据源。 RedHat 不支持运行 Hypersonic 的生产实例,已知存在以下问题:
不隔离事务 线程和套接字泄漏 持久性质量 数据库损坏 负载下的数据库不稳定 不支持集群环境那么我该如何移除它呢?
【问题讨论】:
>>> 编辑 conf/standardjbosscmp-jdbc.xml,并注释掉这部分你能定义在文件中注释掉的具体内容吗? 在默认值周围有一个小于和一个大于。现已修复,对此感到抱歉 【参考方案1】:仅仅删除数据源是不够的,因为你会遇到缺少依赖的错误:
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 而不会出现依赖错误,您必须执行以下操作:
-
删除 deploy/hsqldb-ds.xml
删除 deploy/uuid-key-generator.sar
删除部署/消息传递(如果您不使用它)
删除 deploy/juddi-service.sar/ 和 deploy/snmp-adaptor.sar
编辑 conf/standardjbosscmp-jdbc.xml,并注释掉默认部分
编辑 conf/login-config.xml,并删除“HsqlDbRealm”应用程序策略
编辑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。确保已完成正确的步骤(数据源等)以使用更好的替代数据库 :-)
【讨论】:
我可以补充一点,如果您使用 JMS 并且不想删除消息传递,您还需要以下步骤: 1. 将 hsqldb-persistence-service.xml 替换为 null-persistence-service.xml 2.在null-persistence-service.xml中的JDBCJMSUserManagerService mbean中添加以上是关于如何从默认的 JBoss 服务器配置中删除 Hypersonic?的主要内容,如果未能解决你的问题,请参考以下文章