Programmatic Timer Service (@Timeout) と Glassfish を使用していますが、次のエラーが発生し続けます。
内部例外: java.sql.SQLException: SQL データの変更は、読み取り専用接続、ユーザー、またはデータベースに対して許可されていません。
私のコードは非常に単純で、プログラム タイマー サービスと自動タイマー サービスの両方を使用していますが、エラーはプログラム タイマー サービスに対してのみ表示されます。
私のコードは次のとおりです。
@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 にはありません。
ここで何が問題なのか分かりますか?永続性を無効にするにはどうすればよいですか? ありがとう。