Drupal uses pconnect() when connecting to the database for a slight performance improvement if PHP is configured to allow pconnect.
But there are times when PHP should be configured to disallow persistent connections to the database.
Each apache process can potentially obtain a persistent connection to each database the server is hosting. If there are lots of apache processes and lots of databases it is common to see the database throwing "too many connections" errors maybe like this:
PDOException: SQLSTATE  User foo already has more than 'max_user_connections' active connections in lock_may_be_available()
If this occurs there are a couple of options:
- Increase the number of available connections the database will allow. If most connections are idle most of the time, this is a viable solution.
- Disable pconnect via the
XXsql.allow_persistent = Offattribute in your php.ini. The performance hit from this setting is very slight.