Estoy haciendo una prueba de carga al servicio web SOAP con Jmeter, en modo no GUI empiezo a recibir errores desde 300 Número de subprocesos, esto se detectó con una "Afirmación de respuesta" con esta regla: "Prueba fallida: texto esperado no para contener / "rta": "FAIL" / ".
En el modo GUI puedo ver el error de varias muestras en "Ver árbol de resultados":
Error de E / S: el adaptador de red no pudo establecer la conexión
Mi configuración actual de Oracle es:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
Rta:
current_utilization, limit_value
177, 987
Cursores
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
¿Este error está relacionado con alguna configuración en la base de datos Oracle?
Más información: ...
Versión de base de datos:
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
Configuración de jmeter:
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
Plan de prueba:
- Grupo de subprocesos (número de subprocesos 320, período de aceleración 37, recuento de bucles 1)
- 5 Solicitud HTTP con 1 aserción cada una.
- 1 Recopilador de métricas PerfMon de escucha
Respuestas:
Oracle JDBC Driver arroja el error cuando no puede establecer una conexión con la base de datos.
Aquí hay otro ejemplo de alguien que sufre el mismo problema.
Mi expectativa es que su aplicación no esté usando correctamente el patrón de Pool de conexiones (o simplemente no está implementado) por lo que las conexiones no se están cerrando después de ejecutar la consulta. Recomendaría verificar su aplicación utilizando una herramienta de creación de perfiles como JProfiler o YourKit , de esta manera obtendrá una visión más clara de lo que está sucediendo.
Otra forma de llegar al fondo del problema es ejecutar una prueba de carga contra la base de datos, es decir, ejecutar consultas directamente sin llamadas intermedias de API SOAP utilizando el muestreador de solicitudes JDBC de JMeter . De esta manera, podrá establecer que la base de datos funciona bien y el problema está en la aplicación Java (o viceversa). Vea El verdadero secreto para crear un plan de prueba de base de datos con JMeter para familiarizarse con el concepto de prueba de carga de bases de datos con JMeter.
fuente