Bloqueos Distribuidos y Datos de Sesión en Oracle

Descubre cómo Oracle gestiona datos de sesión y bloqueos en transacciones distribuidas: 2PC, tablas temporales globales y monitorización para evitar esperas.

7 sept 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Bloqueos distribuidos y datos de sesión en Oracle

Al trabajar con bases de datos Oracle, es frecuente encontrar el error Distributed transaction waiting for lock. Esto suele ocurrir cuando una transacción que abarca varias bases de datos queda a la espera de un recurso o bloqueo. Comprender cómo Oracle maneja los datos específicos de sesión, los bloqueos y las transacciones distribuidas es clave para diagnosticar y evitar este problema.

1 Qué es una transacción distribuida

Una transacción distribuida es aquella que involucra más de una base de datos mediante enlaces de base de datos y que requiere que todas las bases participantes hagan commit o rollback de forma coordinada. Oracle gestiona esto con el protocolo de dos fases 2PC Two Phase Commit:

Fase de preparación cada base de datos verifica que puede confirmar la transacción.

Fase de confirmación la transacción se confirma en todas las bases participantes.

Si alguna sesión queda bloqueada en cualquiera de las bases implicadas durante este proceso, aparece el mensaje de espera de bloqueo en transacción distribuida.

2 Causas frecuentes de bloqueos en transacciones distribuidas

Fila remota bloqueada otra sesión en la base remota retiene la fila que tu transacción necesita actualizar.

Transacciones de larga duración mantener transacciones abiertas demasiado tiempo incrementa la probabilidad de espera por bloqueos.

Orden de bloqueo inconsistente diferentes sesiones actualizan tablas en orden inverso y pueden provocar interbloqueos.

Transacciones 2PC pendientes o en duda operaciones que no finalizaron correctamente su commit o rollback.

Mezcla de DML con SELECT FOR UPDATE bloquea filas en la base remota hasta que termine la transacción.

Problemas en el tablespace temporal falta de espacio temporal impide procesar datos temporales.

3 Datos específicos de sesión en Oracle

Cuando una sesión manipula datos temporales o específicos de la sesión, Oracle utiliza Tablas Temporales Globales GTT.

Estructura permanente en el diccionario de datos.

Datos específicos de la sesión, almacenados en el tablespace temporal.

Vida ON COMMIT DELETE ROWS borra los datos tras cada commit. ON COMMIT PRESERVE ROWS mantiene los datos hasta el fin de la sesión.

Ejemplo de definición

CREATE GLOBAL TEMPORARY TABLE temp_orders ( order_id NUMBER, amount NUMBER ) ON COMMIT PRESERVE ROWS;

Cada sesión ve únicamente sus propios datos y Oracle limpia automáticamente la información al finalizar la sesión o tras el commit según la definición utilizada.

4 Cómo rastrear bloqueos y transacciones distribuidas

Oracle expone vistas dinámicas para monitorizar sesiones y bloqueos

Vistas de sesión y actividad V$SESSION, GV$SESSION

Bloqueos mantenidos o solicitados V$LOCK, GV$LOCK

Transacciones activas V$TRANSACTION

Transacciones distribuidas en duda o pendientes DBA_2PC_PENDING

Consultas útiles

Sesiones esperando bloqueos

SELECT s.sid, s.serial#, s.username, s.program, s.status, s.event, l.type AS lock_type, l.id1, l.id2, l.lmode AS lock_mode_held, l.request AS lock_mode_requested, l.block AS is_blocking FROM v$session s JOIN v$lock l ON s.sid = l.sid WHERE s.status = ACTIVE AND (l.block = 1 OR l.request > 0);

Transacciones distribuidas en duda

SELECT LOCAL_TRAN_ID, GLOBAL_TRAN_ID, STATE, INITIATOR, DB_LINK, CREATE_DATE FROM DBA_2PC_PENDING ORDER BY CREATE_DATE DESC;

Sesiones esperando bloqueos distribuidos

SELECT sid, serial#, username, program, status, event, seconds_in_wait, blocking_session FROM v$session WHERE status = ACTIVE AND event LIKE %distributed%;

5 Flujo simplificado sesión, GTT, bloqueos y transacciones distribuidas

La sesión ejecuta DML sobre tablas temporales o regulares. Si usa GTT, los datos se ubican en el tablespace temporal y permanecen por sesión o hasta commit. Durante la transacción, V$SESSION y V$LOCK muestran la sesión, los recursos retenidos y solicitados. Si la operación es distribuida, cualquier estado en duda queda reflejado en DBA_2PC_PENDING hasta su resolución.

6 Mejores prácticas para evitar bloqueos distribuidos

Mantén las transacciones distribuidas lo más cortas posible.

Realiza commits frecuentes para liberar bloqueos sin demoras innecesarias.

Respeta un orden de DML consistente entre bases de datos para prevenir interbloqueos.

Evita SELECT FOR UPDATE prolongados sobre objetos remotos.

Monitorea de forma proactiva DBA_2PC_PENDING y V$SESSION para identificar bloqueadores.

Utiliza GTT para datos de sesión y minimizar el impacto sobre tablas permanentes.

Conclusión

Los bloqueos en transacciones distribuidas de Oracle suelen originarse por conflictos entre sesiones en distintas bases, transacciones de larga duración, estados 2PC en duda o una gestión inadecuada de datos de sesión. Emplear GTT, vigilar las vistas V$LOCK y V$SESSION y mantener transacciones acotadas ayuda a evitar esperas por bloqueos y mejorar la estabilidad del sistema.

Cómo puede ayudarte Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software con amplia experiencia en bases de datos empresariales y diseño de arquitecturas resilientes. Implementamos aplicaciones a medida y software a medida orientado a alta disponibilidad, transacciones distribuidas y optimización de rendimiento. Integramos soluciones con servicios cloud aws y azure, automatización de procesos, inteligencia artificial e ia para empresas, agentes IA, ciberseguridad, servicios inteligencia de negocio y power bi para ofrecer una plataforma completa extremo a extremo.

Si buscas modernizar tu plataforma de datos o migrarla a la nube, nuestro equipo puede acompañarte con servicios cloud en AWS y Azure que incluyen despliegue de bases de datos administradas, observabilidad, seguridad y continuidad de negocio. Y si necesitas construir capas transaccionales robustas, APIs y backends modulares, revisa nuestro enfoque de software a medida para acelerar tu hoja de ruta digital sin sacrificar calidad ni seguridad.

Con Q2BSTUDIO reduces el riesgo de bloqueos, mejoras la gobernanza de datos y preparas tu organización para escalar con inteligencia artificial, ciberseguridad avanzada, analítica en tiempo real y cuadros de mando con power bi, reforzando tus casos de uso de negocio en entornos multicloud.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.