powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Connection between threads
67 сообщений из 67, показаны все 3 страниц
Connection between threads
    #38058640
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, есть задача в разных тредах асинхронно работать с одним и тем же оракловым Connection.

Как это грамотно реализовать, есть у кого нибудь опыт ?
...
Рейтинг: 0 / 0
Connection between threads
    #38058649
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDBC по природе своей не многопоточный. Поэтому вариантов всего два. Либо синхронизировать все потоки по одному локу.
Либо складывать все задачи в очередь и разгребать одним потоком для запуска SQL.
Если есть какая-то конкретика про используемые SQL, то можно ещё что-то придумать. Например не использовать ResultSet с открытым курсором, а вычитывать данные в CachedRowSet и сразу же освобождать Connection.
...
Рейтинг: 0 / 0
Connection between threads
    #38058655
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Коллеги, есть задача в разных тредах асинхронно работать с одним и тем же оракловым Connection.

Как это грамотно реализовать, есть у кого нибудь опыт ?

Ну сначала стандартный вопрос - зачем вам это? Скорее всего вы изобретаете велосипед и наступаете на пройденные многими грабли.
Если же действительно есть такая необходимость - то в кратце Connection не ThreadSafe, так что можно разве что создать фасад над коннекшенами в который складывать коннекшены по ключу, а перед каждым доустпом к коннекшену лочить этот ключ. Но так вы добьетесь только лишь непротиворечивости, истинной параллельности вам не получить.
...
Рейтинг: 0 / 0
Connection between threads
    #38058665
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно в каждом новом треде создавать новый тред и между коннекшенами пробрасывать уровень изоляции такой чтоб были выидны не закомиченные изменения другого конекшена ?
...
Рейтинг: 0 / 0
Connection between threads
    #38058678
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно в каждом новом треде создавать новый "конекшен"

Очепятка
...
Рейтинг: 0 / 0
Connection between threads
    #38058685
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01и между коннекшенами пробрасывать уровень изоляции такой чтоб были выидны не закомиченные изменения другого конекшена ?Нет.
Несколько транзакций могут разделять одно подключение, а вот наоборот - никогда.

P.S. Задача-то какая?
...
Рейтинг: 0 / 0
Connection between threads
    #38058692
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01А можно в каждом новом треде создавать новый тред и между коннекшенами пробрасывать уровень изоляции такой чтоб были выидны не закомиченные изменения другого конекшена ?
Может проще версии использовать?
...
Рейтинг: 0 / 0
Connection between threads
    #38058697
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версии чего ?
...
Рейтинг: 0 / 0
Connection between threads
    #38058705
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Версии чего ?
Версии записей в базе хранить и использовать.
...
Рейтинг: 0 / 0
Connection between threads
    #38058707
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Не так не получится

мы заранее не знаем схему БД

наша задача - движок между тредами
...
Рейтинг: 0 / 0
Connection between threads
    #38058711
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01А можно в каждом новом треде создавать новый тред и между коннекшенами пробрасывать уровень изоляции такой чтоб были выидны не закомиченные изменения другого конекшена ?
Может всем Dirty Read разрешить и всё. 8)))
...
Рейтинг: 0 / 0
Connection between threads
    #38058712
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01А можно в каждом новом треде создавать новый тред и между коннекшенами пробрасывать уровень изоляции такой чтоб были выидны не закомиченные изменения другого конекшена ?
Объясни лучше почему Connection только один. 8)
...
Рейтинг: 0 / 0
Connection between threads
    #38058713
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01наша задача - движок между тредамиУ движка-то какая задача?
Сейчас вы пытаетесь достать левое ухо, вывернув правую руку за спину - утомительно и вредно.
...
Рейтинг: 0 / 0
Connection between threads
    #38058717
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovСейчас вы пытаетесь достать левое ухо, вывернув правую руку за спину - утомительно и вредно.
Заметь, это нужно сделать "грамотно".
...
Рейтинг: 0 / 0
Connection between threads
    #38058720
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Транзакция одна

