danilabergin
Новичок
Пытаюсь понять persistent connection(PDO)...
php под никсами, собран с freetds,pdo...
делаем:
Далее, условно говоря, в других скриптах,- "поддерживаем" данное уже созданное соединение, таким же образом.
Суть моего вопроса, как долго будет жить этот 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.
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.