Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Вниз

Сессия Oracle 


Юрий Федоров   (2002-03-18 16:52) [0]

Имеем приложение с открытой сессией Oracle. Существует ли возможность заставить другое приложение подключиться к этой же сессии? Оба приложения написаны на D5 с использованием ODAC



Yuvich   (2002-03-18 17:28) [1]

Я думаю, можно. Надо чтобы сессия была в разделяемом ресурсе, например в DLL. Я лично сам не пробовал, но посмотри в <Путь к ODAC>\Demos\Dll. По-моему, там именно это и делается (ключевое слово AssignSession).



Юрий Федоров   (2002-03-18 17:48) [2]

Дело в том, что при загрузке одной dll двумя разными приложениями
их адресные пространства пересекаться не будут. Таким образом,
один и тот-же экземпляр объекта не может быть доступен им одновременно. Или я не прав?



Yuvich   (2002-03-18 19:08) [3]

В том то и дело, что при загрузке второго приложения и попытке загрузки dll вторым приложением, второй копии dll не будет (не должно быть), т.о. оба приложения будут использовать ОДНУ копию dll



Юрий Федоров   (2002-03-19 13:43) [4]

>Yuvich © (18.03.02 19:08)
К сожалению, это справедливо только для 16-битных библиотек.
Попробуй создать глобальную переменную - экземпляр класса
в dll(например в инициализации) и получить ее из двух приложений. Адреса могут и совпасть, но это будут две ссылки на РАЗНЫЕ экземпляры класса.
ТО, что мы видим в Demos - обратная ситуация, dll использует ссылку на экземпляр, созданный в exe

Поставим вопрос по другому: handle, возвращаемый функцией
OCISessionBegin - является ли он уникальным в системе(можно ли один handle использовать в разных процессах)?



Johnny Smith   (2002-03-19 14:20) [5]

Да в принципе это возможно. Нужно только обеспечить единое адресное пространство для двух процессов. Проблема здесь в другом: как правильно "зарулить" очередями. Ведь многопоточность в одной сессии доступна только в Oracle 9i



Юрий Федоров   (2002-03-19 14:26) [6]

>Johnny Smith
А каким образом обеспечить единое адресное пространство?
Вообще мне странно, что эта тема нигде не обсуждается(по крайней мере я не нашел), ведь ситуация вполне жизненная, например работа
разных приложений в пределах одной транзакции.



Johnny Smith   (2002-03-19 16:21) [7]

2Юрий Федоров (насчет единого адресного пространства)
Сейчас навскидку я этого не скажу. Где-то дома валялась книженция, по которй я пару лет назад делал нечто подобное (ради интереса), но сейчас подзабыл :-))
Спроси на основной конференции, там наверняка скажут. Я же смогу ответить не раньше чем завтра.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.028 c
1-32829           Crazy Angel           2002-03-28 17:28  2002.04.11  
Как удалить заблокированный файл ???


1-32902           PlaZZma               2002-03-29 22:00  2002.04.11  
Может это что-то глючит?


3-32707           Андрей Брусов         2002-03-20 18:22  2002.04.11  
Настраиваемые отчеты


1-32820           serg                  2002-04-01 13:17  2002.04.11  
update 2 for Delphi 6


1-32828           LiNkS                 2002-03-28 18:39  2002.04.11  
GIF в Delphi