Ich versuche, die Spring @Transactional-Annotation und den Timeout-Parameter zu verwenden. Grundsätzlich teste ich den Code, indem ich einige Thread.sleep()-Codes einfüge. Dann bekomme ich wie erwartet eine Timeout-Ausnahme. Außerdem möchte ich eine Timeout-Ausnahme erhalten, wenn Datenbankvorgänge länger als mein Timeout-Zeitraum dauern. Ich sperre einen Datensatz in einer Tabelle in meiner Datenbank mit der Anweisung „for update select“. Ich versuche, diesen Datensatz zu aktualisieren. Aber das Programm wartet und tut nichts. Hier ist mein Beispielcode.
Code: Select all
@Transactional(rollbackFor = Exception.class, timeout=5)
public void executeService(List list) throws Exception{
List newList = gDAO.updateSentList(list);
}
In diesem Fall sollte das Programm eine Timeout-Ausnahme auslösen. Wie kann ich das Problem beheben?