Базы данных Oracle - статьи


Oraclexmlmess.shtml - часть 6


-- xml_Enqueue_Test.sql set serveroutput on DECLARE xmldoc xmldom.DOMDocument; xmlOrder VARCHAR2(200); BEGIN dbms_output.put_line( 'Тест постановки в очередь XML в сессии '|userenv('SESSIONID')); FOR ordId IN 101..105 LOOP -- Построение маленького XML документа заказа -- типа <order id="xxx"/> xmlOrder := '<order id="'ordId'"/>'; -- Разбор текущего документа заказа xmldoc := xml.parse(xmlOrder); -- Постановка текущего заказа в очередь 'xml_msg_queue' xmlq.enqueue(xmldoc,'xml_msg_queue'); -- Освобождение текущего XML документа xml.freeDocument(xmldoc); -- Печать журнального сообщения dbms_output.put_line('Заказ 'ordId' помещен в очередь.'); END LOOP; END;

Запуск этого кода показывает, что наши первые пять заказов находятся теперь на пути к “конвейеру” технологических шагов обработки заказа, управляемому очередью:

XML Enqueue Test in Session 1682 Placed order 101 in queue. Placed order 102 in queue. Placed order 103 in queue. Placed order 104 in queue. Placed order 105 in queue.

Войдя из другой сессии SQL*Plus, мы можем проиллюстрировать удаление заказов из очереди. Как показано в Листинге 9, мы выполняем цикл, который вызывает xmlq.dequeue с флагом ожидания установленным в false. Добавив раздел обработки исключения, который включает предложение WHEN xmlq.queue_empty мы сможем явно перехватить и обработать это условие.

Запуск этого кода показывает FIFO природу очереди, которая была создана со всеми установками по умолчанию, такова и наша xml_msg_queue. Одно за другим сообщения выбирались из очереди, до тех пор, пока мы не опустошили всю очередь:

XML Dequeue Test in Session 1684 Processing Order #101 Processing Order #102 Processing Order #103 Processing Order #104 Processing Order #105 No more orders to process.

XML: интеграл и интегрированный

Эта статья очень ясно показывает как хорошо и легко XML технология сочетается с другой функциональностью Oracle, в данном случае Advanced Queueing. В следующем номере Oracle Professional, мы рассмотрим, как использовать XML SQL Утилиту для производства и преобразования результатов XML запроса.

Приложение: Скачайте файл FEUER.ZIP




Начало  Назад  Вперед