Instalamos recentemente o FreeTDS com o php56-mssql em um dos nossos servidores RHEL7. Tudo parece estar funcionando corretamente, exceto por esse estranho problema. A primeira vez que carregamos uma página php que está usando a função mssql_connect (), a página acessa a instância do sql server 2012, obtém os dados e renderiza a página conforme o esperado. No entanto, se atualizarmos a página uma vez, a página será renderizada, mas sem nenhum dos dados do banco de dados. Se atualizarmos uma segunda vez, receberemos a seguinte mensagem 503:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Se continuarmos atualizando uma terceira vez, a página será renderizada com todos os dados conforme o esperado. Também durante a solução de problemas, notei que, se carregarmos a página, espere ~ 15 segundos e, em seguida, atualize, a página carrega conforme o esperado.
Ao explorar o error_log, vemos as seguintes mensagens:
[Fri Oct 21 12:37:44.971872 2016] [proxy_fcgi:error] [pid 14052:tid 140504888997632] [client xx.xxx.xx.xx:xxxxx] AH01071: Got error 'PHP message: PHP Warning: mssql_select_db(): 2 is not a valid MS SQL-Link resource in /var/www/vhosts/example.com/e0/conn.php on line 6\nPHP message: PHP Warning: mssql_init(): 2 is not a valid MS SQL-Link resource in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 16\nPHP message: PHP Warning: mssql_bind() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 17\nPHP message: PHP Warning: mssql_bind() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 18\nPHP message: PHP Warning: mssql_execute() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 19\nPHP message: PHP Warning: mssql_free_statement() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 20\nPHP message: PHP Warning: mssql_fetch_array() expects parameter 1 to be resource, null given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 23\nPHP message: PHP Notice: Undefined offset: 0 in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 53\nPHP message: PHP Notice: Undefined offset: 0 in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 60\n', referer: http://example.com/contacts/
[Fri Oct 21 12:37:45.347450 2016] [proxy_fcgi:error] [pid 14109:tid 140504956139264] (104)Connection reset by peer: [client xx.xxx.xx.xx:xxxxx] AH01075: Error dispatching request to :, referer: http://example.com/e1/
[Fri Oct 21 12:37:45.347625 2016] [include:warn] [pid 14109:tid 140504956139264] [client xx.xxx.xx.xx:xxxxx] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /error_docs/maintenance.html, referer: http://example.com/e1/
Alguma sugestão? Eu não sei porque isso está acontecendo do jeito que está acontecendo!?
UPDATE
Testou outra página usando esta conexão. Ele carrega bem na primeira vez, mas se você solicitar novamente antes de 15 segundos, ele não consegue se conectar:
AH01071: Got error 'PHP message: PHP Warning: mssql_connect(): Unable to connect to server: theServerName