Reportes

Buenas estoy en la versión 3.18 me empezó a tirar error en los reportes de gestión de la nada.
Migramos testing pero producción no tocamos nada. Revise permisos que no deberían haber cambiado ya que no se toco nada.
Algunos reportes funcionan como la ficha de la persona, pero actas de exámenes no y otros reportes. Me podrían guiar es urgente ya que están en mesa y de la nada empezo a fallar algunos reportes.

La pantalla queda en blanco. En log apache tengo esto:

[Mon Feb 07 20:52:07.635693 2022] [php7:warn] [pid 8177] [client 10.98.40.1:44164] PHP Warning: stream_set_timeout() expects parameter 1 to be resource, bool given in /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc on line 846, referer: https://siu.iugna.edu.ar/guarani/aplicacion.php?ah=st6201b0287a7248.34870246&ai=guarani||41000037

[Mon Feb 07 20:52:07.635668 2022] [php7:warn] [pid 8177] [client 10.98.40.1:44164] PHP Warning: stream_set_blocking() expects parameter 1 to be resource, bool given in /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc on line 845, referer: https://siu.iugna.edu.ar/guarani/aplicacion.php?ah=st6201b0287a7248.34870246&ai=guarani||41000037

En log de la aplicacion nada raro

Buenos dias. Ahora tambien observo estos errores en apache mientras van usando el sistema:

Feb 08, 2022 7:31:33 AM org.apache.fop.fo.FONode attributeWarning
WARNING: Warning(Unknown location): fo:table, table-layout=“auto” is currently not supported by FOP
Feb 08, 2022 7:31:33 AM org.apache.fop.fo.FONode attributeWarning
WARNING: Warning(Unknown location): fo:table, table-layout=“auto” is currently not supported by FOP
Feb 08, 2022 7:31:33 AM org.apache.fop.fo.FONode attributeWarning
WARNING: Warning(Unknown location): fo:table, table-layout=“auto” is currently not supported by FOP
Feb 08, 2022 7:31:33 AM org.apache.fop.fo.FONode attributeWarning

[Tue Feb 08 07:23:18.610807 2022] [php7:error] [pid 29079] [client 191.97.78.250:36082] script ‘/usr/local/proyectos/g3w3/src/siu/www/_comp/rs.php’ not found or unable to stat, referer: https://siu.iugna.edu.ar/autogestion

Hola Leandro,

¿como tenes la configuración de fop en el archivo instalacion/instalacion.ini?
Debería ser algo así:


nombre = "guarani"
********************
url3w = "http://192.168.0.10:7272/3w/trunk/"
session_name = "TOBA_PROYECTO"
********************

[xslfo]
fop = "/usr/local/app/php/3ros/fop/fop"

¿tienen personalizaciones en los reportes?

Nos podrías enviar los logs de Toba a la hora de querer descargar un acta de examen que es cuando falla.

saludos.
2

Buenas. Si tengo asi:

[xslfo]
fop=/usr/local/proyectos/guarani/php/3ros/fop/fop

Personalizaciones no tenemos. Lo raro es que funcionaba todo y de un dia para el otro empezaron a fallar algunos reportes

Nos podrías enviar los logs de Toba a la hora de querer descargar un acta de examen que es cuando falla.

Te referís a los logs que están en /instalacion/i__desarrollo_p__guarani/logs?

Si, instalacion/i__desarrollo/p__guarani/logs/sistema.log.

También desde el Toba Editor tenes una lupa que dice “Logger” al pasarle el mouse por arriba, pero con instalacion/i__desarrollo/p__guarani/logs/sistema.log esta bien.

saludos.

Si. Pero no genera nada en el log sobre esa accion. Y la pantalla queda en blanco

Leandro,

En www/aplicacion.php configura define(“apex_pa_log_archivo_nivel”, 7); para que registre en los logs.

¿los logs de Apache no muestran ningún error (lo que me mandaste antes son warnings)?

¿Los logs de Jasper generan algo?

