我正在使用 Programmatic Timer Service (@Timeout) 并使用 Glassfish,但我不断收到以下错误:
内部异常:java.sql.SQLException:只读连接、用户或数据库不允许更改 SQL 数据。
我的代码很简单,我同时使用了 Programmatic Timer Service 和 Automatic Timer Service,并且错误只出现在 Programmatic Timer Service 中:
我的代码是:
@Timeout
public void programmaticTimeout(Timer timer) {
sendMessages();
}
// run every minute
@Schedule(hour = "*", minute = "*/1", persistent = false)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public void automaticTimeout() {
sendMessages();
}
@schedule 任务运行良好,而 @Timout 抛出此异常。@schedule 有一个变量表示是否保留数据,而 @Timout 没有。
知道这里有什么问题吗?如何禁用持久性?谢谢。