Я пытаюсь подключить пул соединений, используя 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.XX 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