🤟 Introducción
Esto no es otro documento aburrido. Es la historia de cómo pasamos de vivir al límite con Read Uncommitted, a abrazar la estabilidad con Read Committed. Es que a veces se pone yuca esto de trabajar en ZelvaIT
Spoiler: evitamos deadlocks, salvamos datos y mejoramos nuestro karma en SQL Server. ✨
💡 Antes del Cambio: El Caos
- Teníamos el Isolation Level en
Read Uncommitted. Lindo para la velocidad, horrible para la coherencia. - Era como abrir una cerveza caliente: rápido pero decepcionante.
- Los procesos leían datos que ni siquiera habían sido confirmados.
- Resultado: inconsistencia, deadlocks, y mucha gente enojada preguntando «¿por qué mi cierre no cuadra?»
🌟 Decisión Jedi
Le hicimos un upgrade al KB:
Isolation Level = Read Committed
- Bye bye dirty reads 👋
- Hola estabilidad y datos coherentes.
- Nivel recomendado por la república (o sea, SQL Server).
🌟 Cambio de Realidad
Lo que cambia:
- Solo vas a ver datos confirmados. ✅
- Vas a esperar un poquito si alguien más está actualizando.
Lo que NO cambia:
- Tu
web.configsigue igualito. - SQL Server no se entera, todo es entre GeneXus y la conexión.
✅ Checklist Pre-Cambio (Con salsita)
- Cloná la base en QA (nunca toques prod directo, compa).
- Cambiá el Isolation Level del Data Store.
- Rebuild All del KB (como todo buen ritual GX).
- Probá:
- Ventas simultáneas.
- Actualizaciones de stock.
- Cierre con movimiento activo.
- Usá SQL Profiler para ver qué pasa en la sombra.
- Validá que nada se rompa.
- Documentá y respira tranquilo.
🤠 Tips de Batalla (a lo BaleadaGeek)
For eachde solo lectura no bloquea, pero puede quedar esperando si el registro está con lock.commitpor cada fila = NO. ❌ Mejor por bloques de 500 ☕submit= lo más. Ejecutá en segundo plano y deja que el usuario siga feliz.- Si llamás desde un proc
Commit on Exit = Noa uno= Yes, ese segundo se manda solo y hace commit. Cuidado con eso.
🔹 Glosario Rápido
| Concepto | Traducción geek |
|---|---|
| Dirty Read | Leer sin preguntar |
| Read Committed | Leer solo cuando está listo |
| For update | «Nadie toca esto mientras yo trabajo» |
| Submit | “Andá vos mientras yo sigo con lo mío” |
| Deadlock | Tiroteo entre threads |
🚀 Recomendaciones Finales
- Mismo
Commit on Exitpara todos los que trabajan en cadena. - Si hacés
For eachlargo, poné commits intermedios (o hacete un café entre 1000). submitpara cosas pesadas y que no molesten al usuario.- Documentá lo que tocás. Siempre.
🔗 Links que valen oro
- Isolation Level – GX Wiki
- Commit command – GX Wiki
- Submit command – GX Wiki
- Commit on Exit – GX Wiki

Average Rating