Ubicacion de instanacias de aplicaciones


([N4] victorgt) #1

¿Alguien sabe donde se almacenan las instancias de aplicacion?

Hemos estado haciendo experimentos intentando sincronizar dos vServer, y debido a eso
hemos estudiado un poco el tema de los ficheros VSI, la carpeta CAJAS y SERVER y todo eso.

El caso es que no encuentro las instancias de aplicacion por ningun lado. Y tienen que
estar copiadas en algun sitio, pues puedo tener dos instancias de la misma solucion con
versiones diferentes.

Curiosidades que tiene uno…


([N4] eic) #2

Hola.

Imagino que las guarda en memoria, al no necesitar volcarlas a disco para nada. Pero es una suposición.


([N1] wikan) #3

Las instancias y usuarios están en server
Las soluciones que ves en el vServer dentro de cajas en sitios.vsi


([N3] pacosatu) #4

Hola victorgt.

Las instancias de Aplicación solo existen en memoria y su definición se guarda en el fichero vsi.
Cada vez que reinicias la instancia de Aplicación, ésta se recarga en memoria desde el proyecto de la Solución.

Por lo tanto, no creo que puedas tener 2 Instancias de Aplicación de la misma Solución con diferentes versiones, a no ser que una de ellas no haya sido reiniciada desde la última actualización del proyecto.

Lo único factible de sincronizar en caliente ahora mismo son las instancias de datos, es decir, la carpeta con las tablas físicas de la Aplicación.

Saludos
Paco Satué


([N4] victorgt) #5

Gracias por contestar.

Pero algo no me encaja… eso de que estan copiadas en memoria…

Como bien dice Paco, si yo tengo una solucion instanciada, la actualizo/modifico, y creo una nueva instancia sin refrescar la primera, acabo con la solucion actualizada (la solucion antigua no existe, ¿o sí?) y dos instancias DIFERENTES (la antigua y la actual). Y esta situacion se mantiene si reinicio el servicio o el PC.

Una de dos, o guarda las soluciones antiguas mientras esten instanciadas en algun sitio o guarda copias de las instancias.

Saludos.
Victor Garcia Tascon


([N3] pacosatu) #6

Hola Victor.

Dices:

"... acabo con la solucion actualizada (la solucion antigua no existe, ¿o sí?) y dos instancias DIFERENTES (la antigua y la actual). Y esta situacion se mantiene si reinicio el servicio o el PC."

Una instancia de Aplicación no es nada más que la ejecución en memoria del proyecto de Aplicación (extensión .vca). Si borramos el proyecto de Aplicación, la instancia solo sobrevivirá hasta que la reiniciemos.

Poniendo un simil, en Windows las DLL’s son librerías que se cargan en memoria mientras esta el ordenador encendido. Cuando actualizamos dichas librerías (nuevos ficheros .dll en disco) tenemos obligatoriamente que reiniciar el ordenador para que se ejecuten las nuevas versiones.

Por lo tanto, a no ser que esté equivocado, es imposible tener 2 instancias del mismo proyecto ejecutándose al mismo tiempo y con diferente versión, después de haber reiniciado. ¡Menudo caos se montaría entonces!

Saludos
Paco Satué


([N4] victorgt) #7

Vale, gracias, me parece que ya lo pillo.

Ademas es facil hacer la prueba. Acabo de hacerla. Cojo my proyecto actual en el servidor de desarrollo, solo tenia una instancia. Lo reinstancio de nuevo: ahora tengo una solucion y dos instancias. Cojo vdevelop y le hago un pequeño cambio. Ejecuto. ¿Sabeis lo que ha hecho (v 7.15.2)? HA REFRESCADO LAS DOS INSTANCIAS. Supongo que seran cosas del vDevelop (suponia que iba a actualizar solo una, la que ejecutase).

Entonces, lo que deduzco es que en entornos multi-empresa, donde hayas optado por tener 1 solucion + muchas instancias de esa solucion, no puedes garantizar que cada empresa tenga su propia version. Eso solo lo puedes garantizar si no reinicias el servicio (algo que tampoco se puede garantizar). Encuanto reinice el servicio, zasca, todas la instancias a la ultima version sin que yo se lo diga. Genial. Menos mal que no tenia pensado usar ese modelo.

La suposicion (erronea) de que el modelo anterior funcionaba fue lo que me hizo pensar que se debian copiar en disco en algun lado.

