AdapterEngine messaging URL returns HTTP 401 under high load

Así como la descripción de este árticulo lo menciona, el servidor de PI al procesar un alto número de peticiones por http comienza  a negar el servicio.

Para poder identificarlo debemos aclarar que los escenarios afectados son solo para web services publicados en PI, cuando el servidor comienza a procesar muchos request llega un punto que se queda sin recursos para atender todas las peticiones y en automático la respuesta que devuelve el server es un hermoso código http 401.

Donde la w3c dice:

401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity might include relevant diagnostic information.

Esto significa que el usuario no tiene la autorización para acceder al recurso, pero en realidad esto no tiene nada que ver con el problema que tenemos.

¿Y como nos damos cuenta lo que PI responde? fácil, te instalas el XPI Tool Inspector, y activas el logger para el componente http pero cuidado con su uso porque  puede afectar el rendimiento del server ya que se encarga de generar logs de todas las peticiones web, debe utilizarse con mucho cuidado y en escenarios controlados. La siguiente imagen muestra el response de PI:

¿Y como lo solucionamos? Con configuración, la nota de sap: 821026AdapterEngine messaging URL returns HTTP 401 under high load , describe el problema y la solución, pero no es muy clara:

***********************

For releases 7.10 and above, the below mentioned parameters are set on the RFC Destination “UMEBackendConnection” ( PI 7.1*: NWA -> Configuration Management-> Security -> Destinations and in PI 7.3: Configuration -> Security -> Destinations):

  • Max.Connections
  • Max.Wait Time in ms

When the parameters described above have been increased, but the problem of sporadic HTTP 401 response codes under high load still exists, additional customizing is possible:

The default amount of possible external JCO clients is 100. If the dev_jrfc.trc file in the server directory shows the error “ERROR max no of 100 conversations exceeded” the environment variable CPIC_MAX_CONV must be increased. Also refer to note 314530.
The max value of possible gateway connections may be to low. In case that the gateway trace shows the error “max no of cpic clients exceeded” the setting “gw/max_sys” must be increased. Also refer to note 894100.
The error “max no of connections exceeded” in the gateway trace implies a too low value for parameter “gw/max_conn”. See note 887909.

We had this random 401 authentication issue on our production instance last year.

Changing the UME setting and then restarting the J2EE instance solved it for us.

ume.ldap.connection_pool.max_size 10 -> 100

***********************

En resumen se debe ajustar la configuración de acuerdo a tus necesidades, así que si lo vas a modificar debes calcular la carga de tus request en base a los parametros por defecto que tienes hasta llegar al valor correcto.

Los mios quedaron de la siguiente forma:

Saludos

Enlaces

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s