Пытаюсь понять persistent connection(PDO)...

danilabergin

Новичок
Пытаюсь понять persistent connection(PDO)...

php под никсами, собран с freetds,pdo...

делаем:
PHP:
$db_connection = new PDO('dblib:host=dbsrv:1433;dbname=db1', 'sa', '', array(PDO::ATTR_PERSISTENT => true));
Далее, условно говоря, в других скриптах,- "поддерживаем" данное уже созданное соединение, таким же образом.

Суть моего вопроса, как долго будет жить этот pconnect? Каким параметром определяется timeout для этого коннекта, и что самое важное, кем?
Нашел в php.ini:
;mssql.connect_timeout = 55
;mssql.timeout = 60
Но это же, mssql_* pdo работает, через dblib ?!

Как это было...

1. Пользователь запрашивает /index.php
- делается `первый` pconnect
- создается времен. тбл _на коннект_
= все ок.

2. Пользователь запрашивает /1.php
- делаем pconnect
- делается select из временяки
= все ок.

{Пользователь пьет пиво... проходит какое-то время...}

2. Пользователь запрашивает /2.php
- делаем pconnect
- делается select из той же временяки
= еррор, нет такой времянки :(

-~{}~ 16.11.06 13:20:

Наверное, это частично ответ на мой процесс, обдумать помогите :) написанное...

Please note that mssql_pconnect creates a connection for the pool for *each process*. If you have "ThreadsPerChild" set to 50 in apache, and mssql.max_procs set to 25 in php, then eventually you will get mssql_pconnect failing to give you a connection to the database. This has stumped me for quite a while, and the answer finally presented itself thanks to the people in #php.
 
Сверху