Introducción

Básicamente, las colas se utilizan para pasar información entre procesos o bien entre fases de un mismo proceso.

Ejemplos:

  • Workflow: Podemos tener una cola por cada estado del workflow. Así, el paso de una cola a otra indica los distintos estados del item.
    • En la práctica, los workflows se suelen implementar con una sola cola y un campo de estado.
  • Procesos productor consumidor. En informática existen muchos procesos de este tipo. Vamos a ver ejemplos:
    • En un proceso de facturación, las factura emitidas se deben contabilizar, emitir recibos etc.
      • Una forma de implementarlo es que el proceso de facturación encole cada factura terminada en la cola de pendientes de contabilizar y pendientes de emitir recibo
      • Sendos procesos irán leyendo posteriormente de estas colas y contabilizarán las facturas o emitirán los recibos.
    • En estos ejemplos de procesos encadenados, observamos:
      • Puede haber varios procesos creando información (varios procesos de facturación)
      • Si cada factura es independiente, puede haber varios procesos contabilizando y las colas nos aseguran que se van a tratar todos las facturas (no se va a perder ninguna), que cada factura se va a procesar una sola vez y que se van a procesar por orden FIFO (según el orden en que se hayan encolado).

Podemos indicar que las colas:

  • Están indicadas para pasar información entre procesos desligados. De hecho, la utilización de colas hace que los procesos sean desligados entre sí.
  • No importa que estos procesos estén en la misma Base de Datos o en Bases de Datos distintas: La propagación de la información entre colas que están en la misma Base de Datos o en Bases de Datos distintas se realiza por configuración de las colas y es transparente a los programas.
  • Las colas nos aseguran que cada item se va a tratar una y solo una vez (salvo rollback).
  • Las colas nos aseguran la permanencia de la información aunque la Base de Datos se pare.
  • La información que puede guardar una cola es la que el usuario (programador) precise. Veremos que un item de una cola es un Type de Oracle y puede ser tan complejo como se precise.