jboss Wildfly-Datenquellenverbindung fehlgeschlagen - Innerhalb der konfigurierten Sperrzeit sind keine verwalteten Verbindungen verfügbar

8

Ich habe einen jboss-Wildfly-Server, der über eine auf dem App-Server konfigurierte Datenquelle mit einer MySQL-Datenbank verbunden ist.

Es dauert einige Zeit, dass die mysql-Datenbank für eine gewisse Zeit nicht zugänglich ist (netework-Problem etc ...), wenn die mysql nicht zugänglich ist, erhalte ich in den Protokollen die Nachricht:

%Vor%

Dies wird erwartet, da Ihre MySQL-Version in diesem Moment nicht verfügbar ist. Das Problem ist, dass wenn der MySQL-Server wieder online geht, der Fehler weiterhin besteht und der jboss-Server kein gültiges aus dem Verbindungspool bekommen kann.

>

Ich habe: Wildfliege 8.1 mysql 5.5 Verwenden Sie JPA für die Kommunikation mit der Datenbank

Hier ist die Datenquellenkonfiguration:

%Vor%

Und hier ist der komplette Stack-Trace des Fehlers:

%Vor%     
simonC 29.01.2015, 10:46
quelle

6 Antworten

7

Offenbar müssen Sie eine Flush-Strategie für Ihre fehlgeschlagenen Verbindungen definieren. Überprüfen Sie den Parameter "Flush-Strategie".

Ein guter Anfang ist hier: Ссылка

Sie verweisen auf diese XSD: Ссылка

Und die XSD-Beschreibung ist hier: Ссылка

In Ihrem Fall würde ich versuchen, die Netzwerkprobleme herauszufinden. Unabhängig davon. Ich würde in Ihrem Fall (bei schlechten Verbindungsproblemen) meinen kompletten Verbindungspool leeren: Flush-Strategie = & gt; EntirePool

viel Glück bei der Behebung eines solchen Problems

    
cilap 09.02.2015 17:23
quelle
3

Was bedeutet die Nachricht Keine verwaltete Verbindung verfügbar?

Dies bedeutet, dass alle möglichen Verbindungen zur Datenbank verwendet werden und / oder dass ein Thread eine Zeitüberschreitung hat, während er darauf wartet, dass eine Verbindung geöffnet wird.

Mögliche Lösungen:

Erhöhen Sie die Größe Ihres Verbindungspools

Hinzufügen

<max-pool-size>whatever</max-pool-size>

zu Ihrer -ds.xml-Datei, um

zu erhöhen

die Anzahl der verfügbaren Verbindungen. Der Standardwert ist 20

Es gibt ein Attribut

MaxConnectionsInUse

sichtbar auf der jmx-Konsole gegen die

ManagedConnectionPool

kann Ihnen helfen zu verstehen, wie viele Verbindungen Sie wirklich brauchen.

Sagen Sie Ihren Threads, dass sie länger warten sollen, bis eine Verbindung geöffnet wird

Hinzufügen

<blocking-timeout-millis>whatever</blocking-timeout-millis>

in der Datei -ds.xml, um die Wartezeit zu erhöhen. Der Standardwert ist 30000 (5000 vor JBoss-3.2.4) Millisekunden.

Stellen Sie sicher, dass Sie offene Verbindungen ordnungsgemäß schließen

    
Harsh 11.02.2015 09:44
quelle
0

debug="true" error="true" in der JCA in standalone-ha.xml

Überprüfen Sie, ob das im jca-Subsystem vorhanden ist, und setzen Sie debug="true".           ...                      ...         Dann wird in server.log geschrieben, wenn irgendwelche Verbindungen nicht mit der Stack-Ablaufverfolgung des Codes schließen.

    
srinivasa dutt pulipaka 03.12.2015 02:27
quelle
0

Ich hatte ein ähnliches Problem, das ich mit der Antwort, die @ Harsh gesagt hat, behoben habe. Ich habe die maximale Größe von 20 auf 100 erhöht und das Problem ist vorbei.

    
Rafael Capretz 11.08.2016 11:00
quelle
-2

Verursacht von: javax.resource.ResourceException: IJ000655: Es sind keine verwalteten Verbindungen innerhalb des konfigurierten Sperrzeitlimits verfügbar (30000 [ms])

Diese Nachricht besagt, dass der konfigurierte Pool keine Verbindung innerhalb des konfigurierten Timeouts von 3 Sekunden (3000 ms) bereitstellen kann. Entweder ist Ihr Pool zu niedrig oder Ihre Verbindungen werden nach der Nutzung nicht geschlossen. Möglicherweise funktioniert die Poolgröße dann besser.

Überprüfen Sie auch die Verbindung in der Nähe von JBoss.

    
Naman 11.02.2015 07:40
quelle
-2

Verursacht von: javax.resource.ResourceException: IJ000453: Es konnte keine verwaltete Verbindung für java: jboss / services_DS

abgerufen werden

Es scheint, dass das Problem mit einer Datenbanktabelle und einer Java-Konfiguration wie hbm.xml zusammenhängt. Für jeden Tabellentyp-Parameter öffnet die Java API eine Verbindung zur Datenbank oder aufgrund einer anderen Umgebungskonfiguration.

Bitte beachten Sie den folgenden Link hier werden Sie das gleiche Problem mit der Lösung bekommen.

Ссылка

Ссылка

    
Ranjitsinh 11.02.2015 09:41
quelle