1

我收到一个错误

SQLException:表已经存在:

在运行与 sterling 9.4 集成的 jboss 时。

我想知道我哪里出错了

4

1 回答 1

1

实际上

这些消息有时会引起用户的关注。但是,大多数情况下,此消息是正常的和预期的(因此,使用 DEBUG 日志记录级别而不是,例如,ERROR 或 WARN。)

默认情况下,服务器会尝试创建支持消息持久性的表。如果表已经存在,则会抛出 java.sql.SQLException。这通常表示表已经存在,不需要创建。当然,如果这些表不存在,它们将被创建,并且管理员不需要创建 JMS 所需的表作为单独的任务。

虽然堆栈跟踪通常是引起关注的日志消息的特征,但它在 DEBUG 消息中是必需的。对于“表已存在”类型的故障,不会引发标准 SQL 异常或消息。这意味着只有当故障是由其他问题引起时才报告异常的一般方法是不存在的。因此,包含堆栈跟踪以在创建表时出现其他故障时方便调试。

可以禁用表的自动创建。当然,在禁用该功能的情况下,必须在 Application Server 启动之前创建表才能使 JMS 系统正常工作。

JBossMQ*

对于 JBossMQ,该功能在 $SERVER_CONFIG_DIR/deploy/jms/-jdbc2-service.xml 文件(例如 default/deploy/jms/hsqldb-jdbc2-service.xml)中被禁用。“CREATE_TABLES_ON_STARTUP = TRUE”行启用自动创建表。将值设置为 FALSE 将禁用表的创建。

JBoss 消息传递

对于 JBoss Messaging,该功能通过 $SERVER_CONFIG_DIR/deploy/jboss-messaging.sar/-persistence-service.xml 配置文件中的 CreateTablesOnStartup 属性禁用(例如,messaging/deploy/jboss-messaging.sar/hsqldb-persistence- service.xml。)默认情况下,此属性设置为 true。要在启动时禁用表的创建,请将值设置为 false。

于 2016-02-02T06:03:26.367 回答