如果在jboss中使用ServiceBindingManager部署多个实例,在启动第二个以及以后的实例的时候,会出现这个错误
java.sql.SQLException: Table already exists: JMS_MESSAGES in statement [CREATE CACHED TABLE JMS_MESSAGES]
at org.hsqldb.jdbc.jdbcUtil.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:316)
at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:224)
..................................
hsqldb可能在启动实例的时候要重复创建表,因此删除后面的实例中的hsqldb-ds.xml文件即可
文件位置:/.../jboss-version/server/node*/deploy/hsqldb-ds.xml
经过实践:把hsqldb-ds.xml
相关的配置检查下,实在不行的情况下:如果没有用到这些,直接用原来的安装包的内容替换掉
然后把deploy下的没用的war等删除掉,即使是多实例部署仍然是没问题的。