我正在尝试使用PHP/PDO和名为iSeries Access for Linux的UnixODBC驱动程序来实现连接池。
我没有在我的PDO构造函数中设置PDO::ATTR_PERSISTENT,因为我想使用池而不是持久性(我在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
这需要在odbcinst.ini中的[ODBC]下,而不是在ODBC.ini文件下
CPTimeout = 600
将其放入odbc.ini