если можно сделать такое многими конекшенами почему бы и нет
...
Рейтинг: 0 / 0
Connection between threads
    #38058726
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczМожет всем Dirty Read разрешить и всё. 8)))"Да за это убивать надо" (ц) старый анекдот.
Даже там, где "вроде бы" есть.
...
Рейтинг: 0 / 0
Connection between threads
    #38058731
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01, невозможно т.к. один сеанс БД полностью синхронный.
Ты толкаешь запрос. И ждёшь и получаешь ответ. Если у тебя много
потоков ждут освобождения 1 коннекшена то это попытка использовать
это соединение как пул где MAX_CONN=1.

Почему-бы тебе не взять готовый пул и не мучиться?
...
Рейтинг: 0 / 0
Connection between threads
    #38058740
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПочему-бы тебе не взять готовый пул и не мучиться?Он хочет, что всё "это" происходило в одной транзакции.
...
Рейтинг: 0 / 0
Connection between threads
    #38058744
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Транзакция одна

Вооот ключевой момент.
Т.е. много потоков шарят одну транзакцию и ты предполагаешь что RDBMS должна реализовывать конкурентный доступ к данным внутри одной транзакции? Эдак весь ACID на хрен сведётся.
...
Рейтинг: 0 / 0
Connection between threads
    #38058766
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Транзакция одна
если можно сделать такое многими конекшенами почему бы и нет
Можно. Но обращения всё равно придётся сериализовать (выстраивать в очередь). Достаточно странно, если одна транзакция понадобиться параллельным потокам. Скорее всего в системе одновременно транзакцию будет использовать один поток.
Ваш же движок будет перебрасывать connection между потоками. Но одновременно с ним будет работать только один. Поэтому достаточно себя обезопасить через lock или очередь.
...
Рейтинг: 0 / 0
Connection between threads
    #38058769
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Connection between threads
    #38058783
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01 http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_xa.htm#BABBDDFC
Вот интересный тынц в тему
Да, пожалуйста. Только заметь что там подразумевается работа с многими XA ресурсами. У тебя один XA ресурс. Конкурентный доступ к нему в одной транзакции никто не обещал.
И вообще не стоит путать глобальную XA транзакцию и локальную транзакцию отдельного ресурса (DB Connection).
...
Рейтинг: 0 / 0
Connection between threads
    #38058791
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А потом окажется что "это был теоретический вопрос(с)". Я даже и придумать то не могу зачем такая шляпа может понадобиться.
...
Рейтинг: 0 / 0
Connection between threads
    #38059021
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никА потом окажется что "это был теоретический вопрос(с)". Я даже и придумать то не могу зачем такая шляпа может понадобиться.
Зришь в корень
http://www.sql.ru/forum/actualsearch.aspx?a=buldozer01&ma=0
...
Рейтинг: 0 / 0
Connection between threads
    #38060742
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Да нет это реальная задача как и остальные линки которые ты не поленился поискать непонятно только зачем.
...
Рейтинг: 0 / 0
Connection between threads
    #38060748
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Да нет это реальная задача
У реальной задачи - реальная постановка. Здесь же ты её ещё не рассказал.

buldozer01 как и остальные линки которые ты не поленился поискать непонятно только зачем.
Да, столько труда приложил. Сначала в пофиль зайти, потом темы автора. Аж два клика. Чуть не надорвался.
...
Рейтинг: 0 / 0
Connection between threads
    #38060751
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Я описал необходимое и достаточное количество условий задачи
А зачем оно - на форум нет смысла писать.

Нечего сказать дельного по теме - прошу не троллить.
...
Рейтинг: 0 / 0
Connection between threads
    #38060758
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Я описал необходимое и достаточное количество условий задачи

Нет. Ты описал свое решение задачи.

buldozer01А зачем оно - на форум нет смысла писать.

Без сомнения.

buldozer01Нечего сказать дельного по теме - прошу не троллить.
Заметь, я тут единственный кто тебе пытается объяснить про XA ресурсы и почему работа внутри одной DB транзакции не может бы конкурентной и т.п. А ты как хамил так и продолжаешь.
И чем тебе предложеные решения не подходят, ты тоже себя не утруждаешь объяснить. Зато чего не по теме ляпнуть, так это в первую очередь.
...
Рейтинг: 0 / 0
Connection between threads
    #38060761
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Blazkowicz,

Я описал необходимое и достаточное количество условий задачи
А зачем оно - на форум нет смысла писать.

Нечего сказать дельного по теме - прошу не троллить.

Вот всегда так - хочешь помочь, сделать как лучше, а получается:)
ПС. То что ты описал это не задача, а бредовый способ решить какую-то задачу, а вот задачу мы как раз и хотели у тебя узнать, чтобы помочь. Не хочешь как хочешь:).
...
Рейтинг: 0 / 0
Connection between threads
    #38060763
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Это не хамство а просьба не отходить от темы - и я не разу не нахамил за все время обсуждения этой темы и предыдущих.

За помощь - гигантское спасибо.

А вот обсуждение - нафига я завел эту тему - ах ну да там же он еще кучу подобной хрени завел давайте дружно поржем
- я подругому как троллинг не назову.
...
Рейтинг: 0 / 0
Connection between threads
    #38060767
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача проста

Есть транзакционный механизм распределенный между тредами.

Транзакция XA одна тредов много.

Все что сделано в конекшене одного треда должно быть видно другому треду.

Вот буквальная постановка задачи - нет никой постановки от бизнеса и близко.
...
Рейтинг: 0 / 0
Connection between threads
    #38060770
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Задача проста

Есть транзакционный механизм распределенный между тредами.

Транзакция XA одна тредов много.

Все что сделано в конекшене одного треда должно быть видно другому треду.

Вот буквальная постановка задачи - нет никой постановки от бизнеса и близко.

Ок, и опять вы про свое... Скажите, зачем вы ушли от стандартной схемы одна транзакция - один коннекшен? Типа чтобы быстрее было? Так что мешает разбить задачу на независимые наборы данных и обработать в разных коннекшенах? Вот то что вы описали в принципе невозможно. Точнее возможно, но доступ к коннекшену все равно будет последовательный изо всех потоков, так смысл?
...
Рейтинг: 0 / 0
Connection between threads
    #38060771
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Точнее одна транзакция - один коннекшен - один тред
...
Рейтинг: 0 / 0
Connection between threads
    #38060772
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Смысл в том что в транзакции также может быть и JMS продюсер

и она нужна распределенная и единая между тредами.

В принципе пока нас устроил вариант с блокировкой на каждом execute
...
Рейтинг: 0 / 0
Connection between threads
    #38060773
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никТочнее возможно, но доступ к коннекшену все равно будет последовательный изо всех потоков, так смысл?
Я более чем уверен что в конечной системе к одному соединению будет именно такой последовательный доступ, просто из разных потоков. Но топикастеру нужно время чтобы это понять. Вот и никак не ответит ни на один комент в тему.
...
Рейтинг: 0 / 0
Connection between threads
    #38060775
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никТочнее одна транзакция - один коннекшен - один тред
Не обязательно. Если используется асинхронный подход, то вполне можно перебросить конекшн в другой поток и асинхронно продолжить тразнакцию. Но автор же не хочет объяснить какая у него вокруг этой задачи архитектура.
...
Рейтинг: 0 / 0
Connection between threads
    #38060776
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

>>Вот и никак не ответит ни на один коммент в тему.

Ну Ну ...

Идея складировать все sql запросы в очередь и потом их выполнять вот над чем я в серьез думаю
Но с локом оно синхронно и как то надежнее что ли
...
Рейтинг: 0 / 0
Connection between threads
    #38060778
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архитектура проста

