miércoles, 14 de febrero de 2018

Como devolver más de 500 filas de resultado cuando procesamos una consulta de servicio RESTful

Aprovecho de escribir este post porque el otro día un desarrollador en Apex me contactó por una consulta el cual él no podía mostrar en su servicio web más de 500 filas, que es el valor por defecto cuando instalamos el ORDS.

Para este caso él dispone del ORDS con Oracle Apex y un servidor Glassfish. Para manejar el máximo de rows utilizamos el parámetro jdbc.maxRows dentro del archivo default.xml en la configuración del ORDS.

Es muy importante colocar la m en minúscula de max, ya que en la documentación el parámetro sale escrito así: jdbc.MaxRows, y escrito de esta forma en el archivo default.xml no funciona.

Accedemos al archivo default.xml de la configuración de nuestro ORDS e ingresamos la siguiente línea:

<entry key="jdbc.maxRows">numero-de-filas</entry>

Por ejemplo: 

<entry key="jdbc.maxRows">1000</entry> 


En el siguiente link tenemos información de los diferentes parámetros que se pueden configurar en el ORDS.

https://docs.oracle.com/cd/E37099_01/doc.20/e25066/config_file.htm#AELIG7204

Si bien el parámetro por defecto es 500, y no tiene ningún máximo, el máximo de filas va a depender de la configuración y los recursos del hardware ya que hacer que devuelva todas las filas, en el caso que sean miles y miles de filas puede producir que el servidor colapse. Una vez cambiado el parámetro o agregado si no se encuentra el parámetro en el archivo se debe reiniciar el servidor de Glassfish. ¡Bueno espero le sirva a otra persona este post!

No hay comentarios.:

Publicar un comentario