Настройка во время выполнения

Поведение функций зависит от установок в файле php.ini.

ibm_db2 Опции настройки
Имя По умолчанию Место изменения Список изменений
ibm_db2.binmode "1" INI_ALL  
ibm_db2.i5_all_pconnect "0" INI_SYSTEM Доступно с ibm_db2 1.6.5.
ibm_db2.i5_allow_commit "0" INI_SYSTEM Доступно с ibm_db2 1.4.9.
ibm_db2.i5_blank_userid "0" INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.i5_char_trim "0" INI_SYSTEM Доступно с ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc "0" INI_SYSTEM Доступно с ibm_db2 1.5.0.
ibm_db2.i5_guard_profile "0" INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid "0" INI_SYSTEM Доступно с ibm_db2 1.8.0.
ibm_db2.i5_job_sort "0" INI_SYSTEM Доступно с ibm_db2 1.8.4.
ibm_db2.i5_log_verbose "0" INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect "0" INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid "0" INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem NULL INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.i5_sys_naming "0" INI_SYSTEM Доступно с ibm_db2 1.9.7.
ibm_db2.instance_name NULL INI_SYSTEM Доступно с ibm_db2 1.0.2.

Краткое разъяснение конфигурационных директив.

ibm_db2.binmode int

Опция управляет в PHP-приложении режимом конвертации из бинарных данных и обратно.

  • 1 (DB2_BINARY)
  • 2 (DB2_CONVERT)
  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect int

Опция делает все соединения постоянными в операционной системе IBM i. По существу, вызовы функции db2_connect() прозрачно становятся вызовами функции db2_pconnect(). Значение по умолчанию — 0. Опция полезна, если постоянные соединения работают быстрее. В новых приложениях опцию не указыают.

  • 0 — разрешается устанавливать постоянные и непостоянные соединения.
  • 1 — Все соединения постоянны.

ibm_db2.i5_allow_commit int

Опция управляет режимом изоляции транзакций. По умолчанию эта опция равна 0, поэтому контроль обязательств не будет использован. Эту опцию можно переопределить при подключении, если ключ массива i5_commit установлен в переданном в функцию db2_connect() или db2_pconnect() массиве настроек подключения.

  • 0 — контроль обязательств не используется.
  • 1 — read uncommitted, возможно грязное чтение.
  • 2 — read committed, грязное чтение не возможно.
  • 3 — repeatable read, грязное и неповторяющееся чтение не возможны.
  • 4 — serializeable, грязное чтение, неповторяющееся чтение и фантомы не возможны.

ibm_db2.i5_blank_userid int

Опция определяет, разрешать ли пустой идентификатор пользователя в операционной системе IBM i. Значение по умолчанию — 0. В отличие от опции ibm_db2.i5_ignore_userid эта опция не заставляет все идентификаторы пользователей быть пустыми или изменять поведение задания, но просто разрешает передавать пустой идентификатор пользователя для подключения к СУБД Db2 в качестве текущего пользователя.

  • 0 — Не разрешать передачу пустого идентификатора пользователя.
  • 1 — Разрешать передачу пустого идентификатора пользователя.

ibm_db2.i5_char_trim int

Опция определяет, требуется ли обрезать концы строк в операционной системе IBM i. Это повышает удобство, поскольку во многих таблицах фиксированные размеры столбцов, дополненные пробелами. Значение этой опции по умолчанию — 0.

  • 0 — Столбцы не обрезаются.
  • 1 — Пробелы в конце столбцов возвращаемых символов будут удалены.

ibm_db2.i5_dbcs_alloc int

Опция влияет на стратегию распределения внутреннего буфера в операционных системах IBM i. Значение по умолчанию — 0. Если эта опция установлена, выделяются буферы большего размера, если база данных недооценивает размер строки при преобразовании между кодировками. Для этой опции нужно в шесть раз больше памяти для буферов (чтобы учесть предельно возможные последовательности UTF-8), но может быть нужна, если возвращаются обрезанные данные.

  • 0 — Выделяется минимальный размер буферов.
  • 1 — Выделяется максимальный размер буферов.

ibm_db2.i5_guard_profile int

Опция проверяет, был ли переключён профиль пользователя базы данных при подключении к постоянному соединению с базой данных в операционной системе IBM i, и если так, отключается от базы данных. По умолчанию для этой опции установлено значение 0.

  • 0 — Не проверять смену профилей.
  • 1 — Проверять смену профилей, и если так, — отключать.

ibm_db2.i5_log_verbose int

Опция устанавливает, будут ли диагностические сообщения SQL наподобие предупреждений и ошибок отправляться в журнал ошибок PHP в операционной системе IBM i. Обычно в PHP-лог отправляется только короткое сообщение о сбое (например, «выполнение выражения не удалось»), поскольку по умолчанию значение этой опции установлено как 0. Обратите внимание, что всё ещё можно и даже нужно вызывать функцию db2_stmt_errormsg() вручную как часть проверки того, не завершится ли функция неудачно.

  • 0 — Регистрируются только короткие сообщения.
  • 1 — В дополнение к коротким сообщениям регистрируются диагностические сообщения SQL.

ibm_db2.i5_ignore_userid int

Опция игнорирует идентификатор пользователя при подключении к базе данных при работе в операционной системе IBM i и запускает функционал SQL/CLI внутри задания PHP, а не отдельного задания. По умолчанию значение опции равно 0. При включении опция больше не использует отдельное задание сервера базы данных и использует только текущий профиль пользователя для базы данных, игнорируя имя пользователя и пароль, которые передали в функции db2_connect() и db2_pconnect().

  • 0 — Использует заданные учётные данные и задание сервера SQL/CLI.
  • 1 — Использует пустые учётные данные и запускает SQL/CLI в задании PHP.

ibm_db2.i5_job_sort int

Управляет опцией сортировки заданий в операционной системе IBM i. Значение по умолчанию — 0. Это соответствует значению атрибута SQL/CLI SQL_ATTR_CONN_SORT_SEQUENCE в IBM i.

  • 0 — Применяет настройку сортировки *HEX, сортировка по байтам.
  • 1 — Применяет последовательность сортировки заданий, которую установили для PHP-задания.
  • 2 — Применяет последовательность сортировки заданий, которую установили для задания базы данных.

ibm_db2.i5_max_pconnect int
Опция влияет на количество повторных запросов через постоянное соединение при работе в операционной системе IBM i. Значение по умолчанию — 0, что означает — постоянное соединение доступно для повторных запросов. Параметр помогает обойти проблемы долгоработающего задания базы данных — при утечке памяти в процедуре, но это явно не долгосрочное решение.
ibm_db2.i5_override_ccsid int
Идентификатор PASE CCSID для преобразования символов из кода EBCDIC в операционной системе IBM i. По умолчанию — 0, который выберет значение по умолчанию идентификатор CCSID для задания окружения PASE, который будет взят из настроек языкового стандарта окружения PASE. Например, установка для этой опции значения 1208 будет использовать кодировку UTF-8. Опцию изменяют, только если CCSID-идентификатор задания PASE-окружения не соответствует идентификатору CCSID, который ожидался, и языковой стандарт нельзя изменить. Подробнее о CCSID-идентификаторах в операционной системы IBM i рассказывает » документация IBM. О сопоставлении языковых стандартов в окружении PASE системы IBM i с идентификаторами CCSID рассказывает другая » страница документации IBM.
ibm_db2.i5_sys_naming int

Опция управляет режимом именования при подключении к системе IBM i. Значение по умолчанию — 0. Режим именования влияет на способ разрешения имён и разрешённый синтаксис имён. Если задано значение 0, для уточнения имён она будет использовать точки, а для разрешения имён — библиотеку по умолчанию или идентификатор пользователя. Если задано значение 1, для уточнения имён она будет использовать слеши, а для разрешения имён — список библиотек заданий.

  • 0 — Применять режим именования SQL («SCHEMA.TABLE»).
  • 1 — Применять режим системного именования («LIBRARY/FILE»).

О режимах именования в системе IBM i рассказывает » документации IBM.
ibm_db2.i5_servermode-subsystem string
Опция изменяет подсистему, под которой выполняются задания сервера базы данных системы IBM i. Значение по умолчанию — null, поэтому задания для QSQSRVR-заданий выполняются в подсистеме по умолчанию.
ibm_db2.instance_name string

В операционных системах Linux и UNIX опция определяет имя экземпляра для каталогизированных подключений к базе данных. Значение по умолчанию — null. Значение опции переопределяет настройку переменной окружения DB2INSTANCE.

Опция игнорируется в операционных системах Windows.
Добавить

Примечания пользователей 2 notes

up
1
yoshida at zend dot co dot jp
15 years ago
The explanation of ibm_db2.i5_dbcs_alloc seems to be hard to understand for me.

In ibm_db2 extension inside, 6 times length of string column is allocated if i5_dbcs_alloc value is 1.
The allocated area is used for conversion between UTF-8 and EBCDIC character encodings.

By the definition of UTF-8, letter length can need 6 bytes at the maximum.

Note:
In the case of a long column, allocated size may be beyond the upper limit defined in DB2 because original column is made by 6 times.  It can cause result data becomes null.
up
0
Satoru Yoshida
13 years ago
The explanation of ibm_db2.i5_allow_commit seems to be slightly difficult to understand for me.

I think it would be better to replace "no commit" with "can not use commitment control" or "do not allow transaction", and "allow commit" would be changed into 
"can use commitment control" or "allow transaction" , Thanks.
To Top