Es muy raro, lo se
El trigger se desencadena por una actualización de un software de escaneo que mediante odbc genera en una tabla el nombre del pdf. Con ese dato, actualizo una serie de tablas y después muevo el pdf de un Windows a otro, donde hay una gestión documental que se alimenta de las tablas que he generado anteriormente en el Iseries y del pdf que muevo al lugar que espera. EL problema, es que el trigger no se disparaba. Le puse la instrucción SNDMSG y comprobé que no siempre mandaba el mensaje. En un foro encontré el mismo problema, la solución es registrarlo por diario y parece que la base de datos “ya se entera”. Una vez que conseguí disparar el trigger “siempre” el problema viene con el Runrmtcmd (parte del programa trigger) al que le digo que mueva un pdf de un Windows a otro. El proceso acababa y me dejaba pdf’s sin mover, con lo cual interpreto que el iseries va mas rápido que lo que puede recoger el windows, le puse un dlyjob y ya funciona perfectamente. Runrmtcmd solo genera una salida QSYSPRT informando si lo ha hecho o no, pero sin mas detalle. Alguna vez imprimia “objeto no encontrado” y sí que estaba. En esos casos ejecuto a mano pasándole los parámetros con el nombre del archivo y lo encontraba y lo movia Como no me da ninguna seguridad este entorno, acabare sometiendo un programa en bucle que vaya mirando si el registro se ha procesado o no. Van a ser procesos muy grandes sin apenas control del usuario y si alguna pieza del puzzle falla, no se van a dar cuenta. Quizás estoy haciendo algo mal, pero el proceso es muy simple y en interactivo pasando los mismos parametros al programa que llama el trigger funciona perfectamente. Saludos *De:* Forum.help400 [mailto:[email protected]] *En nombre de *Alberto Martinez *Enviado el:* miércoles, 15 de julio de 2020 17:48 *Para:* forum.help400 *Asunto:* Re: ** Newsletter ** RE: ODBC/Trigger y RUNRMTCMD Buenas. Pero por lo que entiendo, el problema no lo tienes en el trigger...sino en el RUNRMTCMD posterior, que mueve cosas entre servidores, no? Albert Martinez de Urda Director TIC Grupo FSJ De: "Dpto. Informática (José Sánchez)" < [email protected]> Para: "forum.help400" <[email protected]> Fecha: 15/07/2020 17:23 Asunto: ** Newsletter ** RE: ODBC/Trigger y RUNRMTCMD Enviado por: "Forum.help400" < [email protected]> ------------------------------ Hola Alex, tiene su lógica Pero he hecho, para probar, un nuevo programa que lee el archivo generado por ODBC (trigger desconectado) y ejecuta mediante un call el trigger. Dicho trigger, convertido a programa con parámetros, genera unas tablas y ejecuta RUNRMTCMD para mover unos pdf entre servidores Windows. La generación de registros es ok pero el comando “move /Y origen destino” no lo es. Hay veces que mueve el 70% de pdf, otras el 80% y solo lo soluciono si inserto un dlyjob entre bucles, así que creo que es el Windows que se satura y pierde instrucciones porque no le veo otra explicación. Runrmtcmd genera por defecto un QSYSPRT y no me da error de objeto no encontrado. Genera tantos spools como pdf hay pero se los deja por el camino. Seguire mirando…. *José Sánchez* *Dpto.Informática* *Productos Climax, S.A * Pol. Ind. Sector Mollet C/Llobregat Nº 1 08150 - Parets del Valles (Barcelona) Teléfono: +34 935621311 Fax: +34 935621413 www.productosclimax.com [image: Descripción: FIRMA_AA17] *De:* Forum.help400 [mailto:[email protected]] *En nombre de *Alex Martínez *Enviado el:* miércoles, 15 de julio de 2020 15:05 *Para:* forum.help400 *Asunto:* Re: ODBC/Trigger y RUNRMTCMD Hola Conozco casos de trigger que actualizan otras tablas vía conexiones DDM a archivos remotos.... y aún se preguntaban porque les iba lento. Un trigger tiene que ser un proceso "agil" y "a prueba de bombas";-) Cuando un trigger tiene que lidiar con "otros mundos" (bien tablas lentas, lanzar procesos java o actualizar, mover archivos, etc) mi opinión es que el trigger grabe un cola de datos con la tarea pendiente.... y un proceso independiente que lea dicha cola, se dedique a realizar esas tareas que no son del mundo de las bases de datos. El texto que te copio sino recuerdo mal es de un artículo de ServerNews Trigger programs can also significantly impact performance. *Keep in mind that the trigger is firing as part of the operating system’s database functionality. No matter what process writes, changes, or deletes a record in a file, the triggers will be fired*. Whenever an application writes a record to a file, it will not receive notification that the disk I/O is complete until the trigger program returns control to the application that caused the trigger to fire. Therefore, you should take care to keep the trigger program streamlined and make sure it is written in the most efficient manner in order to improve overall performance. (This is not a bad idea in all development cases.) Consider designs that use asynchronous update methods. For example, if there is to be a considerable amount of processing once a trigger is fired, *you might consider creating a batch “monitor” program that waits for entries to arrive on a data queue. The trigger program can then immediately dispatch an entry onto the data queue and return control to the application that requested the file I/O*. The application can continue processing while the trigger processing continues in a separate job. El mié., 15 jul. 2020 a las 9:54, Dpto. Informática (José Sánchez) (< [email protected]>) escribió: Buenas, a ver si me explico bien Mediante ODBC un software de escaneo de documentos graba en el iseries el documento que ha renombrado en una tabla. Dicha tabla tiene un Trigger asociado para hacer X cosas, pero….. no siempre se disparaba el Trigger y buscando por internet, ha sido mi solución, he tenido que registrar dicha tabla en un diario para que el motor de la base de datos se entere. ¿alguien sabría explicarme el motivo? Es pura curiosidad… Una de las cosas que hace el Trigger es mover el PDF entre servidores Windows mediante RUNRMTCMD (move /y &Origen %destino) y aquí otro problema, al mandar comando remoto a un servidor creo que se colapsaba y a veces no movía algunos documentos, ¿solucion? Un dlyjob de x segundos para que le de tiempo a ejecutar el anterior RUNRMTCMD al servidor Windows. He intentado monitorizar el mandato para reintentar el mandato pero no lo consigo, creo que es un tema del Server Windows, ¿tenéis algo montado de este estilo? Lo del dlyjob no me convence mucho porque ralentiza algo que deberían de ser segundos. Saludos *José Sánchez* *Dpto.Informática* *Productos Climax, S.A * Pol. Ind. Sector Mollet C/Llobregat Nº 1 08150 - Parets del Valles (Barcelona) Teléfono: +34 935621311 Fax: +34 935621413 www.productosclimax.com [image: Descripción: FIRMA_AA17] *Nota de Confidencialidad* Este mensaje se envía desde el sistema de correo electrónico de la empresa *Productos Climax, S.A.*. Podría contener por lo tanto secretos de empresa y otra información confidencial tutelados por las leyes de la Unión Europea y otros Estados. Si Vd. lo recibiera por error o sin ser una de las personas indicadas en el encabezamiento, deberá destruirlo sin copiarlo ni revelarlo o cualquier otra acción relacionada con el contenido del mensaje e informar inmediatamente por correo electrónico al emisor del mensaje. Las personas y entidades que violen sus deberes de confidencialidad podrán ser perseguidas ante los Tribunales de Justicia al amparo de la legislación civil, penal y administrativa nacional e internacional. Gracias por su colaboración. *Política de Privacidad* En base al Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo de 27 de abril de 2016 relativo a la protección de las personas físicas (RGPD), así como con la Ley 34/2002, de 11 de julio, de Servicios de la Sociedad de la Información y Comercio Electrónico (LSSICE o LSSI), le comunicamos que su dirección de correo electrónico forma parte de nuestro fichero automatizado, al objeto de continuar enviándole ofertas de nuestros servicios y / o el mantenimiento de las comunicaciones en nuestras relaciones contractuales. En virtud de las Leyes antes mencionadas, tiene derecho de oposición, acceso, rectificación y cancelación de sus datos. Le recordamos que sus datos nunca son suministrados a terceros bajo ningún concepto, siendo únicamente utilizados para el envío de nuestras comunicaciones con Vd. ____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L. *Nota de Confidencialidad* Este mensaje se envía desde el sistema de correo electrónico de la empresa *Productos Climax, S.A.*. Podría contener por lo tanto secretos de empresa y otra información confidencial tutelados por las leyes de la Unión Europea y otros Estados. Si Vd. lo recibiera por error o sin ser una de las personas indicadas en el encabezamiento, deberá destruirlo sin copiarlo ni revelarlo o cualquier otra acción relacionada con el contenido del mensaje e informar inmediatamente por correo electrónico al emisor del mensaje. Las personas y entidades que violen sus deberes de confidencialidad podrán ser perseguidas ante los Tribunales de Justicia al amparo de la legislación civil, penal y administrativa nacional e internacional. Gracias por su colaboración. *Política de Privacidad* En base al Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo de 27 de abril de 2016 relativo a la protección de las personas físicas (RGPD), así como con la Ley 34/2002, de 11 de julio, de Servicios de la Sociedad de la Información y Comercio Electrónico (LSSICE o LSSI), le comunicamos que su dirección de correo electrónico forma parte de nuestro fichero automatizado, al objeto de continuar enviándole ofertas de nuestros servicios y / o el mantenimiento de las comunicaciones en nuestras relaciones contractuales. En virtud de las Leyes antes mencionadas, tiene derecho de oposición, acceso, rectificación y cancelación de sus datos. Le recordamos que sus datos nunca son suministrados a terceros bajo ningún concepto, siendo únicamente utilizados para el envío de nuestras comunicaciones con Vd. ____________________________________________________ nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 Publicaciones Help400, S.L. -- *Nota de Confidencialidad***** Este mensaje se envía desde el sistema de correo electrónico de la empresa *Productos Climax, S.A.*. Podría contener por lo tanto secretos de empresa y otra información confidencial tutelados por las leyes de la Unión Europea y otros Estados. Si Vd. lo recibiera por error o sin ser una de las personas indicadas en el encabezamiento, deberá destruirlo sin copiarlo ni revelarlo o cualquier otra acción relacionada con el contenido del mensaje e informar inmediatamente por correo electrónico al emisor del mensaje. Las personas y entidades que violen sus deberes de confidencialidad podrán ser perseguidas ante los Tribunales de Justicia al amparo de la legislación civil, penal y administrativa nacional e internacional. Gracias por su colaboración.**** *Política de Privacidad***** En base al Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo de 27 de abril de 2016 relativo a la protección de las personas físicas (RGPD), así como con la Ley 34/2002, de 11 de julio, de Servicios de la Sociedad de la Información y Comercio Electrónico (LSSICE o LSSI), le comunicamos que su dirección de correo electrónico forma parte de nuestro fichero automatizado, al objeto de continuar enviándole ofertas de nuestros servicios y / o el mantenimiento de las comunicaciones en nuestras relaciones contractuales. En virtud de las Leyes antes mencionadas, tiene derecho de oposición, acceso, rectificación y cancelación de sus datos. Le recordamos que sus datos nunca son suministrados a terceros bajo ningún concepto, siendo únicamente utilizados para el envío de nuestras comunicaciones con Vd.
____________________________________________________ �nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones Help400, S.L.