Si tenes un ambiente y usuario de prueba para verlo podes crear GDS y me lo pasas por allí.

saludos.
2

Va el log de impresion actas


LogsActa.txt (80.6 KB)

El único error que muestra en apache es este:

[Tue Feb 08 12:49:18.371054 2022] [php7:error] [pid 43578] [client 186.111.160.100:7770] script ‘/usr/local/proyectos/g3w3/src/siu/www/_comp/rs.php’ not found or unable to stat, referer: https://siu.iugna.edu.ar/autogestion/acceso?auth=form

Ambiente de pruebas no tengo.
Cuando migre testing a 3.20 me paso lo mismo algunos reportes andaban y otros no, lo solucione con permisos.
Esto que es producción venia funcionando bien, no se toco nada y de un día para otro empezó con este error. Revise permisos y están bien.

Ah y otra cosa una vez que mandas a imprimir el reporte el sistema queda congelado, si queres acceder a cualquier menu queda siempre en la ultima pantalla ingresada. Hay que borrar cookies y loguearse nuevamente.

Gracias por la información Leandro!!!

¿que te devuelve la siguiente query?


SELECT        sga_actas.id_acta,
                                                sga_actas.nro_acta,
                                                sga_actas.origen,
                                                sga_actas.estado,
                                                sga_actas_estados.nombre                                AS estado_descr,
                                                sga_actas.tipo_acta,
                                                sga_actas.version_impresa,
                                                sga_actas.renglones_folio,
                                                sga_actas.observaciones,
                                                sga_actas.acta_referencia,
                                                rectificada.nro_acta as rectifica_a,
                                                sga_actas.version,
                                                sga_actas.evaluacion,
                                                sga_actas.llamado_mesa,
                                                sga_actas.cerrada_por_docente,
                                                sga_actas.id_documento_digital,
                                                sga_actas.estado_documento_digital,
                                                vw_mesas_examen.mesa_examen,
                                                vw_mesas_examen.anio_academico,
                                                vw_mesas_examen.llamado_mesa_entidad,
                                                vw_mesas_examen.mesa_examen_fecha               AS fecha,
                                                vw_mesas_examen.mesa_examen_elemento    AS elemento,
                                                sga_ubicaciones.nombre                                  AS ubicacion_nombre,
                                                sga_elementos.codigo                                    AS codigo_actividad,
                                                get_nombre_actividad_mesa_examen(vw_mesas_examen.mesa_examen, 1) as nombre_actividad,
                                                vw_mesas_examen.mesa_examen_nombre              AS mesa_nombre,
                                                vw_mesas_examen.turno_examen_nombre     AS turno_nombre,
                                                vw_mesas_examen.llamado_nombre                  AS llamado_nombre,
                                                f_libros_acta(sga_actas.id_acta, 2)     AS libro_nombre,
                                                '(' || sga_elementos.codigo || ') ' || get_nombre_actividad_mesa_examen(vw_mesas_examen.mesa_examen, 1) AS cod_nombre_actividad,
                                                 CASE WHEN sga_actas.tipo_acta = 'N' THEN 'Normal' WHEN sga_actas.tipo_acta = 'R' THEN 'Rectificativa' END as tipo_acta_descr,
                                                to_char(vw_mesas_examen.mesa_examen_fecha,'DD/MM/YYYY') AS fecha_formato_visual,
                                                CASE
                                                        WHEN   (SELECT  COUNT(1)
                                                                        FROM    sga_actas as sub_sga_actas
                                                                        WHERE   sub_sga_actas.tipo_acta = 'R' AND
                                                                                        sub_sga_actas.estado    = 'A' AND
                                                                                        sub_sga_actas.acta_referencia = sga_actas.id_acta) > 0
                                                                THEN 1
                                                        ELSE 0
                                                END AS tiene_rectificativas_abiertas,
                                                CASE
                                                        WHEN (sga_actas.estado = 'A')
                                                                THEN
                                                                -- Alumnos en eval_detalles_examenes con acta no cerrada
                                                                        (       SELECT          count(1)
                                                                                FROM            sga_eval_detalle_examenes
                                                                                WHERE           sga_eval_detalle_examenes.id_acta = sga_actas.id_acta
                                                                        )
                                                        WHEN (sga_actas.estado IN ('C','B'))
								THEN
                                                                -- Alumnos en sga_actas_detalle con acta cerrada
                                                                (       SELECT          COUNT(1)
                                                                        FROM            sga_actas_detalle
                                                                        WHERE           sga_actas_detalle.id_acta = sga_actas.id_acta
                                                                )
                                                END     AS cant_alumnos,
                                                sga_actas.cerrada_por_docente AS cerrada_por_docente
                                FROM vw_mesas_examen
                                JOIN sga_actas ON sga_actas.llamado_mesa = vw_mesas_examen.llamado_mesa
                                JOIN sga_actas_estados ON sga_actas.estado = sga_actas_estados.estado
                                JOIN sga_elementos ON vw_mesas_examen.mesa_examen_elemento = sga_elementos.elemento
                                JOIN sga_ubicaciones ON vw_mesas_examen.mesa_examen_ubicacion = sga_ubicaciones.ubicacion
                                LEFT JOIN sga_actas AS rectificada ON sga_actas.acta_referencia = rectificada.id_acta

                                WHERE true
                                 AND sga_actas.id_acta = 14576
                                ORDER BY        sga_actas.nro_acta;

