Foros del Web » Programando para Internet » ASP Clásico »

Comunicación entre 2 aplicaciones ASP

Estas en el tema de Comunicación entre 2 aplicaciones ASP en el foro de ASP Clásico en Foros del Web. Hola a todos, necesito que me echeis 1 mano. A ver, mi problema es el siguiente. Tengo una aplicación asp(A) que a través de XMLHTTP ...
  #1 (permalink)  
Antiguo 07/02/2005, 04:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 3
Antigüedad: 19 años, 4 meses
Puntos: 0
Comunicación entre 2 aplicaciones ASP

Hola a todos, necesito que me echeis 1 mano.
A ver, mi problema es el siguiente.
Tengo una aplicación asp(A) que a través de XMLHTTP recoge la información que genera otra aplicación(B),(ésta se encarga de realizar las correspondientes consultas a BBDD y enviará el resultado a A),el caso es que la comunicacion entre A y B me tarda bastante (A y B están en distinas máquinas),habia pensado en meter las 2 aplicaciones en la misma máquina y quitar la comunicación por XMLHTTP y realizarlo a través de una función que se encargará de llamar a las paginas que forman la aplicación B y generar una cadena en XML que recogerá A y lo tratará,(A recoge el resultado de la funcion con:

Obj.loadXML <cadena_generada_por_B>


Aunque ha mejorado la comunicación, antes tardaba el orden de 10/11 segs en mostrarme los datos por pantalla y ahora unos 2/3 segs(como veis ha mejorado), de vez en cuando me suele tardar bastante (casi 1 minuto en sacarme los datos), por lo q no me interesa.
Alguna idea de lo que puede estar pasando??

Espero que me podais ayudar
  #2 (permalink)  
Antiguo 07/02/2005, 04:56
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
mmmm ... si estas usando un algoritmo que use FOR o LOOP para mostrar los datos en pantalla, entonces ahi tienes el problema. Si no es asi, entonces no se por que se demora.

La solucion en el primer caso seria, en vez de usar un bucle FOR o LOOP , deberias usar una plantilla XSL para mostrar los datos en pantalla.

El XSL es LA forma correcta de mostrar los datos que vengan en XML.

  #3 (permalink)  
Antiguo 07/02/2005, 05:25
 
Fecha de Ingreso: febrero-2005
Mensajes: 3
Antigüedad: 19 años, 4 meses
Puntos: 0
A ver, me intentaré explicar mejor.

La aplicación "A" llama a la aplicación "B" que se encarga realizar consultas a la BBDD, el resultado de las consultas lo quiero enviar a A a traves de una cadena y A se encarga de recoger esta cadena, crear un objeto XML con ella y una vez que tenga el objeto XML lo escribe en pantalla con un determinado formato.

Bien, escribir estos datos en la pantalla no me tarda nada, lo que me tarda es en llamar a la aplicacion B a través de una funcion y que me genere la cadena que necesita A.

He pensado que podria ser que B tardase mucho en realizar la consulta en la BBDD, pero lo he estado comprobando y eso no es lo que me tarda.

Tambien se me ha ocurrido pensar que al ir a traves de funciones, se llena mucho la pila y hace que baje el rendimiento....

  #4 (permalink)  
Antiguo 07/02/2005, 05:43
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Pregunta

¿son muchos datos?
¿la aplicacion A como hace el XML?
¿Con un FOR?
¿has probado no hacer la conexion a la bd y dejar el xml guardado en el disco duro y cehcaar cuanto demora el procesar el xml?
¿has probado hacer traer los datos con un recordset y comparar los desempeños?

Última edición por Muzztein; 07/02/2005 a las 05:45
  #5 (permalink)  
Antiguo 07/02/2005, 06:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 3
Antigüedad: 19 años, 4 meses
Puntos: 0
He estado probando a hacerlo de otra manera pero me sigue yendo igual.

Lo que he hecho es que la aplicación "B" genere solamente las consultas a ejecutar y se lo envie a "A", es decir.

"B" quiere enviar estas consultas a "A":
<consultas>
<sentencia>
select campo1,campo2 from tabla1 where condicion1
</sentencia>
<sentencia>
select campo1,campo2 from tabla2 where condicion2
</sentencia>
..............
</consultas>

entonces genera una cadena :
cadena = "<consultas><sentencia>select campo1,campo2 from tabla1 where condicion1</sentencia><sentencia>select campo1,campo2 from tabla2 where condicion2</sentencia>......</consultas>" que le envia a A:

"A":
Obj.loadXML cadena

es decir, genero un XML con la cadena que me ha devuelto "B" (el tamaño de este XML es de 4Kb)

"A" se encargaría de ejecutar estas consultas (mediante un FOR, ahora mismo lo tengo deshabilitado).

Bueno, pensé que iba a ir mejor porque libero a B de ejecutar las consultas, pero ná de ná, esto sigue igual, "A" tarda mucho en llamar a "B".
Es como si le costase mucho encontrar la pagina de "B" que se encarga de generar las consultas. (el navegador se queda pensando 1 rato hasta que encuentra la pagina de "B")

  #6 (permalink)  
Antiguo 07/02/2005, 08:09
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Estas tratando de hacer un modelo a tres capas?

asp / xml / sql ???

quizas en A estas abriendo una conexion por cada select que haces.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:52.