Требования к многопоточному приложению
Реализация параллельной обработки запросов выполняется с помощью механизма контекстов. Контекст – это отдельный поток приложения, который может включать в себя:
-
ноль или более соединений с одним или несколькими ЛИНТЕР-серверами;
-
ноль или более предложений встроенного SQL;
-
ноль или более курсоров, созданных на соединении;
-
набор функций, возвращающих состояние выполнения запросов данного контекста.
Встроенный SQL предоставляет приложению средства для описания контекста потока и обмена контекстами между потоками.
Например, интерактивное приложение порождает поток П1, выполняет внутри него запрос выборки и возвращает первые 10 записей в приложение, затем поток П1 прекращается. После получения необходимой команды от пользователя приложения порождается другой поток, П2 (или используется уже существующий), и контекст первого потока П1 передается ему, в результате чего поток П2 может продолжить выборку следующих 10 записей того же самого курсора.
Каждый поток должен выполняться в своем контексте. Для организации контекста используются специальные средства встроенного SQL:
-
объявление контекстной переменной;
-
выделение памяти для контекстной переменной (инициализация контекста);
-
привязка контекста к конкретному потоку;
-
освобождение памяти, выделенной контекстной переменной (деинициализация контекста).