База данных SQL

Драйвер базы данных SQL обеспечивает метод контроля любой JDBC-совместимой системы управления базами данных (СУБД). Практически все современные серверы базы данных предоставляют Java Database Connectivity (JDBC) драйверы, таким образом, управление и контроль над ними может осуществляться через SberMobile.

 Драйвер обладает следующими возможностями:

  • Проверка доступности и статуса сервера базы данных;

  • Выполнение запросов выбора и обеспечение доступа к результатам запроса;

  • Выполнение быстро формирующихся запросов вставить/обновить/удалить.

Необходимо добавить хотя бы один "проверочный" запрос для проверки работоспособности базы данных. Если запросы не добавляются, драйвер установит соединение при первом цикле синхронизации и ничего не сделает во время последующих синхронизаций для предоставления данных о доступности и работоспособности базы данных.

Всегда можно использовать очень простой тестовый запрос, такой как SELECT 1 или SELECT 1 FROM table.

Драйвер использует пул соединения, чтобы улучшить производительность благодаря возможности параллельно выполнять несколько запросов. См. свойства "Пул соединения..." в разделе Свойства соединения БД ниже.

Возможно протестировать объединенные соединения, используя две расширенные настройки: Проверка тестового соединения и Тестовый период незадействованного соединения. Эти настройки можно использовать либо вместе, либо независимо друг от друга, чтобы минимизировать вероятность просроченного или разорванного соединения. Тестирование отключено по умолчанию. Не изменяйте эти настройки до тех пор, пока вам это не понадобится, тогда вы поймете, что делать.

Настройка Максимальное свободное время определяет, когда объединенное свободное соединение отклонено. Эта настройка должна быть установлена на значение ниже, чем настройка wait_timeout соответствующего сервера SQL (для MySQL, если wait_timeout не находится непосредственно в файле конфигурации (my.ini or my.cnf), его значение по умолчанию 8 часов).

Добавление драйверов базы данных JDBC

Чтобы позволить SberMobile Server загружать сторонний драйвер базы данных JDBC, поставляемый вашим поставщиком сервера базы данных, файл JAR (Java Архив), содержащий этот драйвер, должен добавляться к classpath сервера в поддиректорию /lib инсталляции SberMobile Server или путем использования файла свойств загрузчика SberMobile Server.

Драйвер базы данных SQL может также использоваться для соединения с источниками данных Open Database Connectivity (ODBC) через мост JDBC-ODBC, являющейся частью инсталляции SberMobile Server. В этом случае не добавляется дополнительных драйверов. The Database URL syntax to use is jdbc:odbc:odbc_data_source_name.

Версия java

Большинство дистрибьютеров SberMobile Server включают в себя связанную JVM. Любые виртуальные машины Java VMs, установленные в ОС, не используются по умолчанию. Поэтому любой пользовательский драйвер JDBC должен быть скомпилирован для версии Java, которая используется на сервере. Эту версию можно найти в системных требованиях.

Информация о драйвере

ID плагина драйвера:

com.tibbo.linkserver.plugin.device.database

Общие настройки

Не определены.

Настройки уровня пользователя

Не определены.

Свойства device

Свойства подключения к базе данных

Свойство

Описание

URL база данных            

Данная строка базы данных определяет тип базы данных, путь (локальный или сетевой) к базе данных для выполнения запросов и любых дополнительных      опций. Чтобы установить требуемое значение для выбранного вами драйвера базы данных JDBS, пожалуйста, обратитесь к прилагаемой к нему документации.

Класс драйвера

Имя класса Java драйвера JDBC. Можно найти в документации драйвера JDBC. Требуется только для драйверов, которые не совместим с JDBC4.

Имя пользователя   базы данных

Данное свойство определяет, какое имя пользователя будет использоваться  для входа на сервер базы данных.

Пароль базы данных

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

Дополнительные свойства

Таблица, содержащая дополнительные свойства соединения базы данных. В таблице две колонки: Свойство и Значение. Список поддерживаемых свойств можно найти в документации драйвера JDBC.

Минимальный размер запросов пула

Минимальное число соединений пула будет сохраняться в любое данное время.

Максимальный размер запросов пула

Максимальное число соединений пула будет сохраняться в любое данное время.

Увеличение пулов запроса

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

Таймаут получения соединения из пула

Устанавливает максимальное время, в течение которого устройство базы данных SQL ожидает нового соединения с базой данных. Значение по умолчанию - 0, что означает бесконечное время ожидания.

Таймаут потерянного соединения

Устанавливает максимальное время, в течение которого любое соединение с базой данных может оставаться открытым. При достижении значения таймаута для соединения оно принудительно закрывается. Значение по умолчанию равно 0, что означает отсутствие ограничений на время соединения. Если задано ненулевое значение, оно должно быть больше, чем ожидается, что любое соединение с базой данных будет использоваться, иначе активно используемые соединения могут быть закрыты.

Максимальное время ожидания

Время, отброшенное перед объединенным свободным соединением (0 обозначает, что свободное соединение никогда не истечет).

Проверка тестового соединения

Если установлен на "истина", тест соединения будет произведен асинхронно при каждой проверке соединения, чтобы проверить, что соединение валидно.

Период теста свободного соединения

Выделенные свободные соединения будут тестироваться асинхронно каждый определенный период времени (0 значит никогда).

Запросы

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

Поле

Описание

Имя

Имя переменной настройки устройства, содержащей результат запроса.

Описание

Описание переменной настройки устройства, содержащей результат запроса.

Выражения

Заставляет обрабатывать запросы Чтение и Запись в виде выражений. Данные выражения должны быть реальными SQL запросами, разрешенными в базе данных.

Запрос для чтения

Текст SQL запроса SELECT или текст выражения, если установлен флажок Выражения.

Результат выполнения запроса доступен в SberMobile в качестве переменной настройки устройства.

Запрос для записи

Текст SQL запроса INSERT/UPDATE/DELETE или текст выражения, если установлен флажок Выражения. Если данное поле не пустое, переменная, содержащая результат выполнения запроса на чтение, будет доступна для записи (изменения).  Данная модификация запустит выполнение запроса на запись.

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

Активы device

Активы не поддерживаются этим драйвером.

Настройки device

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

Помимо этого создается переменная статистики базы данных, которая содержит следующие поля:

  • Имя базы данных

  • Версия базы данных

  • Имя драйвера базы данных

  • Версия драйвера базы данных

Операции device

Выполнение запроса

Данное действие позволяет вам выполнять произвольные запросы базы данных. Поддерживаются запросы "выбрать" и "обновить".

Поля входа функции:

Поле

Описание

Запрос

Текст запроса. Может содержать ссылки параметра запроса, встроенные как символ ?.

Обновление

Флажок, который определяет, это запрос "выбрать" или "обновить".

Параметры

Таблица параметров запросов. Значение ячейки в первом ряду и в первой колонке будет заменять первый параметр запроса (первое появление символа ? в тексте запроса), значение ячейки в первом ряду и второй колонке идет во второй параметр и так далее.

События device

Драйвер не предоставляет события.

Подключение

 Данный драйвер приводит устройство в режим Онлайн, если JDBC соединение было выполнено успешно.

Правила преобразования типа данных

Когда драйвер JDBC, который выполняет запрос, преобразовывает типы данных SQL в типы JDBC, тогда SberMobile Server преобразовывает типы JDBC в типы поля SberMobile, следуя правилам:

Тип JDBC

Тип поля

TINYINT

Integer

SMALLINT

Integer

INTEGER

Integer

BIGINT

Long

VARCHAR

String

BOOLEAN

Boolean

BIT

Boolean

NUMERIC

Long

REAL

Float

DOUBLE

Double

DECIMAL

Float field

TIMESTAMP

Date

LONGVARCHAR

Data Table

LONGNVARCHAR

Data Table

BLOB

Data Table

LONGVARBINARY

Data Block

Информацию о преобразованиях между типами данных SQL и типами JDBC можно найти в документации драйвера JDBC. Эти соответствия влияют на конечные типы во время выполнения запросов.

В некоторых случаях отдельный тип данных SQL может быть представлен разными форматами поля SberMobile. Например, драйвер JDBC для Microsoft SQL Server представляет nvarchar(n) как VARCHAR и nvarchar(max) как LONGNVARCHAR (см. подробнее в статье Использование дополнительных типов данных). А SberMobile Server преобразует эти типа в строковое поле и поле таблицы данных соответственно.