Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
1-32747
Manwe
2002-03-30 13:45
2002.04.11
RectInRect


4-33009
dimich
2002-02-11 11:15
2002.04.11
Как можно через WinApi cделать ShowMessage!!!


1-32884
PanDron
2002-03-29 11:51
2002.04.11
Memo


3-32681
Андре_
2002-03-20 08:59
2002.04.11
Indirect Synchrnization


1-32805
Dmitry Sheenok
2002-04-01 10:48
2002.04.11
Определить по хендлу состояние окна SW_SHOW, SW_HIDE и т.д




   Наверх