powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Преимущества и недостатки нескольких сессий подключения
6 сообщений из 6, страница 1 из 1
Преимущества и недостатки нескольких сессий подключения
    #32137958
SAnton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Delphi7:
Если у меня приложение состоит из нескольких параллельных потоков, то как лучше сделать: Одну сессию на все потоки или каждому потоку - свою сессию?
Если одна сессия на всех, то как можно передать её разным потокам - ведь потоки используют разные области памяти
Если несколько сессий, то я слышал о каких-то проблемах в подтверждении изменений БД...
...
Рейтинг: 0 / 0
Преимущества и недостатки нескольких сессий подключения
    #32138124
Alexander Sobyanin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если у тебя действительно независимые параллельные потоки, то я думаю лучше действительно через несколько сессий. Если независимые потоки - окошки, то одна сессия на всех.
Методика передачи сессии от потока к потоку зависит от языка.
...
Рейтинг: 0 / 0
Преимущества и недостатки нескольких сессий подключения
    #32138189
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в разделении транзакций. Если одна форма (окошко) хочет сохранять в базе независимо от другой - надо разделять сессии. Если все - в одну транзакцию - запускать в одной. На эту тему проектировщики должны все рассказывать программистам.
...
Рейтинг: 0 / 0
Преимущества и недостатки нескольких сессий подключения
    #32138223
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно все зависит от задачи, но вот одно соображение:
Разные сессии изолированы друг от друга и не видят незакоммиченных изменений друг друга. Если это не проблема - хорошо.

И еще, мне кажется что иметь несколько потоков с сессией в каждом - это лишнее. Возможно лучше иметь один поток, работающий с БД и получающий задания от клиентских потоков, которые ставяться ему в очередь. Возможно.

Так как у тебя прога уже написана и возможно сильно править ее нет желания - тогда наверно лучше использовать несколько сессий - не будет гемора с доступом к глобальной, в противном случае, сессии. Не надо будет критические секции раскидывать и все такое. Если работа идет через ADO, то это даже не слишком накладно будет из-за пулинга сессий.
...
Рейтинг: 0 / 0
Преимущества и недостатки нескольких сессий подключения
    #32138717
SAnton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё ясно. Всем спасибо.
А вот незакоммиченные изменения - для меня плохо
Проблем с передачей сессии потокам не возникло, но возникла проблема с одновременным обращением к сессии нескольких потоков.
Что там с критическими секциями?
Подскажите, как сделать, чтобы один поток ждал другого.
...
Рейтинг: 0 / 0
Преимущества и недостатки нескольких сессий подключения
    #32138739
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблем с передачей сессии потокам не возникло, но возникла проблема с одновременным обращением к сессии нескольких потоков.
Что там с критическими секциями?

Доступ к общему ресурсу (сессии) надо защищать. Нельзя давать одновременно работать с сессией двум потокам - эффект непредсказуем. Собственно работают общие правила многопоточности и шаренных ресурсов.



Подскажите, как сделать, чтобы один поток ждал другого.

Используй примитивы синхронизации - крит. секции, мьютексы, ивенты,...
Если функции потоков одинаковы, то перед тем как обратиться к сессии - войди в крит секцию, закончил работать - выйди из нее.

4 функции
InitializeCriticalSection
Delete...
Enter... - вход
Leave...- выход

и еще Try... варианты.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Преимущества и недостатки нескольких сессий подключения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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