Я пытаюсь заставить пул соединений работать с использованием PHP / PDO с драйвером UnixODBC под названием iSeries Access для Linux.
Я не устанавливаю PDO :: ATTR_PERSISTENT в своем конструкторе PDO, так как хочу использовать пул, а не постоянство (я нахожусь в среде PHP-CGI).
Использование раздела «Пул подключений» http://www.ibm.com/developerworks/systems/library/es-linux_bestpract.html Я разместил
Pooling = Yes
в моем odbc.ini и
CPTimeout = 600
в моем odbcinst.ini
Тем не менее, кажется, что драйвер ODBC не пул соединений потому что каждое обновление страницы генерирует связанное с CPIAD09 сообщение об установлении входящего соединения.
Вот мои полные файлы конфигурации ODBC:
==== odbc.ini ====
[AS400]
Description = Production AS/400 Database
Driver = iSeries Access ODBC Driver
System = XXX.XXX.X.X
UserID = XXXXXXXX
Password = XXXXXXXX
Naming = 0
DefaultLibraries = USERLIB, BPCSF, ADV, WEB, RITAUSR
Database =
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 0
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0
DSN = AS400
Pooling = Yes
а также
==== odbcinst.ini ====
[iSeries Access ODBC Driver]
Description = iSeries Access for Linux ODBC Driver
Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
NOTE1 = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2 = the following Driver64/Setup64 keywords will provide that support.
Driver64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1
CPTimeout = 600
Увеличение количества подключений всегда будет продолжаться.
Pooling = Yes
Это должно идти в [ODBC] в вашем odbcinst.ini, а НЕ в вашем файле odbc.ini
CPTimeout = 600
Поместите это в свой odbc.ini