Saludos y gracias a todos.
Victor Garcia Tascon


([N4] victorgt) #8

Mas pruebas…

Parece que ni siquiera es posible tener dos instancias en versiones diferentes.

Acabo de probar lo siguiente. Mi app en desarrollo, con dos instancias. Hago un pequeño cambio con vdevelop. No ejecuto, solo guardo cambios.

Voy a vAdmin con la intencion de refrescar solo una de las instancias. La selecciono, uso refrescar instancia, Y ME VUELVE A REFRESCAR LAS DOS.

O ME ESTOY VOLVIENDO LOCO O EL BOTON TIENE MAL PUESTO EL NOMBRE: SE LLAMA “Reiniciar instancia seleccionada” Y DEBERIA LLAMARSE ALGO ASI COMO “Reiniciar todas las instancias del mismo proyecto que la seleccionada”.

En fin, otra chorrada mas de Velneo…

PD: este comportamiento me sorprende bastante, si alguien me lo puede confirmar lo agradecere.

Saludos.


([N3] pacosatu) #9

Hola Victor.

Podemos hacer un resumen para el que le interese:

  • vDevelop edita Soluciones (proyectos de datos y aplicaciones). Cuando pulsamos F5, vDevelop reinicia la Solucion completa, por lo tanto no puede haber ninguna instancia con enganches. Todas las instancias (datos y app) se reinician a la versión actual, sin excepción. Tener en cuenta que estamos en desarrollo, no en producción.

  • Las instancias de datos tienen permanencia en el tiempo en forma de carpeta de datos (con las tablas, variables en disco, …). Las instancias de aplicación solo existen en memoria y no dejan ningún rastro cuando se cierran o reinician.

  • Cuando hablamos de aplicaciones Multi-empresa, únicamente nos referimos a la instancia de datos de cada empresa, que tendrán una carpeta de datos independiente una de otra. De esta forma, podemos parar (para mantenimiento) la instancia de datos de una empresa en particular sin afectar al resto. Cuando se reinicia la Solución, todas las instancias de datos se reiniciarán y actualizarán sus tablas, sin excepción.

  • Se puede reiniciar una instancia (de datos o app) de manera individual y conseguir tener diferentes versiones en ejecución, pero una vez que reiniciemos la Solución o vServer, todas las instancias tendrán la misma versión.

  • Cuando hablamos de replicación normalmente nos referimos a la replicación de Instancias de datos, es decir, sincronizar las tablas de la carpeta de datos entre 2 instancias distintas (en el mismo o diferente vServer).

Saludos
Paco Satué


([N4] victorgt) #10

Estimado Paco:

Despues de hacer alguna prueba mas…
(no uso “Reiniciar toda la solucion” del menu Soluciones, uso “Reiniciar instancia seleccionada” del menu Instancias).

De acuerdo en todo excepto en el penultimo punto.

No soy capaz de conseguir que el boton “Reiniciar instancia seleccionada” me reinicie la seleccionada unicamente. Siempre me reinicia todas las del mismo proyecto. Ademas, el mensaje que sale despues de usar “Reiniciar instancia seleccionada” es “El proyecto X y todas sus instancias se han reiniciado con exito”.

Parece que el nombre del boton es ambiguo, pero el mensaje final no: el boton reinicia todas las instancias.

Desconozco si hay diferencias en esto entre vServers de desarrollo y de produccion, y tampoco se si hay diferencias entre instancias de datos y de aplicacion…

Saludos.
Victor Garcia Tascon


([N4] victorgt) #11

Voy a proponer a Velneo que el boton “Reiniciar instancia seleccionada” pase a llamarse “Reiniciar instancia seleccionada y todas sus hermanas”, o sea, “hijas” del mismo proyecto (je, je, es broma).

Saludos.


([N3] pacosatu) #12

Hola Victor.

Es cierto lo que dices. Hay una confusión “muy grave” en ese menú. Nos deja borrar una Instancia en particular pero no nos deja reiniciar esa misma Instancia. NO propongas nada a Velneo, pon un Soporte para que lo solucionen porque es otra chapuza más.

En cualquier caso no era lógico reiniciar una sola Instancia y tener temporalmente Instancias con diferente versión. Quizás lo cambiaron en alguna revisión del vAdmin y se olvidaron de actualizar el menú.

Saludos
Paco Satué


([N4] victorgt) #13

Soporte puesto.

Saludos.