Report Parameter
Si tenemos varios usuarios que desean ejecutar reportes e informes pero se quejan que esperan mucho tiempo (porque es solo un formulario que imprimen). Lo ideal es que se optimice el reporte para ver si se le puede hacer algún tuneo a la consulta, pero si son reportes que por su naturaleza son complejos y necesitan de un tiempo de entre 10 y 60 segundos a nivel de del reporte no podemos hacer nada para mejorarlo, lo que podemos hacer es configurar nuestro report server para que se creen más procesos de manera automática si existen reportes en cola d ejecución. La configuración inicial de report server solo permite ejecutar uno a uno las colas de reportes, por lo que puede suceder que esta cola de impresión se demore en atenderse si hablamos de reportes complejos.
Para esto nos podemos ayudar de los parámetros del sistema de reporte
- Sistemas Iniciales (initEngine)
- Máximo de Sistemas (maxEngine)
Máximo de Sistemas (maxEngine): Indica el número de procesos máximo que se pueden crear para atender las peticiones de ejecución de reportes. El valor por defecto es 1.
Lo recomendable es que Máximo de Sistemas (maxEngine) se configure con la cantidad de procesadores que posee el servidor donde reside el servicio de reportes.
Sistemas Iniciales (initEngine) yo recomiendo que se deje su valor en 1, para que luego no queden procesos subutilizado que ocupan memoria. Por qué ? Bueno como les dije este parámetro indica la cantida de procesos iniciales que atenderán las peticiones de impresión, Ejemplo:
Si maxEngine es igual 4 y initEngine es igual a 4 entonces desde que se levanta el servicio de report habrán 4 procesos para impresiones estén o no haciendo solicitudes
Si maxEngine es igual 4 y initEngine es igual a 1 entonces desde que se levanta el servicio de report habrá 1 proceso para impresiones estén o no haciendo solicitudes, y si el proceso esta ocupado se procederá a crearse otro para atender una petición, luego de finalizar este nuevo proceso se eliminará.
Configuración desde el EM de Oracle:
1-Ingresamos a la url del em y digitamos el usuario y clave.
2-Seleccionamos nuestro componente del sistema Reporte que deseamos configurar
4-Cambiamos el valor del parámetro (en mi caso tengo 2 procesadores con 4 núcleo y lo configuro con 8) y damos click en aceptar.
5-Indicamos que si deseamos reiniciar el servicio de reportes.
Configuración desde el archivo:
1-Editamos el archivo de configuración .conf del servidor de reportes ubicado en %OAS_HOME%\reports\conf, el nombre de mi servidor de reportes es srv_reporte01 por lo que el archivo de configuración tendrá el mismo nombre.
2-Buscamos dentro de la sección engine y buscamos los parámetros initEngine y maxEngine. Luego de encontrarlo modificamos sus valores.
<engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="8" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="90000"> <property name="sourceDir" value="E: \Reportes "/> <!--property name="tempDir" value="your reports temp directory"/--> <!--property name="keepConnection" value="yes"/--> </engine> |
3-Bajamos y subimos el servicio del report server, vamos al %OAS_HOME%opmn\bin. opmnctl stopproc ias-component=srv_reporte01
- Listo, ya tenemos configurado nuestro servidor de reportes para que pueda atender 8 solicitudes a la vez
Nota: El cambio de este parámetro involucra reiniciar el servicio de reportes, por lo que se debe de tener en consideración que el servicio estará fuera lo que tarde en reiniciarse.
Buenas tardes te hago una consulta....
ResponderEliminarTeniendo definido el valor MaxEngine, en el archivo de configuracion, porque puede ser que no llegue a abrir otro motor para procesar, cuando le llegua mas de una peticion.
Usamos Oracle Reports 11. Desde ya muchas gracias.
Saludos, le pusiste la misma cantidad de nucleos que tiene el host?, podrias probar configurando initEngine para ver si se crean los proceso
Eliminar