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



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
1-32746
IGI
2002-03-29 12:57
2002.04.11
Файлы


1-32824
snoup
2002-03-27 19:18
2002.04.11
Как с помощью компонента TDialUp сделать автодозвон? Я пишу так:


3-32694
Serg___
2002-03-21 10:46
2002.04.11
ADO vs BDE


6-32909
dimich
2002-01-25 14:55
2002.04.11
Интересная задумка


3-32674
reg
2002-03-20 15:21
2002.04.11
поиск по бд





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский