Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.11;
Скачать: CL | DM;

Вниз

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



Страницы: 1 вся ветка

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
6-32929
dougine
2002-01-30 09:41
2002.04.11
Помогите отправить SMS на мобилу


3-32629
Big_Rom
2002-03-19 07:00
2002.04.11
Как мне програмно узнать логин юзера который работает в текущий момент


4-33024
Alexsyy
2002-02-08 16:58
2002.04.11
Пожалуйста помогите


4-33007
Death
2002-02-09 23:19
2002.04.11
Помогите вызвать форму на передний план.


14-32957
метеоролог
2002-02-26 10:25
2002.04.11
Компонент для Delphi-3