Ich führe einen Belastungstest für Web Service SOAP mit Jmeter durch. Im Nicht-GUI-Modus erhalte ich ab einer Thread-Anzahl von 300 Fehler. Dies wurde mit einer „Antwort-Assertion“ mit der folgenden Regel erkannt: „Test fehlgeschlagen: Text darf voraussichtlich nicht /„rta“: „FAIL“/ enthalten.“
Im GUI-Modus kann ich den Fehler mehrerer Beispiele in „Ergebnisbaum anzeigen“ sehen:
IO-Fehler: Der Netzwerkadapter konnte die Verbindung nicht herstellen
Meine aktuelle Oracle-Konfiguration ist:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
Rta:
current_utilization, limit_value
177, 987
Cursor
select max(a.value) as highest_open_cur, p.value as max_open_cur
from v$sesstat a, v$statname b, v$parameter p
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
and p.name= 'open_cursors'
group by p.value;
Rta:
highest_open_cur, max_open_cur
241, 4000
Hängt dieser Fehler mit einer Konfiguration in der Oracle-Datenbank zusammen?
Mehr Informationen: ...
Datenbankversion:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
JMeter-Einstellungen:
Inter® Xeon® Gold 6126 CPU @2.6 Ghz
4 Sockets, 4 Virtual Processors
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
HEAP=-Xms20G -Xmx20G -XX:MaxMetaspaceSize=128m
Windows Server 2016 Standard
Versuchsplan:
- Thread-Gruppe (Anzahl der Threads 320, Hochlaufzeit 37, Schleifenzahl 1)
- 5 HTTP-Anfragen mit jeweils 1 Behauptung.
- 1 Listener PerfMon-Metriken-Sammler
Antwort1
Der Fehler wird ausgelöst durchOracle JDBC-Treiberwenn keine Verbindung zur Datenbank hergestellt werden kann.
Hier istein anderes Beispielvon jemandem, der unter dem gleichen Problem leidet.
Ich vermute, dass Ihre Anwendung nicht richtig verwendetVerbindungspoolMuster (oder es ist einfach nicht implementiert), sodass Verbindungen nach der Ausführung der Abfrage nicht geschlossen werden. Ich würde empfehlen, Ihre Anwendung mit einem Profiler-Tool wie zu überprüfenJProfileroderIhrKit- Auf diese Weise erhalten Sie eine klarere Sicht auf das, was vor sich geht.
Eine weitere Möglichkeit, dem Problem auf den Grund zu gehen, ist die Ausführung eines Belastungstests der Datenbank, d. h. die direkte Ausführung von Abfragen ohne zwischenzeitliche SOAP-API-Aufrufe mithilfe von JMeter.JDBC-AnforderungSampler. Auf diese Weise können Sie feststellen, dass die Datenbank einwandfrei funktioniert und das Problem bei der Java-Anwendung liegt (oder umgekehrt). SieheDas wahre Geheimnis zum Erstellen eines Datenbanktestplans mit JMeterum sich mit dem Konzept des Datenbank-Lasttests mit JMeter vertraut zu machen.