2016-11-23 82 views
3

我們剛剛安裝了最新的SQL 13驅動程序和最新的sqlsrv和sqlsrv_pdo PHP擴展。連接池似乎沒有工作。連接池不能使用ODBC驅動程序13 for SQL Server for Linux

  • OS:CentOS的7.2
  • PHP:PHP 7.0.12
  • SQL驅動程序:ODBC SQL Server的

摘要測試的司機13:我們創建了一個測試腳本,它會連接到DB。腳本執行後,連接關閉,由DB確認。

ODBCINST.INI:

[ODBC] 
Pooling = Yes 

[ODBC Driver 13 for SQL Server] 
Description=Microsoft ODBC Driver 13 for SQL Server 
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0 
UsageCount=1 
CPTimeout=120 

測試腳本,其包括一些定時(毫秒):腳本的連續

$startTime = microtime(true); 
function printElapsedTimeSinceLastEvent($event=''){ 
    global $startTime; 
    $elapsed = microtime(true) - $startTime; 
    echo $event . round($elapsed*1000) ."\n"; 
    $startTime = microtime(true); 
} 

// Connection sqlsrv driver 
$pdo = new PDO ("sqlsrv:server=10.12.12.123;database=aDatabaseName",'coolUser','someAwesomePassword'); 
printElapsedTimeSinceLastEvent("Connected: "); 
$stmt = $pdo->prepare("SELECT TOP 10 * FROM users"); 
$stmt->execute(); 
printElapsedTimeSinceLastEvent("Execute: "); 
$array = $stmt->fetchAll(PDO::FETCH_ASSOC); 
printElapsedTimeSinceLastEvent("Fetch: "); 

3個輸出:

Connected: 149 
Execute: 109 
Fetch: 2 

Connected: 149 
Execute: 100 
Fetch: 2 

Connected: 152 
Execute: 108 
Fetch: 2 

使用SQL Studio和運行EXEC sp_who2我們可以看到每次運行後連接都關閉。在Windows上使用sqlsrv確保連接保持打開狀態,並顯示在sp_who2輸出中。

在我們確認連接池確實存在的Windows上,連接池的連接時間明顯更快。

回答

0

微軟承認這個錯誤,並且已經發布了支持池化的新版本。

相關問題