Wildfly计时器服务 - 无法为计时器持久性创建表

时间:2014-10-13 14:55:29

标签: java hibernate postgresql jboss wildfly

我正在使用Wildfly-8.0.0.Final,我尝试根据以下documentation基于PostgreSQL数据配置计时器服务数据存储:

<timer-service thread-pool-name="timer" default-data-store="clustered-store">
    <data-stores>
        <database-data-store name="clustered-store" datasource-jndi-name="java:jboss/datasources/ExampleDS" partition="timer"/>
    </data-stores>
</timer-service>

但我收到以下错误:

16:49:06,280 ERROR [org.jboss.as.ejb3] (MSC service thread 1-15) JBAS014263: Cannot create table for timer persistence: org.postgresql.util.PSQLException: ERROR: type "long" does not exist

当我在应用程序(Hibernate,JPA)中使用相同的数据源时,它可以正常工作。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

根据您引用的文档,用于创建计时器数据库的SQL语句存储在modules/system/layers/base/org/jboss/as/ejb3/main/timers/timer-sql.properties中。

打开该文件,您将看到没有Postgres特定的SQL语句,因此显然WildFly使用未知列类型LONG上的默认和Postgres扼流圈。

尝试将LONG更改为BIGINT,或使用修改后的语句添加新属性create-table.postgresql