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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> настройка MySQL DataSource, работа с готовым ConnectionPool 
:(
    Опции темы
UnicornMirage
Дата 1.3.2006, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте!
сейчас изучаю принципы работы с БД через пул соединений. использую MySQL и его родной драйвер mysql-connector-java-3.1.10-bin.jar

прочитал статью Connection Pool немного понял принцип работы и решил ознакомиться с уже готовыми решениями. на сайте Understanding Connection Pooling прочитал про использование DataSource но не удалось понять как работает JNDI (правильно ли я понял что не настроил его правильно?) при выполнении примера, указанного в Understanding Connection Pooling вываливается ошибка

Код

Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)


указывающая на строку примера
Код

         /*
          * Lookup the DataSource, which will be backed by a pool
          * that the application server provides. DataSource instances
          * are also a good candidate for caching as an instance
          * variable, as JNDI lookups can be expensive as well.
          */

        DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");


подскажите пожалуйста какую строку в качестве параметра нужно передать чтобы настроить этот DataSource?

у меня на localhost работает MySQL, на нем база bd_test, пользователь guest, пароль guest

заранее очень благодарен если кто поможет разобраться!!
PM MAIL   Вверх
tux
Дата 1.3.2006, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Привет!
Вот здесь тема JNDI достаточно подробно обсуждалась - http://forum.vingrad.ru/index.php?showtopic=83074.

Что касается твоего примера. Тот способ получения DataSource, который у тебя используется характерен для приложений, работающих внутри веб-контейнера. Чтобы настроить источник данных, тебе надо описать его в файлах конфигурации веб-контейнера (сервера приложений), причем для разных серверов настраивается это по-разному. В общем нужно знать что ты используешь.

Если речь идет не о веб-приложении, можно посмотреть, во-первых, вот эту статью - http://java.sun.com/developer/onlineTraini...ok/conpool.html. Там приведена реализация очень простого пула соединений. В общем-то полезно увидеть как это работает. Во-вторых, есть несколько реализаций пулов соединений, не связанных с серверами приложений. Например, такие:В пакетах есть примеры использования и документация.

Если нужен все-таки сервер приложений, напиши какой.

PM MAIL Skype GTalk Jabber YIM   Вверх
UnicornMirage
Дата 1.3.2006, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



большое спасибо за информацию.. сейчас ее читаю.

пул соединений планирую использовать в своем сервлете, который выполняется в Resin 3.0.17
PM MAIL   Вверх
tux
Дата 1.3.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Вот готовый рецепт использования источника данных в сервлете для Resin - http://www.caucho.com/resin-3.0/db/cookbook/servlet.xtp. Параметры настройки пула соединений описаны здесь - http://www.caucho.com/resin-3.0/db/config....e-Configuration. Если параметры по умолчанию устраивают, тогда их можно не задавать.

Это сообщение отредактировал(а) tux - 1.3.2006, 14:22
PM MAIL Skype GTalk Jabber YIM   Вверх
Sherst
Дата 2.3.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



to tux
А есть ли такие рецепты только для Tomcat ?

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


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Есть конечно. Для этого нужно
1. в TOMCAT_HOME/conf/server.xml описать источник данных:
Код

<Context path="/application" debug="3">

    <Resource name="jdbc/DefaultDS" auth="Container" scope="Shareable"
        type="javax.sql.DataSource" />
    <ResourceParams name="jdbc/DefaultDS">
        <parameter>
            <name>factory</name>
            <value>
                org.apache.commons.dbcp.BasicDataSourceFactory
            </value>
        </parameter>
        <parameter>
            <name>driverClassName</name>
            <value>com.mysql.jdbc.Driver</value>
        </parameter>
        <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=cp1251</value>
        </parameter>
        <parameter>
            <name>username</name>
            <value>guest</value>
        </parameter>
        <parameter>
            <name>password</name>
            <value>guest</value>
        </parameter>
        <parameter>
            <name>maxActive</name>
            <value>20</value>
        </parameter>
        <parameter>
            <name>maxIdle</name>
            <value>10</value>
        </parameter>
        <parameter>
            <name>maxWait</name>
            <value>-1</value>
        </parameter>
    </ResourceParams>
</Context>

2. в web.xml веб-приложения пишем следующее:
Код

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/DefaultDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

3. в программном коде:
Код

Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/DefaultDS");
Connection conn = ds.getConnection();

Можешь посмотреть еще статью от производителя по этому поводу - http://tomcat.apache.org/tomcat-5.0-doc/jn...ples-howto.html

Это сообщение отредактировал(а) tux - 3.3.2006, 03:05
PM MAIL Skype GTalk Jabber YIM   Вверх
Sherst
Дата 3.3.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



to tux
Сенькс. Буду разбираться.
PM MAIL   Вверх
rezzz
Дата 27.1.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день.. помогите пожалуйста разобраться с ConnectionPool

tux,

не могли бы более подробно объяснить как использовать ваш пример?!

Система работает под apache 4.0, бд - MS SQL Server 2005.

В server.xml для системы прописано только 
<!-- Tomcat Root Context -->
   <Context path="" docBase="ROOT\DOSEE_docum" debug="0" reloadable="true" />

система использует БД c названием dosee_db...

вопрос.. чтобы организовать пул нужно в примере изменить название бд на dosee_db
и код Java куда следует вставлять?!

нужны еще какие-нибудь модули... ?


Если не затруднит ответьте пожалуйста.

tux
PM MAIL   Вверх
tux
Дата 27.1.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



А как приложение разворачивается на Tomcat?
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0769 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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