2

ERROR: no existe la relación «vw_mesas_examen»
LINE 59: FROM vw_mesas_examen
^
********** Error **********

ERROR: no existe la relación «vw_mesas_examen»
SQL state: 42P01
Character: 5522

Antes de ejecutar la query ejecuta esto:

SET SEARCH_PATH TO negocio;

Resultado de la query por adjunto.


resultadoQuery.txt (589 Bytes)

Hola Leandro, la información parece estar bien!!!

¿tenes bien los permisos en la carpeta <path proyecto Guaraní>/temp? Paso 6 de esta documentación.

¿en que puerto tenes corriendo el Jasper?

ps | grep SERVLET_LOCAL

¿tienen Gestión y Autogestión en el mismo Server compartiendo el mismo Jasper?

¿que ocurre si paran el Jasper y lo vuelven a correr con nivel de debug 5?

java -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5

saludos.
2

Permisos:

root@siu-gestion-p:/usr/local/proyectos/guarani# ls -l
total 316
-rw-r–r-- 1 root root 730 feb 7 20:46 arai.json
drwxr-xr-x 8 root root 4096 feb 7 20:46 BD
drwxr-xr-x 2 root root 4096 feb 7 20:46 bin
-rw-r–r-- 1 root root 2284 feb 7 20:46 composer.json
-rw-r–r-- 1 root root 205622 feb 7 20:46 composer.lock
drwxr-xr-x 3 root root 4096 feb 7 20:46 docker
-rwxr-xr-x 1 root root 1272 feb 7 20:46 docker-compose.yml
-rw-r–r-- 1 root root 294 feb 7 20:46 entorno_toba.env
drwxr-xr-x 3 root root 4096 feb 7 20:46 exportaciones
drwxr-xr-x 2 root root 4096 feb 7 20:46 fuentes
drwxrwxr-x 4 root www-data 4096 feb 8 11:06 instalacion
drwxr-xr-x 4 root root 4096 feb 7 20:46 instalador
-rw-r–r-- 1 root root 1411 feb 7 20:46 instalador.env.dist
-rwxr-xr-x 1 root root 232 feb 7 20:46 menu.ini
-rwxr-xr-x 1 root root 232 feb 7 20:46 menu.ini.tmpl
drwxr-xr-x 5 root root 4096 feb 7 20:46 metadatos
drwxr-xr-x 6 www-data www-data 4096 feb 7 20:46 metadatos_compilados
drwxr-xr-x 5 root root 4096 feb 7 20:46 metadatos_originales
drwxr-xr-x 6 root root 4096 feb 7 20:46 personalizacion
drwxr-xr-x 8 root root 4096 feb 7 20:46 php
-rw-r–r-- 1 root root 2838 feb 7 20:46 proyecto.ini
drwxr-xr-x 7 root root 4096 feb 7 20:46 saml_module
drwxr-xr-x 2 root root 4096 feb 7 20:46 sql
drwxr-xr-x 3 root root 4096 feb 7 20:46 src
drwxrwxr-x 2 www-data www-data 4096 feb 8 10:39 temp
drwxr-xr-x 3 root root 4096 feb 7 20:46 test
drwxr-xr-x 2 root root 4096 feb 7 20:46 var
drwxr-xr-x 47 root root 4096 feb 7 20:46 vendor
drwxrwxr-x 8 root www-data 4096 feb 8 12:30 www

