![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
barin_Student |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
Вообщем у меня такая штука:
Есть один класс который реализует работу с таблицами, resultSet и statement один раз определяються, и дальше пошла работа вида: с потоков демонов обращаються к этому классу ассинхронно, то есть вариант что еще прошлый запрос не доконца отработал и тут другой класс стучиться для нового запроса, и я думаю из за этого у меня такая ошибка: Operation not allowed after ResultSet closed к итогу, от чаго генериться такая ошибка? и как организовать решение моей задачи? Сорри за коряво заданный вопрос ![]() -------------------- Нехорошо блин!!! |
|||
|
||||
garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Я далеко не спец в потоках, но разве join не для этого?
|
|||
|
||||
olexande |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 25.11.2004 Где: Киев Репутация: нет Всего: нет |
Может попробовать организовать в режиме "потоков и блокировок" - При вызове "ф-ции" устанавливается блокировка, при окончании - снимается ...
В теле "ф-ции" организовать проверку есть-ли (установлена-ли) блокировка. Если блокировка не установлена, то можно "заходить" в "ф-цию". Это если делать вручную. |
|||
|
||||
barin_Student |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
Светофоры не подойдут))) ![]() -------------------- Нехорошо блин!!! |
|||
|
||||
Shurr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 5 Всего: 7 |
Собственно проблема в параллельном доступе к ресурсам, которые такого режима работы не подразумевают.
Вариант номер один - просто-напросто синхронизировать все методы класса, работающего с БД, чтобы вся работа с ним шла последовательно. Если это приводит к неприемлемому падению производительности - тогда надо делать пул из таких классов, и выдать каждому его инстансу по коннекшену; или создавать инстанс класса для работы с БД каждый раз, но использовать пул коннекшнов. |
|||
|
||||
duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: 4 Всего: 4 |
Самый разумный вариант, как по мне синхронизировать методы. Можно, правда, SQL команды записывать в список (addBatch(String sql)) и в определенное время выполнять.
|
|||
|
||||
barin_Student |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
а если я для каждого класса определю свой statement ? можно ли будет паралельно работать с данными?
-------------------- Нехорошо блин!!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |