Требования к многопоточному приложению

Реализация параллельной обработки запросов выполняется с помощью механизма контекстов. Контекст – это отдельный поток приложения, который может включать в себя:

  • ноль или более соединений с одним или несколькими ЛИНТЕР-серверами;

  • ноль или более предложений встроенного SQL;

  • ноль или более курсоров, созданных на соединении;

  • набор функций, возвращающих состояние выполнения запросов данного контекста.

Встроенный SQL предоставляет приложению средства для описания контекста потока и обмена контекстами между потоками.

Например, интерактивное приложение порождает поток П1, выполняет внутри него запрос выборки и возвращает первые 10 записей в приложение, затем поток П1 прекращается. После получения необходимой команды от пользователя приложения порождается другой поток, П2 (или используется уже существующий), и контекст первого потока П1 передается ему, в результате чего поток П2 может продолжить выборку следующих 10 записей того же самого курсора.

Каждый поток должен выполняться в своем контексте. Для организации контекста используются специальные средства встроенного SQL:

  • объявление контекстной переменной;

  • выделение памяти для контекстной переменной (инициализация контекста);

  • привязка контекста к конкретному потоку;

  • освобождение памяти, выделенной контекстной переменной (деинициализация контекста).