JVM + Arjuna Транзакционный менеджер + ActiveMQ

что еще из архитектуры ?
...
Рейтинг: 0 / 0
Connection between threads
    #38060779
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01забыл ник,

Смысл в том что в транзакции также может быть и JMS продюсер

и она нужна распределенная и единая между тредами.

В принципе пока нас устроил вариант с блокировкой на каждом execute

Фига се, это уже интереснее:) уже и JMS появился. Вот только JMS нужен немного для другого, если не секрет расскажите а зачем такой вот изврат? Глядишь через пару шагов и до сути дойдем. Обычно JMS как связан с транзакциями ведь - достал данные из базы, чета сделал, кинул сообщение в JMS, транзакцию закрыл.. Суть в том чтобы транзакционно доставить мессадж или не доставить при роллбаке, а код самого листенера пихать в транзакцию.. попахивает чем-то нехорошим.
...
Рейтинг: 0 / 0
Connection between threads
    #38060780
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01В принципе пока нас устроил вариант с блокировкой на каждом execute
Здесь как раз хорошо должна подойти оптимистичная блокировка, которую ты так хотел применить. Ведь по логике конкурентные запросы к одной транзакции должны быть исключены. Т.е. в большинстве случаев не происходить вообще.
...
Рейтинг: 0 / 0
Connection between threads
    #38060781
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Идея складировать все sql запросы в очередь и потом их выполнять вот над чем я в серьез думаю
Но с локом оно синхронно и как то надежнее что ли

Как раз-таки очередь - идеальный вариант при вашем раскладе, ведь очередь реализована на тех же самых локах, а когда пишешь их вручную - есть шанс напортачить.
...
Рейтинг: 0 / 0
Connection between threads
    #38060782
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

>> Обычно JMS как связан с транзакциями ведь - достал данные из базы, чета сделал, кинул сообщение в JMS

Обычно я по утрам пью чай а вот сегодня выпил кефиру ....

сорри конечно - но бывают и другие кейсы
...
Рейтинг: 0 / 0
Connection between threads
    #38060784
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Очередь асинхронна и непонятно что там с видимостью

Кто то сделал execute и думает что в базе уже все ок
Ан нет оно тока в очередь встало

Косяки на прикладном уровне ацкие могут быть
...
Рейтинг: 0 / 0
Connection between threads
    #38060785
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01>>Вот и никак не ответит ни на один коммент в тему.
Ну Ну ...
Ну, вот опять.

buldozer01Идея складировать все sql запросы в очередь и потом их выполнять вот над чем я в серьез думаю
Но с локом оно синхронно и как то надежнее что ли
13551827
Я тебе эти два решения первым же коментом привел. Отказ от пессимистичных блокировок может серьезно увеличить производительность. Иначе у тебя вся асинхронность лесом пойдёт. Ты её обратно к синхронности приведешь за счет локов.
Чем лок "надежнее" - не понятно.
...
Рейтинг: 0 / 0
Connection between threads
    #38060787
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Транзакция XA одна тредов много.

Я тебе уже выше писал. Не мешай в кучу глобальную транзакцию и транзакцию в базе. Но ты это успешно продолжаешь игнорировать.
...
Рейтинг: 0 / 0
Connection between threads
    #38060790
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01забыл ник,

>> Обычно JMS как связан с транзакциями ведь - достал данные из базы, чета сделал, кинул сообщение в JMS

Обычно я по утрам пью чай а вот сегодня выпил кефиру ....

сорри конечно - но бывают и другие кейсы

Нет я ж не спорю, все может быть, можно и сахар в чае рукой размешивать. Ну когда ложек нет.
Ну надо так надо - вам виднее, хотя очень похоже на применение правильных инструментов неправильным образом. Тогда складируйте все в очередь, как вы и написали.
...
Рейтинг: 0 / 0
Connection between threads
    #38060791
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На прикладном уровне юзера делает

