Ich bin vor der untene AusgabePostgres Abfrage Timeout Problem beim Connection-Pooling in JBoss mit
ERROR: canceling statement due to user request
inkonsistent, nachdem ich Abfrage-Timeout für xa Datenquelle in meinem xxx-ds.xml aktiviert. Ich habe folgendes in meiner ds xml-Datei hinzugefügt.
<query-timeout>180</query-timeout>
Die Abfrage Timeout wird 180 Sekunden eingestellt, was bedeutet, dass jede SQL-Abfrage, die von der Anwendung Serverseite abgebrochen werden mehr als 180 Sekunden dauert, erhalten.
Aber das Problem, mit dem ich konfrontiert bin, ist inkonsistent und die Abfragen werden hin und wieder ausgezählt, ohne genau 180 Sekunden zu nehmen. Wir verwenden auch Verbindungspooling.
Während der Suche gefunden this Stackoverflow Frage, die für dieses Problem über die möglichen Ursachen diskutiert, während Connection Pooling verwenden.
Die vorgeschlagene Lösung bestand darin, die Einstellung von statement_timeout in der postgresql.conf-Datei zu setzen. Aber es ist etwas schwierig für mich, die Einstellung von statement_timeout in meiner Datenbankumgebung zu aktivieren, da der DB-Server von mehreren Anwendungen gemeinsam genutzt wird. Ich hätte gerne eine Lösung, um zeitgesteuerte Abfragen von Client-Seite effektiv und konsistent zu beenden, während Verbindungs-Pooling verwendet. Ich bin mit
- JBoss 4.2.2-GA
- postgresql 9.2 (64-Bit)
- Java 1.7
- postgresql-9.2-1002.jdbc4.jar
In Ihrer Frage fehlt etwas. Bitte fügen Sie die Details hinzu (Sie haben "Problem unten" geschrieben, aber es wird kein Problem erwähnt) – hering
FEHLER: Das Abbrechen der Anweisung aufgrund einer Benutzeranforderung wird erwartet, wenn eine Anweisung mehr als query-timeout ausführt. Aber ich habe auch ähnliches Problem gestellt. zB: Ich muss 80000 Zeilen verarbeiten und updaten. Der Client ruft alle Zeilen ab und ruft die process() EJB-Methode auf dem Server für jede Zeile auf. dh für jede Zeilenverarbeitung gibt es eine separate xa-Transaktion für jede Zeile. Also wird alles bis zum Timeout funktionieren und die nach Timeout verarbeitete Zeile bekommt diesen Fehler. Es wird für einzelne Aussage erwartet, aber es stellte sich für alle ähnlichen Aussagen heraus. In meiner Datenquellenkonfiguration ist Pooling ebenfalls aktiviert. –