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

Поведение этих функций зависит от установок в 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, который ожидался, и языковой стандарт нельзя изменить.

Узнать больше об идентификаторе CCSIDs операционной системы 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.

add a note add a note

User Contributed Notes 2 notes

up
1
yoshida at zend dot co dot jp
13 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
11 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