int t = execute ("select t from t");

После execute я уснуть должен ? и дождаться пока результат в очереди вычислится ?
...
Рейтинг: 0 / 0
Connection between threads
    #38060792
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01забыл ник,

Очередь асинхронна и непонятно что там с видимостью

Кто то сделал execute и думает что в базе уже все ок
Ан нет оно тока в очередь встало

Косяки на прикладном уровне ацкие могут быть

Какие если консьюмер один?
...
Рейтинг: 0 / 0
Connection between threads
    #38060793
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

проблемы на с JMS а с базой
...
Рейтинг: 0 / 0
Connection between threads
    #38060796
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Обычно я по утрам пью чай а вот сегодня выпил кефиру ....
сорри конечно - но бывают и другие кейсы
Тебе дело пишут, а ты вы-бываешься.
Смотри. Продюсер открывает XA транзакцию. Отрывает DB Connection. Что-то туда пишет.
Отправляет асинхронное сообщение.
Консюмер получает сообщение - состояние он как раз должен получить из сообщения, а не из базы данных.
Обрабатывает его через свой DB Connection и вместе они дружно комитят XA транзакцию и оба DB соединения.

Разница в том что ты хочешь состояния вычитать через базу. Нафига? Когда его можно передать через очередь.
С другой стороны можно передать ссылку на Connection. И пусть себе читает. Тогда важно чтобы не использовались топики.
...
Рейтинг: 0 / 0
Connection between threads
    #38060800
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01На прикладном уровне юзера делает

int t = execute ("select t from t");

После execute я уснуть должен ? и дождаться пока результат в очереди вычислится ?
Мля, ну нужно синхронно - уснул. Нужно асинхронно - подписался на ответ и освободил поток.
...
Рейтинг: 0 / 0
Connection between threads
    #38060803
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczС другой стороны можно передать ссылку на Connection. И пусть себе читает. Тогда важно чтобы не использовались топики.

А разве коннекшен Serializable? Нету IDE под рукой чтобы проверить.
...
Рейтинг: 0 / 0
Connection between threads
    #38060806
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никА разве коннекшен Serializable? Нету IDE под рукой чтобы проверить.
нет, конечно. Но не всякая очередь это JMS, где обязательно персистить нужно. При особом желании локально можно и передать.
...
Рейтинг: 0 / 0
Connection between threads
    #38060807
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Я вот читал что распределенную транзакцию можно открыть прямо внутри оракла DBMS_XA.

http://psoug.org/reference/dbms_xa.html

Оно не поможет в теме ?
...
Рейтинг: 0 / 0
Connection between threads
    #38060810
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТебе дело пишут, а ты вы-бываешься

Угу и я после этого еще хамлю - Ох ты божешь мой какие мы нежные важные
...
Рейтинг: 0 / 0
Connection between threads
    #38060815
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты вместо того чтобы свои мысли выразить, кидаешь какие-то ссылки. И что ты этим хотел сказать. Ну, вот, давай я за тебя почитаю про tightly coupled branches. Те самые, которыем могут видеть изменения друг друга.
http://www.oracle.com/technetwork/products/clustering/overview/distributed-transactions-and-xa-163941.pdf Tightly coupled transactions require the RM to guarantee that resource deadlock will not occur
between individual branches of an XA transaction. The way that this is implemented is at the
discretion of the RM, but it can have the effect of limiting concurrent data access across all tightly
coupled branches. (e.g. only one branch can be actively using DML at a time ).

