如何从默认的 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:service=TransactionManager

以上是关于如何从默认的 JBoss 服务器配置中删除 Hypersonic?的主要内容,如果未能解决你的问题,请参考以下文章

我们如何使用 jboss cli 从 jboss mq 中删除特定消息

jboss 7.1,什么是standalone.log

在Jboss 8 Wildfly中设置默认地址

如何从 Wildfly 中删除 KeyCloak?

如何在 Jboss 5 中配置外部服务调用证书

如何从 Eclipse 运行和调试 JBoss EAP 6?