banner

Del 23 al 25 de Septiembre: GX29, el evento de tecnología y negocios más importante de América Latina. Inscribirse

Encuentro GeneXus GX29: el evento de tecnología y negocios más importante de América Latina.

Anuncio importante para usuarios iOS: Problema de compatibilidad cache IOS13

A partir de iOS 13 Apple hizo cambios en el uso de caché de datos, por lo cual algunas aplicaciones iOS pueden no estar funcionando correctamente en esta versión de dicho sistema operativo.

¿Cuáles son las aplicaciones que podrían tener el problema?

Dado que el cambio fue en iOS 13, en la API que se utiliza para la comunicación entre el dispositivo y el servidor, las aplicaciones que pueden verse afectadas son todas aquellas que utilicen caché de datos (propiedad Smart Devices Cache Management en “On”) sin importar con qué versión de GeneXus hayan sido creadas.
Tampoco se ven afectadas las aplicaciones Offline que no llaman a Procedures Online

¿Cómo se manifiesta el problema?

El problema es que el dispositivo envía un nuevo cabezal HTTP que antes no enviaba (If-Modified-Since), provocando que el servidor devuelva datos desde el caché cuando no debería.

Esto tiene como efecto que en algunas llamadas REST, los valores que devuelve no sean los correctos. Envía datos “viejos”.

A su vez, el efecto que provoca esto en las aplicaciones, es que en determinadas circunstancias la misma pueda mostrar (o utilizar internamente) datos no actualizados.

¿Cómo resolver el problema?

Hay diferentes opciones que dependerán del escenario y urgencia de cada caso:
  1. Eliminar la información del caché de cada uno de los Procedures que tengan el problema (a priori, todos).
    Para eso, debajo del directorio web\Metadata\TableAccess de la aplicación se debe borrar el .xml correspondiente a cada Procedure involucrado.
    Esos .xml no son creados/actualizados en tiempo de ejecución sino en tiempo de generación por lo cual una vez eliminados no se crean de nuevo. Es importante, si se actualiza la parte “server side” no desplegar nuevamente esos .xml
Nota: En ese directorio también hay archivos para los objetos de tipo Data Provider. Estos no es necesario ni recomendable borrarlos.
  1. Sustituir las GXclasses de Java o .NET, según el generador que se esté utilizando, las cuales van a ser publicadas a principios de la semana del 7 de Octubre para todos los Upgrades de la Versión GX16.
    En este caso solo se tiene que hacer deploy de la parte “server side” de la aplicación.
  2. Pasarse a GX16 Upgrade 6. Dicho Upgrade está actualmente en la línea “stable” y está prevista su liberación el 23/Octubre. El build con el arreglo específico al problema del caché será publicado a la brevedad y es posterior al build 136304

    Más información en SAC