Это именно то о чем я говорю. Т.е. не смотря ни на что, доступ к одному ресурсу в рамках одной транзакции не может быть конкурентным. Возможно это всё уже раелизовано в твоём менеджере транзакций и не придется ничего изобратать. Но по логика работать оно будет только так как тебе объясняли выше.
...
Рейтинг: 0 / 0
Connection between threads
    #38060818
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Угу и я после этого еще хамлю - Ох ты божешь мой какие мы нежные важные
Ну это же тебе в каждой теме тролли мерещатся. Я тебе по теме кучу коментов написал. Ты отвечаешь на один из пяти в духе "а мне кажется что вот по ссылке что-то есть". Я понимаю что мои ответы не сразу до тебя доходят. Но ты возьми время, обдумай их. Задай вопросы если не понятно.
...
Рейтинг: 0 / 0
Connection between threads
    #38060819
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Понял спасибо.

Вообщем подумав сделаю АПИ с синхронным и асинхронным выполнением и механизмом обратных колбаков

Вопрос как быть с JPA :)
...
Рейтинг: 0 / 0
Connection between threads
    #38060935
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01На прикладном уровне юзера делает
int t = execute ("select t from t");
После execute я уснуть должен ? и дождаться пока результат в очереди вычислится ?
я что то не пойму уважаемые профи
- в Java нет готового АПИ для асинхронности? Типа как у MDAC от MS с ГАЛКОЙ - "установить асинхронность"?
Там в основной поток приходит сообщение с результатом. Никаких потоков на прикладном уровне городить не надо. Всё сделано.
- зачем автору асинхронность? Если пользователь ЗАПРОСИЛ данные?

Или делаем нечто мегауниверсальное?
...
Рейтинг: 0 / 0
Connection between threads
    #38066895
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаем доку про loosely coupling и находим параллельное асинхронное многопоточное выполнение
...
Рейтинг: 0 / 0
Connection between threads
    #38066956
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Читаем доку про loosely coupling и находим параллельное асинхронное многопоточное выполнение

Можно вслух? С ударением на нужные места, доку случаем не вы сами писали? А то что-то не встречал
...
Рейтинг: 0 / 0
Connection between threads
    #38066958
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Читаем доку про loosely coupling и находим параллельное асинхронное многопоточное выполнение
а дальше молимся и читаем мантру?
Там нет волшебных пузырьков.
В простом случае с ГУИ (события от ГУИ) - асинхронность не нужна.
В сложных случаях, либо - пул коннектов, либо каждому потоку - свой коннект.
Т.к. в самой СУБД параллелизм хорошо работает в разных коннектах(соединениях) а не в одном.
...
На первый вопрос ты не ответил.
...
Рейтинг: 0 / 0
Connection between threads
    #38070611
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак:

В оракле есть два вида бранчей

Loosely coupled:

Позволяет полностью параллельное выполнение без блокировок - однако бранчи не видят изменения друг дружки

Tightly coupled

Бранчи видят друг дружку но выполнение запросов с блокировкой.

Реализовал - работает.




Всем серьезным гуру а также троллям и злопыхателям большое спасибо
...
Рейтинг: 0 / 0
Connection between threads
    #38070619
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Loosely coupled:
Позволяет полностью параллельное выполнение без блокировок - однако бранчи не видят изменения друг дружки

Разные потоки используют свои Connection-ы без ограничений.

buldozer01Tightly coupled

Бранчи видят друг дружку но выполнение запросов с блокировкой.

Разные потоки шарят Connection, но используют его строго по очереди.


buldozer01Всем серьезным гуру а также троллям и злопыхателям большое спасибо
А теперь перечитай свой первый вопрос.
...
Рейтинг: 0 / 0
Connection between threads
    #38070625
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Ну я сегодня попробывал шарить один XA коннекшен между тредами - такой расколбас начался :)
...
Рейтинг: 0 / 0
Connection between threads
    #38070626
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же блокировки все внутри оракла - как оно надежнее чем джава-самописные
...
Рейтинг: 0 / 0
Connection between threads
    #38070631
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати а если кластер как блокировать :)
...
Рейтинг: 0 / 0
67 сообщений из 67, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Connection between threads
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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