powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / UDF как функция модуля
7 сообщений из 7, страница 1 из 1
UDF как функция модуля
    #33444619
cyclinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Хотелось бы отнестись к загружаемой DLL, которая содержит UDF, как к модулю.

это, в первую очередь, опция "NOT FENCED" и обработка

DllMain(...) {
switch(....) {

case DLL_PROCESS_ATTACH: ....
case DLL_PROCESS_DETACH:
....

для придания модулю состояния

(linux - _init/_fini)

Кто-нибудь делал/видел такое?
...
Рейтинг: 0 / 0
UDF как функция модуля
    #33444708
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то не пойму какая связь между DllMain и Linux? и зачем вам это надо?
...
Рейтинг: 0 / 0
UDF как функция модуля
    #33445051
cyclinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DllMain - для Винды, естественно, связи нет, а я и не писал про связь :)

надо сокеты открытые держать между вызовами UDF
...
Рейтинг: 0 / 0
UDF как функция модуля
    #33445623
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В течение какого промежутка времени хотите держать сокет открытым?
В течение работы запросы/функции или в течение работы сервера базы данных?
...
Рейтинг: 0 / 0
UDF как функция модуля
    #33449155
cyclinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в течение всей работы сервера!

AF_INET сокеты в Unix и named pipes в виндах

должно работать по идее...
...
Рейтинг: 0 / 0
UDF как функция модуля
    #33449178
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам посоветую не заморачиваться на DLLMain()
В любой .DDL или в .so можно использовать глобальные переменные.
Сделать это не трудно. Единственное, что нужно помнить, что эти внешние фукции - реентерабельные, и экземпляр глобальной переменной будет существовать для всех сессий.

По первому обращению к функции соответствующий объект загрузится в память, и прежде чем использовать сокет, вы должны глянуть, а проинициализирован ли он? Если нет - до нужно либо выставить семафор либо мьютекс либо еще какую-фигню. Т.е. что бы два приложения одновременно не стали "инициалилировать" ваш сокет. А дальше - все как всегда.
Абсолютно не вижу трудностей.
...
Рейтинг: 0 / 0
UDF как функция модуля
    #33449235
cyclinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага, я в курсе таких вещей, но тем не менее спасибо за ответ. :)

проще всего использовать "compare exchange" - тогда и блокировки не понадобятся.

все должно работать, но я ожидал найти отдельный топик в доках, что-то вроде: "extending db2 with persistant modules", а его там нет. Это немного настораживает - не хотелось бы сработать впустую.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / UDF как функция модуля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]