[MicroProfile] @Retry von Micro Profile Fault Tolerance greift nicht

microprofile
fault-tolerance

#1

Hi,

ich versuche mich gerade an den Fault Tolerance Features vom Eclipse Micro Profile (http://www.eclipse.org/community/eclipse_newsletter/2017/september/article4.php). Als Grundlage dazu benutze ich das REST Service Tutorial von OpenLiberty (https://github.com/OpenLiberty/guide-rest-intro/tree/master/finish), als MicroProfile Runtime benutze ich ebenfalls OpenLiberty.

Meine Idee wäre jetzt gewesen, meine Bean im Pseudo-Backend mit einer @Timeout(value = 100) Annotation zu versehen und den Thread in der Methode für 10 Sekunden zu pausieren. Dann müsste der Service nach 100 Millisekunden abbrechen und mir eine Fehlerseite zeigen. Leider funktioniert das nicht: Der Service wartet die vollen 10 Sekunden und gibt mir dann das “normale” Ergebnis zurück. Hat jemand von euch zufällig schon Erfahrung mit diesen Features sammeln können und mir sagen was ich falsch mache? Ich gehe mal davon aus, es wird irgendwas total simples und dämliches sein.

@Timeout(value = 100)
public JsonObject get(String hostname) {
    try {
        Thread.sleep(10_000);
    } catch (InterruptedException ex) {
        Logger.getLogger(InventoryManager.class.getName()).log(Level.SEVERE, null, ex);
    }
    JsonObject properties = inv.get(hostname);
    if (properties == null) {
        if (InventoryUtil.responseOk(hostname)) {
            properties = InventoryUtil.getProperties(hostname);
            this.add(hostname, properties);
        } else {
            return ReadyJson.SERVICE_UNREACHABLE.getJson();
        }
    }
    return properties;
}