Я работаю над проектом, который включает в себя устаревшие системы, написанные в Progress 9.1d. Эти системы должны использовать общую библиотеку, которую я запрограммировал на языке C.
Люди из Progress сказали мне, что приложение работает через нечто, называемое «сервером приложений». У этого сервера приложений есть то, что они называют «агентами», и когда пользователь запускает приложение «Прогресс», сервер приложений создает экземпляр (я полагаю, он так и называется) агента для участия в петиции. Количество агентов ограничено, и когда лимит превышен, петиции ставятся в очередь.
Итак, каждый из этих агентов выполняет код Progress, который использует мою общую библиотеку. Я боюсь, что между ними могут быть конфликты данных. В разделяемой библиотеке нет ни глобальных, ни статических переменных. Все данные, которые использует функция разделяемой библиотеки, создаются внутри нее, все переменные являются локальными.
Общая библиотека и сервер приложений Progress находятся на одном сервере UNIX HP-UX 11.1
Я предполагаю, что у каждого нового агента есть собственная копия данных приложения Progress, но если это так, я не знаю, происходит ли то же самое с разделяемой библиотекой...
Если у кого-то есть опыт использования общих библиотек с Progress, нужно ли предпринять какие-то меры для обеспечения параллелизма?
До сих пор наши тесты были без проблем.
Буду рад любому комментарию, спасибо.