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
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:
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.
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.