Инструкция по установке и настройке СУБД Ред База Данных

Предварительная подготовка

  1. Создать БД при помощи утилиты Firebird (утилита isql https://firebirdsql.org/file/documentation/html/en/firebirddocs/qsg5/firebird-5-quickstartguide.html#qsg5-about) или DBeaver.

  2. Создать пользователей и выдать им необходимые права доступа.

  3. Создать тестовую таблицу:

    CREATE TABLE TEST (
    TEST VARCHAR(100)
    );
  4. Добавить в таблицу тестовую запись:

    INSERT INTO TEST
    VALUES('TEST');

Установка бандла

  1. Скопировать файл reddatabase-jdk11-5.0.29.jar в хранилище артефактов по пути: ru.red-soft.jdbc/reddatabase-jdk11/5.0.29

  2. Установить OSGI-бандл:

    install 'wrap:mvn:ru.red-soft.jdbc/reddatabase-jdk11/5.0.29$Bundle-SymbolicName=reddatabase&Require-Capability=osgi.ee&Bundle-Version=5.0.29&Bundle-Name=REDDB-JDBC'

Создание JDBC коннекции

  • Создать JDBC коннекцию. Подробнее о том, как создать JDBC коннекцию.

    jdbc create
    • Заполнить параметры подключения, указав:

      • Database connection URL:

        jdbc:firebirdsql://localhost:3050//var/lib/red_database/entaxy-cache.rdb
      • Driver class name:

        org.firebirdsql.jdbc.FBDriver
    • Database username — имя пользователя, созданного на этапе подготовки БД.

    • Database password — пароль пользователя.

    • Остальные обязательные параметры — в соответствии с используемой конфигурацией.

Создание профиля и подключение выходного JDBC коннектора

  • Создать профиль системы с System Name - reddb. Подробнее о том, как создать профиль.

    reddb profile connector
  • Добавить к профилю выходной JDBC коннектор с классификатором reddb. Подробнее о том, как создать коннектор.

    • В точке кастомизации pre-output создать маршрут, формирующий SQL-запрос select * from test:

      <?xml version="1.0" encoding="UTF-8"?>
      <entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">
          <setProperty name="NTX_connector_preOutput">
              <constant>true</constant>
          </setProperty>
          <m:log message="Before sql select" id="log-1268"/>
          <setBody>
              <constant>select * from test</constant>
          </setBody>
      </entaxy:object-route>
  • В разделе Маршруты, профиля reddb, создать маршрут на базе компонента Таймер и отредактировать его следующим образом:

    <?xml version="1.0" encoding="UTF-8"?>
    <entaxy:common-route id="common-route-1274" xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">
        <!-- PLACE YOUR CUSTOM Entaxy/Camel CODE HERE -->
        <m:log message="in route ${routeId}" loggingLevel="INFO"/>
        <to uri="system:reddb"/>
        <m:log message="SQL Body: ${body}" id="log-1268"/>
        <m:respond now="true" continue="false"/>
    </entaxy:common-route>

Проверка

После запуска таймера в логах должны появиться данные из БД:

16:24:08.515 INFO [Camel (profile-reddb-context) thread #124 - timer://reddb-timer]  in route reddb__reddb-timer
16:24:08.518 INFO [Thread-472]  Before sql select
16:24:09.520 INFO [Camel (profile-reddb-context) thread #124 - timer://reddb-timer]  SQL Body: [{TEST=TEST}, {TEST=TEST}]