Un foro especializado en Sistemas IBM i (AS400 - iSeries)
Orientación con pro...
 
Notificaciones
Borrar notificaciones

Orientación con problema en programa RPG

2 Publicaciones
2 Usuarios
1 Reactions
64 Vistas
(@archangel_fm)
Publicaciones: 1
New Member
Topic starter
 

Hola amigos buen dia, ojala y puedan ayudarme con mi consulta. Mi conocimiento en RPG y en entornos AS400 es limitado.

Les comento, fue desarrollado un servicio web (SERVER) en RPGLE, el programa solo funciona de gestor, RPG recibe los parametros e invoca a una función LANSA, la cual procesa y devuelve la información al RPG y este a su vez da respuesta al cliente. Hay ocaciones en que la función LANSA genera un error y el JOB utilizado se queda con estatus MSG, hasta que de forma manual se le debe dar respuesta al JOB que por lo general es cancelar y la operación y asi liberar el servicio. Ya se implemento un manejo de Excepciones en el RPG con indicadores para que no quede en error y le devuelvo un mensaje de código de error al cliente. Ya no se queda el job en estatus MSG, pero la sesión queda activa, de tal manera que sigue viva en el JOB. Necesito que si hay la excepción a parte de que server finalice que a su vez la sesión que arranco el job tambien finalice para liberar a este job.

Tambien les menciono que ahorita para pruebas se esta utilizando un cliente hecho en Java, generalmente al caer en la excepción si me despliega el mensaje de notificación que implemente, pero cuando sometemos a pruebas de stress al servicio me empieza a devolver otros mensajes que no corresponden a la operación ejecutada (como si hubiese terminado de forma correcta la transacción el servicio) esto ya vimos que es porque como que se mantiene abierta la instacia del servicio y al haber otras peticiones sobre el mismo job, pues como que estan revolviendo los mensajes desde otras peticiones.

Espero que me orienten por favor de una posible solución, de antemano gracias

 
Publicado : 26/07/2024 6:12 pm
Pablo Ruiz
(@pabloruiz)
Publicaciones: 4
Usuario
 

Hola Archangel,

 

Antes que nada, bienvenido al foro y una disculpa por la tardanza en nuestra respuesta.

Por lo que mencionas, entendemos que cuenta con la aplicación de LANSA. Si es así, te comento que no conocemos esta aplicación, pero si sabemos de personas que la conocen y brindan soporte.

 

Con nuestra experiencia en la operación y administración del IBM i podemos comentarte algunas sugerencias. Sin embargo, la mejor opción dependería mucho de cómo está construida la aplicación.

Con respecto al primer punto, te comento que si existen varias opciones. A continuación te enlisto algunas cosas que podrías probar inicialmente:

  1. Finalizar el job con el comando ENDJOB en lugar de contestar el mensaje. Puedes utilizar el comando RTVJOBA para recuperar la información del job que se desea finalizar.
  2. Por lo que sabemos, por medio de configuraciones en los trabajos del IBM i, podrías hacer que las peticiones generen nuevos trabajos. Igualmente podrías configurar un timeout para los jobs inactivos en el sistema para que el mismo se encargue de finalizarlos.

Para el caso de tu cliente que tienen en Java, pienso que podrían probar lo mismo que menciono en el punto 2. Asumo que están utilizando JT400 o alguna conexión por ODBC, por lo que sería más complicado ya que son trabajos que gestiona el sistema y necesitas identificarlos. También hay que considerar que el cambio a cosas del sistema operativo, podrían afectar a otros aplicativos que utilicen los servicios.

La verdad es que en este caso creo que lo mejor sería gestionar los trabajos desde el cliente, realizando la desconexión en el momento que se genera la excepción.

 

Honestamente, pienso que es muy común encontrar estos retos al crear aplicaciones WEB fuera del IBM i y por lo que deciden mejor utilizar aplicaciones que ya gestionan las conexiones a través de DTAQ´s.

Por nuestro lado buscamos el promover que tanto el FrontEnd como el BackEnd se realicen en el mismo IBM i. O una buena opción es utilizar API´s y que el FrontEnd las consuma por medio de REST/SOAP. Realmente el sistema IBM i tiene todo lo necesario para poder utilizar estas nuevas tecnologías, el problema, como ya lo mencionaste, vemos que es el desconocimiento de este.

Aprovecho para compartirte unos diagramas que tenemos con respecto a la apificación. Recuerdo que tenemos un tema sobre apificación pero no tengo el link, deja lo busco bien y te lo comparto para ver si es de tu interés.

 

Nos gustaría que nos mantuvieras informados sobre el tema.

 

Saludos.

 

 
Publicado : 02/08/2024 12:06 am
Share:

Suscríbete a nuestro newsletter

Información relevante para los profesionales en IBM i
Más de 35 años de experiencia en Sistemas IBM i (Anteriormente AS/400 - iSeries)
TIMWare © 2024. Todos los derechos reservados

¡Bienvenido a este nuevo foro especializado en IBM i - AS400!

Es un espacio diseñado para que profesionales como tú compartan conocimientos, resuelvan problemas y se conecten con la comunidad. Haz tu primer consulta, nuestro equipo de ingeniería estará pendiente así como nuevos miembros que se vayan sumando y les interese involucrarse más en la industria.