PL/SQL: каналы, сокеты и веб-сервер Oracle

Каналы, сокеты и веб-сервер Oracle в PL/SQLМы уже довольно подробно обсудили некоторые механизмы ввода/вывода в PL/SQL (см. ссылки по теме в конце статьи), особенно часто встречающиеся в реальных приложениях, однако существуют и другие:

  •  Каналы (pipes) баз данных, очереди и оповещения.
  •  Сокеты TCP.
  •  Встроенный веб-сервер Oracle.

 

Каналы, очереди и оповещения в PL/SQL

Встроенный пакет DBMS_PIPE изначально проектировался как эффективный механизм передачи небольших блоков данных между сеансами Oracle. С появлением автономных транзакций потребность в каналах как механизме простой изоляции транзакций друг от друга отпала. Кроме того, каналы могут использоваться для самостоятельной организации параллельных операций.

Очереди — другой механизм асинхронной передачи сообщений между сеансами Oracle. Они существуют в нескольких разновидностях: с одним и несколькими производителями данных (producers), с одним и несколькими потребителями данных (consumers), с ограничением срока жизни сообщений, с приоритетами и т. д. Новейшая функциональность очередей в Oracle описана в документации Oracle Streams Advanced Queuing User’s Guide.

Пакет DBMS_ALERT обеспечивает синхронное оповещение нескольких сеансов о наступлении различных событий базы данных. В наши дни эта возможность используется относительно редко; Oracle предоставляет другие средства, которые решают те же задачи, но с более мощной функциональностью.

 

Сокеты TCP

Какой бы интересной ни считалась тема низкоуровневого сетевого программирования среди специалистов, она просто не относится к числу часто используемых возможностей. В дополнение к встроенному пакету UTL_TCP Oracle также поддерживает вызов сетевых функций из хранимых процедур Java, которые могут активизироваться из кода PL/SQL.

 

Встроенный веб-сервер Oracle

Даже если вы не приобрели лицензию на продукт Oracle Application Server, это не мешает вам использовать сервер HTTP, встроенный в Oracle. Конфигурация встроенного сервера изменяется в зависимости от версии Oracle, но программирование на PL/SQL для него (включая пакеты OWA_UTIL, HTP и HTF) остается относительно неизменным. Эти пакеты позволяют генерировать веб-страницы на основании данных из базы непосредственно в коде PL/SQL. Данная тема весьма обширна, особенно если вы собираетесь генерировать и обрабатывать формы HTML на своей странице. В книге Learning Oracle PL/SQL (издательство O’Reilly) представлено введение в PL/SQL с интенсивным использованием встроенного веб-сервера и многочисленными примерами. Приемы программирования PL/SQL также применимы при использовании автономного полноценного сервера приложений Oracle; за дополнительной информацией об этом продукте обращайтесь к книге Oracle Application Server 10g Essentials (авторы — Рик Гринуолд (Rick Greenwald), Роберт Стаковяк (Robert Stackowiak) и Дональд Бейлз (Donald Bales)).

Хотя Oracle Application Express (или Oracle APEX) формально не является механизмом ввода/вывода, о нем также стоит упомянуть. Эта бесплатная надстройка для
Oracle позволяет строить полнофункциональные веб-приложения, подключающиеся к базе данных Oracle. Программисты PL/SQL могут писать собственные хранимые программы, которые интегрируются с графической инфраструктурой Oracle APEX, предоставляющей много удобных средств для обмена данными через наглядный пользовательский интерфейс.

 

Ссылки по теме

Работа с данными интернета в PL/SQL через Oracle UTL_HTTP

Приемы для отправки почты через PL/SQL на примере

Запись, чтение в файл, каталог буфер в PL/SQL

Работа с DBMS_OUTPUT в PL/SQL

 

Вас заинтересует / Intresting for you:

Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 4634 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 14738 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Основы языка PL/SQL: использов...
Основы языка PL/SQL: использов... 4693 просмотров Ирина Светлова Tue, 06 Feb 2018, 14:04:03
Программирование динамического...
Программирование динамического... 4875 просмотров Максим Николенко Sun, 09 Sep 2018, 06:56:23
Войдите чтобы комментировать