Saltar al contenido

LIFO de cola avanzada de Oracle

Hola, hallamos la solución a tu interrogante, continúa leyendo y la encontrarás aquí.

Solución:

Suponiendo que está utilizando PL/SQL para quitar el mensaje de la cola (puede haber limitaciones adicionales de JMS; no sé lo suficiente sobre la interacción entre JMS y AQ), debería poder usar una cola de prioridad para implementar LIFO (aunque sería un poco cursi). Cuando pone en cola un mensaje, puede especificar una prioridad

La prioridad attribute especifica la prioridad del mensaje. Puede ser cualquier número, incluidos los números negativos. Un número más pequeño indica una prioridad más alta.

Si crea una secuencia que cuenta hacia atrás desde un número realmente grande, podría asignar una prioridad cada vez mayor. Luego, su salida de cola priorizada recibiría mensajes en un orden LIFO.

Para obtener el comportamiento de LIFO en Oracle, podría implementar una pila usando un objeto PL/SQL:

Una pila contiene una colección ordenada de elementos de datos. Las pilas tienen una parte superior y una parte inferior. Los elementos se pueden agregar o eliminar solo en la parte superior. Entonces, el último elemento agregado a una pila es el primer elemento eliminado. (Piense en la pila de bandejas de servicio limpias en una cafetería). Las operaciones push y pop actualizan la pila mientras conservan el comportamiento de último en entrar, primero en salir (LIFO).

Las pilas tienen muchas aplicaciones. Por ejemplo, se utilizan en la programación de sistemas para priorizar las interrupciones y gestionar la recursividad. La implementación más simple de una pila usa un número entero arraycon un extremo del array que representa la parte superior de la pila.

Luego, necesitaría envolver sus funciones de puesta en cola/eliminación de cola para que, en lugar de pasar a AQ, vayan a su pila en lugar de a las tablas AQ.

Si estás contento con lo expuesto, puedes dejar un artículo acerca de qué le añadirías a esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *