Афоризм
Наша свобода напоминает светофор, у которого горят три огня сразу.
Михаил Жванецкий
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Настройка Datasource в JBoss

При разработке WEB-приложения альтернативой применения JDBC-подключения к серверу БД можно выбрать класс DataSource, использующего JNDI (Java Naming and Directory Interface). В статье рассматривается вопрос настройки DataSource в сервере приложений JBoss для подключения к серверу БД Oracle. Более подробную информацию о службе имен и каталогов JNDI можно найти на нашем сайте здесь.

Использование JNDI для получения DataSource в java-приложении

Использование JNDI в программе, как правило, ограничивается всего несколькими строками. Типичным таким примером является подключение к серверу БД с использованием DataSource. Следующий код позволяет подключиться к источнику данных, привязанному к имени "java:jboss/datasources/slon". Этот источник данных определен в JBoss, и ниже будет показано, как его настроить.

import java.sql.Connection;

import javax.sql.DataSource;
import java.sql.SQLException;

import javax.naming.InitialContext;
import javax.naming.NamingException;
...
private  DataSource  ds  = null;
private  Connection  con = null;
...
try {
    InitialContext ctx = new InitialContext();
    ds = (DataSource) ctx.lookup("java:jboss/datasources/slon");
    if (ds != null) {
        con = ds.getConnection();
} catch (NamingException e) {
} catch (SQLException e) {}

Работа с JNDI всегда начинается с создания объекта InitialContext (или InitialDirContext в случае работы со службой каталогов). Конструктор этого объекта может принимать параметры, определяющие, к какой службе и каким образом подключаться. В данном случае параметры в конструктор не передаются, поэтому происходит подключение к службе имен сервера JBoss. Затем вызовом метода lookup() из службы имен извлекается объект DataSource, соответствующий имени "java:jboss/datasources/slon".

Класс DataSource предоставляет соединение с сервером БД в виде класса, реализующего интерфейс java.sql.Connection. То есть, DataSource управляет соединением с базой данных.

Какие преимущества даёт использование DataSource? Основное, что мы видим, так это отсутствие параметров учетной записи (login/password) и сервера БД (host, port). То есть, разработчики могут отлаживаться на тестовом сервере, а на рабочем сервере Заказчика WEB-приложение разместит уже знающий администратор/специалист.

Настройка DataSource в JBoss

Для настройки DataSource в JBOSS необходимо проделать 3 шага :

  1. Разместить JDBC-библиотеку подключения к серверу БД;
  2. Настроить файл конфигурации модуля подключения к серверу БД;
  3. Настроить DataSource в файл конфигурации standalone.xml.

На первом шаге была создана директория ${JBOSS_HOME}/modules/com/oracle/ojdbc6/main, в котором разместился файл ojdbc6.jar.

В этой же директории ${JBOSS_HOME}/modules/com/oracle/ojdbc6/main был создан файл module.xml со следующим контентом.

<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

На следующем шаге в раздел <datasources> файла ${JBOSS_HOME}/standalone/configuration/standalone.xml были внесен следующий код, в котором определялись параметры DataSource :

<subsystem xmlns="urn:jboss:domain:datasources:1.0">
    <datasources>
        <datasource jta="false" jndi-name="java:jboss/datasources/slon"
                        pool-name="slon" enabled="true" use-ccm="false">
            <connection-url>
                jdbc:oracle:thin:@[host]:1521:[sid]
            </connection-url>
            <driver-class>oracle.jdbc.OracleDriver</driver-class>
            <driver>oracle</driver>
            <pool>
                <min-pool-size>5</min-pool-size>
                <max-pool-size>20</max-pool-size>
                <flush-strategy>FailingConnectionOnly</flush-strategy>
            </pool>
            <security>
                <user-name>slon</user-name>
                <password>slon</password>
            </security>
            <validation>
                <validate-on-match>false</validate-on-match>
                <background-validation>false</background-validation>
            </validation>
            <timeout>
                <idle-timeout-minutes>10000</idle-timeout-minutes>
            </timeout>
            <statement>
                <share-prepared-statements>
                    false
                </share-prepared-statements>
            </statement>
        </datasource>
    </datasources>
</subsystem>

Параметры настройки DataSource :

  • connection-url — строка подключения к серверу БД;
  • driver-class — класс JDBC драйвера;
  • driver — наименование драйвера;
  • pool — настройки пула соединений
  • min-pool-size — минимальный размер пула
  • max-pool-size — максимальный размер пула
  • security — настройки аутентификации
  • user-name — имя пользователя БД
  • password — пароль

После старта JBoss (сервер Oracle также запущен) в консоли должна появиться следующая информация :


11:13:50,604 INFO  [org.jboss.as.connector.subsystems.datasources] \
      ServerService Thread Pool -- 27) JBAS010403: Deploying \
      JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
11:13:53,163 INFO  [org.jboss.as.connector.subsystems.datasources] \
      (MSC service thread 1-1) JBAS010400: 
      Bound data source [java:jboss/datasources/slon]
 
  Рейтинг@Mail.ru