我正在使用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)中使用相同的数据源时,它可以正常工作。
有人可以帮我解决这个问题吗?
答案 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
。