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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Tomcat и сервер баз данных, как лутше 
:(
    Опции темы
sith
Дата 2.1.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Zamuta
Дата 2.1.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



sith, томкат по умолчанию идёт с apache common-dbcp (data base connection pool). Если собираешься использовать его пул соединений, а желательно это делать, то необходимо прописать в context.xml (для конкретного приложения) или в server.xml (если для всего сервера) настройки работы dbcp.

Вот пример для context.xml для mysql
Код

<Context path="/path">
  <Resource auth="Container" 
      driverClassName="com.mysql.jdbc.Driver"
      maxActive="200"
      maxIdle="10" 
      maxWait="10000"
      name="myPool"
      password="pass"
      removeAbandoned="true"
      removeAbandonedTimeout="30"
      type="javax.sql.DataSource"
      url="jdbc:mysql://localhost:3306/schema_name" 
      username="root"/>
  </Context>

Для server.xml смотреть на сайте томката.




--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
sith
Дата 2.1.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а зачем это делать... как это я буду использовать в коде сервлета...? 


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Platon
Дата 2.1.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Это JNDI

Добавлено через 5 минут и 54 секунды
http://forum.vingrad.ru/faq/topic-157996.html

Добавлено через 8 минут и 25 секунд
но лично я, не могу понять смысла этих Джндай...
PM MAIL ICQ   Вверх
XEugene
Дата 2.1.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно ещё создать ссылку на datasource в web.xml
Код

    <resource-ref>
        <res-ref-name>jdbc/mysql-connector-java-3.1.14-bin</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>


Дальше созданный пул юзается через JNDI
В сервлете(хотя я бы завел для этой цели отдельный класс) должно присутствовать что-то подобное

Код

    DataSource pool;
    Connection con;
    Context env = null;
    try {
        env = (Context)new InitialContext().lookup("java:comp/env");
        pool = (DataSource)env.lookup("jdbc/mysql-connector-java-3.1.14-bin");
        if (pool == null) throw new ServletException("Unknown DataSource");
    }
    catch(NamingException ex) {
           throw new ServletException(ex.getMessage());
    } 
    con = pool.getConnection();


Дальше юзаешь созданный коннект как обычно,  создавая Statement или PreparedStatement.

Добавлено через 9 минут и 39 секунд
После каждого обращения к БД нужно будет возвращать соединения в пул
Код

con.close();
 иначе открытые соединения будут накапливаться.
PM MAIL   Вверх
sith
Дата 2.1.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



... это делаеться для того что бы потом удобно было заменять сервера... если я захочу перейти на другой... или зачем...?


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Platon
Дата 2.1.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



smile на самом деле наверно я просто не сталкивался с такой проблемой, но истинно, к примеру БД с hibernate что в standalone что в Web приложении у меня работа ведется одинаково, никаких джндаев.
PM MAIL ICQ   Вверх
sith
Дата 2.1.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



XEugene к тебе вопрос... а где я указываю в твоих примерах кода нужный мне драйвер для работы с БД


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Tony
Дата 2.1.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Цитата(sith @ 2.1.2008,  12:03)
...есть у меня такой вопрос...
... хочу сделать свое преложение такого плана - пользователь заполняет форму... форма передаеться сервелту и сервлет записывает данные в БД... вопрос такой... нужно ли в конфигах томката прописывать используемый сервер баз данных или нет... если нужно то сбросьте пример... пожалуйста

Mozhno i ne ispolzovat' konfigi tomcata i dazhe lutshe. T.k ti ne budesh privjazan k Tomcatu. smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
XEugene
Дата 2.1.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



context.xml в случае с моим драйвером будет вылядеть так
Код

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/yourWebAppContext">
    <Resource
      name="jdbc/mysql-connector-java-3.1.14-bin"
      type="javax.sql.DataSource"
      username="root"
      password=""
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      validationQuery="SELECT 1"
      url="jdbc:mysql://localhost/test?characterEncoding=UTF-8"
      maxActive="4"/>
 </Context>


Драйвер указан в Resource name.  Сам mysql-connector-java-3.1.14-bin.jar у меня при этом находиться в WEB-INF/lib.  
Хотя его местоположение наверное не принципиально,  но у меня в работающем примере так...
Главное,  он должен быть подключен к проекту.

В url должно быть указано название базы данных,  у меня это test.

А в web.xml и в коде как у меня выше...

А насчет назначения пула коннектов,   насколько мне известно это нужно для обеспечения эффективной работы с БД многих пользователей
одновременно.   




Цитата(Platon @  2.1.2008,  15:54 Найти цитируемый пост)
на самом деле наверно я просто не сталкивался с такой проблемой, но истинно, к примеру БД с hibernate что в standalone что в Web приложении у меня работа ведется одинаково, никаких джндаев
Ну,   не хибернетом единым...
К тому же я видел примеры,  где датасорс хранящийся в JNDI,   используют в Hibernate. 

PM MAIL   Вверх
Kangaroo
Дата 2.1.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



Цитата(Platon @  2.1.2008,  14:54 Найти цитируемый пост)
на самом деле наверно я просто не сталкивался с такой проблемой, но истинно, к примеру БД с hibernate что в standalone что в Web приложении у меня работа ведется одинаково, никаких джндаев. 

Если в приложении надо использовать пул соединений (но при этом не нужен Hibernate), то можно использвать пул сервера (например, Томкета). У Hibernate свой пул соединений, поэтому при его использовании не нужен другой пул.


--------------------
Lost....
PM MAIL MSN   Вверх
sith
Дата 4.1.2008, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



прикрутить жестко к сервелету базу данных у меня получилось а вот с помощью JNDI нет...
... он ругаеться на то что не может создать обьект драйвера... 

Код
 con = pool.getConnection();

 на этой строчке выбрасываетьтся исключение... есть какойто более работающий пример...?

Это сообщение отредактировал(а) sith - 4.1.2008, 01:50


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Kangaroo
Дата 4.1.2008, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



Цитата(sith @  4.1.2008,  00:49 Найти цитируемый пост)
на этой строчке выбрасываетьтся исключение... 

А какое исключение?


--------------------
Lost....
PM MAIL MSN   Вверх
XEugene
Дата 4.1.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И заодно - какя версия томката?

Не везде это делается одинаково.




Цитата(sith @  4.1.2008,  01:49 Найти цитируемый пост)
есть какойто более работающий пример...?
Может я что-то не так делаю,  но у меня этот работает  smile 

PM MAIL   Вверх
sith
Дата 4.1.2008, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



... большое спасибо... действительно у меня был 6 томкат... и плюс я контекст прописывал не в конфигах томката... а у себя в проекте... получаеться действительно мое преложение не может быть просто перенесенно на другой контейнер... пускай даже с томкатом шестым но другой сервер... придеться лесть в настройки самого сервера...? плюс добавлять в lib  томката драйвера нужно свои?


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

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

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


 




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


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

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