Hice la recompilación pero no dio resultado, al final pudimos acceder al servidor donde estaba alojado y reinstalamos el WebTerminal descargandolo de la página oficial. Ya nos han advertido que no vamos a tener tanta suerte la próxima vez, porque no tenemos acceso al servidor donde está desplegado.
El problema era que la instalación no compiló correctamente el código. No tomó la versión de ISC correctamente.
Estoy usando la versión WebTerminal-v4.9.3, en la linea 1507 hay una inicialización del parámetro iscProductVersion
<Parameter name="iscProductVersion">
<Description>
In older Cache versions, method "GetISCProduct" does not exists</Description>
<Expression>$case(
##class(%Dictionary.CompiledMethod).IDKEYExists("%SYSTEM.Version", "GetISCProduct"),
1: $CLASSMETHOD("%SYSTEM.Version", "GetISCProduct"),
: 2
)</Expression>
</Parameter>
Después, en la linea 1611, comprueba cuál es la versión para asignar el role requerido:
set requiredRole = $case(..#iscProductVersion >= 4, 1: "%DB_IRISSYS", : "%DB_CACHESYS")
Pero, si compruebo cuál es mi versión, la respuesta es 3, en lugar de 4, por lo que está intentando asignar %DB_CACHESYS en lugar de %DB_IRISSYS, por lo que la compilación no termina.
w##class(%SYSTEM.Version).GetISCProduct()
3
Entonces, he modificado el fichero y cambiado la comparación ..#iscProductVersion para que compruebe si es mayor o igual a 3, y funciona.
En la linea 1730, hay otra comparación para definir el dbPrefix, por lo que he cambiado esta linea también.
set dbPrefix = $case(..#iscProductVersion >= 3, 1: "IRIS", : "CACHE")
Ahora, tengo Webterminal funcionando bien.
Nota: Estoy usando IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
Entonces, para nuestro servidor de desarrollo lo mejor sería hacer lo siguiente:
Crear los Namespaces en IRIS para que genere la estrcutura tal y como lo tenemos ahora en Ensemble (directorios, etc...)
Parar las BBDD de modo seguro en Ensemble
Parar las BBDD de modo seguro en IRIS
Copiar los ficheros CACHE.DAT en los directorios que hemos creado en IRIS
Renombrar CACHE.DAT por IRIS.DAT
Levantar las BBDD de IRIS para que carguen las nuevas
Revisar los mapeos de librerías (si los tiene)
Disfrutar de IRIS como debe ser
Muchas gracias por tu ayuda, me ha sido de gran utilidad. Ya contaré que tal ha ido la migración... son 15 namespaces a migrar, así que con paciencia y buena letra.
Su atmósfera es respirable para los seres humanos de la tierra y está habitado por seres que acaban de descubrir el fuego, o FHIRE en su idioma. Utilizan un dialecto bastante raro, a base de letras sueltas o como mucho utilizan dos.
Totalmente de acuerdo, pero son requisitos del cliente porque no entiende como funcionan a veces las trazas y las borran bastante a menudo. Quieren tener tanto las alertas por email mas unas trazas que se almacenan de forma externa.
Se puede aconsejar, se puede informar al cliente... pero es lo que quiere
Aunque he puesto que envía un email, también el proceso envía una traza a un proceso interno para el control de errores.
Quiero controlar si falla el email, quede registrado a través de la api de trazas, y si falla las trazas, que envíe un email. (si fallan los dos... pues ya veremos)
Por lo que voy a implementar la solución que ha propuesto Julian en la pregunta que he realizado en la comunidad en inglés.
Efectivamente, el resultado se queda en el navegador y, viendo el código fuente de la página, hay que copiarlo en un fichero nuevo. Supongo que esto se podría definir de alguna forma como parámetro del enlace o algo en Visual Studio
ir al artículo
Gracias Pierre-Yves,
Hice la recompilación pero no dio resultado, al final pudimos acceder al servidor donde estaba alojado y reinstalamos el WebTerminal descargandolo de la página oficial. Ya nos han advertido que no vamos a tener tanta suerte la próxima vez, porque no tenemos acceso al servidor donde está desplegado.
Muchas gracias de nuevo
ir al artículo
Al final no era un problema de firewall.
El problema era que la instalación no compiló correctamente el código. No tomó la versión de ISC correctamente.
Estoy usando la versión WebTerminal-v4.9.3, en la linea 1507 hay una inicialización del parámetro iscProductVersion
Después, en la linea 1611, comprueba cuál es la versión para asignar el role requerido:
Pero, si compruebo cuál es mi versión, la respuesta es 3, en lugar de 4, por lo que está intentando asignar %DB_CACHESYS en lugar de %DB_IRISSYS, por lo que la compilación no termina.
Entonces, he modificado el fichero y cambiado la comparación ..#iscProductVersion para que compruebe si es mayor o igual a 3, y funciona.
En la linea 1730, hay otra comparación para definir el dbPrefix, por lo que he cambiado esta linea también.
Ahora, tengo Webterminal funcionando bien.
Nota: Estoy usando IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
Saludos,
Francisco Lopez
ir al artículo
Gracias nuevamente por puntualizar estas cosas, así podemos planificar con mas eficacia la migración del servidor.
ir al artículo
Muchas gracias Pierre-Yves,
Entonces, para nuestro servidor de desarrollo lo mejor sería hacer lo siguiente:
Muchas gracias por tu ayuda, me ha sido de gran utilidad. Ya contaré que tal ha ido la migración... son 15 namespaces a migrar, así que con paciencia y buena letra.
Un saludo,
Kurro
ir al artículo
Enhorabuena @Daniel Mory, disfrútalo que merece la pena
ir al artículo
El exoplaneta se llama IRISLER 43b
Su atmósfera es respirable para los seres humanos de la tierra y está habitado por seres que acaban de descubrir el fuego, o FHIRE en su idioma. Utilizan un dialecto bastante raro, a base de letras sueltas o como mucho utilizan dos.
ir al artículo
Enhorabuena a los premiados. Muy buenos artículos han salido. Hay que repetirlo porque hay mucha calidad en la comunidad
ir al artículo
Totalmente de acuerdo, pero son requisitos del cliente porque no entiende como funcionan a veces las trazas y las borran bastante a menudo. Quieren tener tanto las alertas por email mas unas trazas que se almacenan de forma externa.
Se puede aconsejar, se puede informar al cliente... pero es lo que quiere
Gracias David
ir al artículo
Muchas gracias Alberto,
Aunque he puesto que envía un email, también el proceso envía una traza a un proceso interno para el control de errores.
Quiero controlar si falla el email, quede registrado a través de la api de trazas, y si falla las trazas, que envíe un email. (si fallan los dos... pues ya veremos)
Por lo que voy a implementar la solución que ha propuesto Julian en la pregunta que he realizado en la comunidad en inglés.
Un saludo,
Kurro Lopez
ir al artículo
Hola,
Efectivamente, el resultado se queda en el navegador y, viendo el código fuente de la página, hay que copiarlo en un fichero nuevo. Supongo que esto se podría definir de alguna forma como parámetro del enlace o algo en Visual Studio