Jasper:
root 693 0.1 0.5 7254860 95496 ? Sl feb07 2:01 java -jar /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081
root 54004 0.0 0.0 6212 648 pts/0 R+ 16:45 0:00 grep SERVLET

¿tienen Gestión y Autogestión en el mismo Server compartiendo el mismo Jasper?
SI

¿que ocurre si paran el Jasper y lo vuelven a correr con nivel de debug 5?
Feb 08 16:49:15 VMBridge INFO : VM : 11.0.13@https://tracker.debian.org/openjdk-11
Feb 08 16:49:15 VMBridge INFO : VMBridge version : 5.5.2
Feb 08 16:49:15 VMBridge INFO : logFile :
Feb 08 16:49:15 VMBridge INFO : default logLevel : 5
Feb 08 16:49:15 VMBridge INFO : socket : SERVLET_LOCAL:8081
Feb 08 16:49:15 VMBridge INFO : java.ext.dirs : null
Feb 08 16:49:15 VMBridge INFO : php.java.bridge.base: /root
Feb 08 16:49:15 VMBridge INFO : thread pool size : 20
Feb 08 16:49:15 VMBridge INFO : JavaBridgeRunner started on port INET_LOCAL:8081
java.lang.RuntimeException: java.net.BindException: La dirección ya se está usando (Bind failed)
at php.java.bridge.Standalone.init(Standalone.java:217)
at php.java.bridge.Standalone.main(Standalone.java:320)
Caused by: java.net.BindException: La dirección ya se está usando (Bind failed)
at java.base/java.net.PlainSocketImpl.socketBind(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:436)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:395)
at java.base/java.net.ServerSocket.(ServerSocket.java:257)
at php.java.bridge.TCPServerSocket.newServerSocket(TCPServerSocket.java:58)
at php.java.bridge.TCPServerSocket.(TCPServerSocket.java:79)
at php.java.bridge.TCPServerSocket.create(TCPServerSocket.java:51)
at php.java.bridge.Standalone.bind(Standalone.java:75)
at php.java.bridge.JavaBridge.bind(JavaBridge.java:234)
at php.java.bridge.JavaBridgeRunner.bind(JavaBridgeRunner.java:141)
at php.java.bridge.http.HttpServer.(HttpServer.java:91)
at php.java.bridge.JavaBridgeRunner.(JavaBridgeRunner.java:71)
at php.java.bridge.JavaBridgeRunner.getRequiredStandaloneInstance(JavaBridgeRunner.java:127)
at php.java.bridge.JavaBridgeRunner.main(JavaBridgeRunner.java:521)
at php.java.bridge.Standalone.checkServlet(Standalone.java:240)
at php.java.bridge.Standalone.init(Standalone.java:200)
… 1 more

Hola,

java.lang.RuntimeException: java.net.BindException: La dirección ya se está usando (Bind failed)

Primero van a tener que parar el Jasper (kill -9 ) y volverlo a levantar:

java -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5

Luego al intentar Imprimir Actas de Examen debería mostrar logs de en la consola.

saludos.
2