Пулы Соединений с БД
Если Вы хотите использовать объект database, Вам не нужно создавать его. Это предопределённый объект, предоставляемый машиной выполнения JavaScript. Если Вам нужны дополнительные возможности класса DbPool, Вы создаёте экземпляр класса DbPool и соединяете этот объект с конкретной БД, которая создаёт пул соединений.
Вы можете создать общий DbPool-объект и специфицировать позднее информацию соединения (используя метод connect), или можете специфицировать информацию соединения при создании пула. Общий DbPool-объект не имеет никаких доступных соединений в момент его создания. Исходя из этого, Вам может понадобиться установить соединение при создании этого объекта. Если Вы используете объект database, Вы всегда обязаны устанавливать соединение путём вызова метода database.connect.
connect (dbtype, serverName, userName, password,
databaseName, maxConnections, commitFlag);
При создании соединения Вы можете специфицировать следующую информацию, либо при создании DbPool-объекта, либо при вызове метода connect объекта DbPool или database:
-
dbtype: Тип БД. Обязан быть "DB2", "INFORMIX", "ODBC", "ORACLE" или "SYBASE". (Для приложений, запущенных на сервере Netscape FastTrack Server, обязан быть "ODBC".)
-
serverName: Имя сервера БД, с которым устанавливается соединение. Имя сервера обычно назначается при установке БД. В случае сомнений, узнайте у администратора БД или системы.
-
username: Имя пользователя, соединяющегося с БД.
- password: Пароль пользователя.
-
databaseName: Имя БД на данном сервере, с которой устанавливается соединение. Если Ваш сервер баз данных поддерживает множество БД на одном сервере, предоставьте имя используемой БД. Если предоставлена пустая строка, производится соединение с БД по умолчанию. Для Oracle, ODBC и DB2 Вы всегда обязаны предоставлять пустую строку.
-
maxConnections: (Optional/Необязательный Параметр) Допустимое количество соединений в пуле БД. Помните, что клиентская лицензия Вашей БД, возможно, специфицирует максимальное количество соединений. Не устанавливайте этот параметр в число, превышающее количество, допустимое по лицензии. Если Вы не предоставляете этот параметр для объекта DbPool, он имеет значение 1. Если Вы не предоставляете этот параметр для объекта database, его значением будет то, что Вы специфицировали в Application Manager как значение для Built-in Maximum Database Connections/Встроенное Значение Максимального Количества Соединений с БД, когда устанавливали приложение. (См. ). См. в разделе о том, что Вы должны предусмотреть при установке этого параметра.
-
commitflag: ( Необязательный Параметр) Булево значение, указывающее, подтвердить ли открытую транзакцию или выполнить её откат при закрытии соединения. Специфицируйте true для подтверждения открытой транзакции и false - для выполнения отката. Если этот параметр Вами не предоставлен для объекта DbPool, его значением будет false. Если этот параметр не предоставлен для объекта database, значением параметра будет true.
Например, следующий оператор создаёт новый пул БД из 5 соединений с БД Oracle. В этом пуле неподтверждённые транзакции откатываются:
pool = new DbPool ("ORACLE", "myserver1", "ENG", "pwd1", "", 5);
Приложение-образец dbadmin позволяет Вам экспериментировать с соединениями с различными БД как разным пользователям.
Для многих приложений Вы, возможно, захотите выполнять совместное использование набора соединений несколькими клиентами, или чтобы соединение захватывало несколько клиентских запросов. В этих случаях Вы должны устанавливать соединение на начальной странице Вашего приложения. Это позволит исключить возможные проблемы в тех случаях, когда отдельные клиенты выполняют совместные соединения с БД.
Однако для некоторых приложений каждый клиент должен выполнять своё собственное соединение. Как сказано в разделе клиенты могут совместно использовать объекты. Если это так, убедитесь, что блокировки используются для управления совместным использованием данных, как указано в разделе .
В следующей таблице показаны методы объектов DbPool и database для обслуживания пула соединений. (Объект database использует другие методы, рассмотренные ранее, для работы с соединением с БД.)
connect | Соединяет пул с определённой конфигурацией БД и пользователя. |
connected | Проверяет, соединён ли пул и все его соединения с базой данных. |
connection | (Только DbPool) Запрашивает доступный Connection-объект из пула. |
disconnect | Отсоединяет все соединения пула от БД. |
majorErrorCode | Главный код ошибки, возвращаемый сервером БД или ODBC. |
majorErrorMessage | Главное сообщение об ошибке, возвращаемое сервером БД или ODBC. |
minorErrorCode | Вторичный код ошибки, возвращаемый библиотекой продавца. |
minorErrorMessage | Вторичное сообщение об ошибке, возвращаемое библиотекой продавца. |