Programación en castellano
Inicio > Foros > Servidores de Aplicaciones J2EE > problema con java y mainframe
-Foros de debate

Servidores de Aplicaciones J2EE
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

problema con java y mainframe
Enviado por aip el día 31 de enero de 2006

Tengo el siguiente problema. Tengo una aplicación que se comunica a un mainframe (MVS os/390 IBM) la manera en que se comunica es a través de PLD\'s y lo que hacen es enviarme una respuesta en texto separando cada variable con tildes (~) después que le envíe una solicitud también con campos o variables separados con tildes.
El fragmento de código que muestro a continuación está implementado dentro de un servlet y funciona muy bien.
El servidor Web es WebSphere versión 5 y está levantado dentro del mainframe (WebSphere para mainframe). Las variables que defino son:
setUrl(\"local:\");
setPuerto(0);
setDirectorio(\"//home//iddahm//\");

Pero el problema es el siguiente:
Debo hacer un demonio con java y considero que tengo dos caminos:
camino 1: hacer una aplicación con Java y hacer que se ejecute en el tiempo que lo programe.
camino 2: hacer una aplicación que pueda montarla dentro del servidor web (en este caso WAS)
Para el camino 1 ya hice la aplicación pero por más que le hago no funciona porque no sé cuales son todos los elementos que necesita para ejecutarse fuera de WAS.
Para el camino dos, no se me ocurre cómo hacer una demonio para colocarlo dentro de WAS.

Y podría haber una tercera: usando las bibliotecas para MQ que es algo que apenas estoy empezando a manejar.

Ojalá puedan ayudarme dándome tips o aconsejándome alguna fuente donde venga información al respecto.

Las bibliotecas usadas son las de CTG

1 private MensajeRespuesta ejecutaPLD(String cuenta){
2 final String PROGRAMA = \"IW001001\";
3 MensajeEnvio msgEnv = new MensajeEnvio(cuenta);//crea mensaje
4 MensajeRespuesta msgRes = null;
5 byte[] abCommArea = new byte[12284];//
6 for(int i=0; i<abCommArea.length;i++)
7 abCommArea[i] = 0;
8 try{
9 System.arraycopy(
10 msgEnv.getMsg().getBytes(\"IBM-1047\"), 0,
11 abCommArea, 4, msgEnv.getMsg().length());
12 JavaGateway jgaConn = new JavaGateway();
13 jgaConn.setURL(getUrl());
14 jgaConn.setPort(getPuerto());
15 jgaConn.open();
16 ECIRequest eciRequest =
17 new ECIRequest(\"CICSDRG1\",
18 \"HF945016\",
19 null,
20 PROGRAMA,
21 abCommArea, //mensaje de texto separado por tildes
22 ECIRequest.ECI_NO_EXTEND,
23 ECIRequest.ECI_LUW_NEW);
24 jgaConn.flow(eciRequest);
25 String msgResultado = (new String(abCommArea,\"Cp037\")).trim(); recibo mensaje separado por tildes
26 if(out != null){
27 out.println(\"<br>Entra a la opción con out\");
28 msgRes = new MensajeRespuesta(msgResultado,out);
29 }
30 else{
31 msgRes = new MensajeRespuesta(msgResultado);
32 }
33 msgRes.convierte();
34 jgaConn.close();
35 }
36 catch(UnsupportedEncodingException e){
37 System.err.println(\"Exception al codificar el mensaje\");
38 System.err.println(e.getMessage());
39 e.printStackTrace();
40 }
41 catch(IOException e){
42 System.err.println(\"Exception al abrir url o puerto\");
43 System.err.println(e.getMessage());
44 e.printStackTrace();
45 }
46 catch(Exception e){
47 System.err.println(\"Exception dentro del metodo ejecutaPLD\");
48 System.err.println(e.getMessage());
49 e.printStackTrace();
50 }
51 finally{
52 return msgRes;
53 }
54 }




Saludos y espero su respuesta
Gracias

 
Re: problema con java y mainframe
Enviado por neossoftware el día 31 de enero de 2006

Hola QUe tal:

Lo que si te recomendaria que usaras es MQ Series, ya que es bastante potente y muy flexible, ademas el Api de MQI para Java es bastante sencillo de usar. Cualquier duda por aqui andamos.

Saludos!!!!!

 
Re: Re: problema con java y mainframe
Enviado por Bagual el día 7 de junio de 2006

Hola que tal.

He leido tu problema y la respuesta es muy sencilla
Primero que nada define donde reside tu aplicacion esto lo puedes realizar de la siguiente manera.

Si esta dentro (WAS Mainframe) o si esta fuera

Despues crea una clase con un objeto public static Set singleton(Object o) para que sea invocado como unica instancia de tu aplicacion, de esta manera tendras sólo un objeto para todas las comunicaciones que se habran al MVS OS/390; pues de otro modo estarias creando un objeto por cada conexion.

En esta clase Singleton ubica PUERTO, USR y PASSW
Despues crea un directorio en tu HOME del segmento OMVS del Mainframe en donde residiran tus .jar

Ahí tendras tu demonio el cual lo puedes ejecutar y controlar desde el WAS con la clase
(getClass().getResourceAsStream())
por medio de un fichero de configuracion.

Ya sabes sólo crea la interface necesaria para recuperar los datos

Debes de tener permisos 777 sobre ese directorio



 



Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados