Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jboss работа с бд, стоит ли закрывать сессию 
:(
    Опции темы
clanda
  Дата 7.8.2009, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



доброго времени суток!

есть приложение, крутящееся на JBoss.
оно работает с БД - постоянно выполняются запросы на запись/чтение
вопрос заключается в том, что хранить открытой сессию или закрывать после выполнения запроса?
тогда если хранить, то как можно проверить на валидность сессии перед выполнением запроса?

PM MAIL   Вверх
acvilon
  Дата 7.8.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.4.2007
Где: Spb

Репутация: нет
Всего: нет



Доброго-доброго. 

"вопрос заключается в том, что хранить открытой сессию или закрывать после выполнения запроса?
тогда если хранить, то как можно проверить на валидность сессии перед выполнением запроса?"

Что вы подразумеваете под сессией тут? С помощью чего вы коннектитесь к базе? JDBC? JPA? 
PM MAIL ICQ   Вверх
clanda
Дата 10.8.2009, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



сервер приложений создает пул соединений, а я работаю уже с ним
с помощью JDBC

Код


    private DataSource data_source = null;
    private InitialContext context = null;
    private Connection connect = null;
    private Statement state = null;

public void connect() throws SQLException, NamingException{
    context  = new InitialContext();
    data_source = (DataSource)context.lookup("java:/OracleDS"); 
    connect = data_source.getConnection(USERNAME, PASSWORD);
    state = connect.createStatement();
    System.out.println("connected to base...");
}


запросы выполняются

Код

public synchronized ResultSet Select(String querry) throws SQLException{
    return state.executeQuery(querry);
}


и сам disconnect
Код

private void disconnect() throws SQLException{
    state.close();
    connect.close();
    data_source = null;
    state = null;
    connect = null;
    System.out.println("disconnected from base...");
}



вопрос в том, что если поток информации большой, то насколько долго будет отрабатывать такая схема - 
      ->connect -> select -> disconnect --
      |___________________________|

PM MAIL   Вверх
clanda
Дата 10.8.2009, 04:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



а сессия имелось в виду - 
connect()

  ->select()->
  |________|

disconnect()
PM MAIL   Вверх
clanda
Дата 14.8.2009, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



решил сделать так:
при каждом запросе клиента создаю экземпляр объекта работающего с БД
который коннектится, выполняет запрос и дисконнектится
PM MAIL   Вверх
xaoc2
Дата 3.9.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004

Репутация: нет
Всего: нет



    Пул придуман для того чтобы постоянно держать открытыми несколько соединений, чтобы клиент мог максимально быстро их использовать, и не иметь накладных рашодов на установку, авторизацию и закрытие соединения. Открытие, означает изятие соединения из списка свободных. Закрытие означает возвращение в список свободных соединений. Сами соединения НИКОГДА не закрываются. Хотя это может зависеть от реализации сервера приложений ( например, при отсутствии клиентов, сервер может именьшить размер пула до минимально допустимого (параметризируемого) количества ).

Ответ: конечно закрывать, для этого он и придуман.

Это сообщение отредактировал(а) xaoc2 - 3.9.2009, 19:59
PM MAIL   Вверх
clanda
Дата 23.12.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



так и сделал, спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0943 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.