Мне нужно было перенести установку сервера Windows на сервер Linux (Red Hat 7.2). Ранее мы использовали драйвер pdo_sqlsrv на машине Windows. В Linux мы установили драйвер pdo_odbc. Но поскольку Zend Framework 2 не поддерживает это из коробки, я сам вычислил конфигурацию db, используя документы API ZF2, которые работают сейчас. Это конфигурация:Соединение занято MS SQL Server в Linux с использованием Zend Framework 2 и драйвера ODBC
'db' => array(
'driver' => 'pdo',
'username' => 'ourDbUsername',
'password' => 'ourDbPassword',
'dsn' => 'odbc:DRIVER={SQL Server Native Client 11.0};UID=ourDbUsername;PWD=ourDbPassword;DATABASE=ourDbName;SERVER=ourServerIP',
'charset' => 'UTF-8'
),
Пока все хорошо. Если мы запускаем наше приложение, все идет так, как ожидалось, до тех пор, пока простой запрос GET не сработает каждый раз, чтобы получить детали объекта. Я не могу заставить запрос работать, даже если я удалю другие запросы, которые выполняются перед ним. Даже привязка запроса по-другому не помогает. Это ошибка:
Statement could not be executed (HY000 - 0 - [Microsoft][SQL Server Native Client 11.0]
Connection is busy with results for another command (SQLExecute[0] at /builddir/build/BUILD/php-5.4.16/ext/pdo_odbc/odbc_stmt.c:254) - HY000)
Мы попытались установить MARS_Connection (описанный здесь How to fix native client error 'Connection is busy with results for another command'? от ответа smozgur). Но у нас нет такого файла /etc/odbc.ini, только файл /etc/odbcinst.ini. Таким образом, наш /etc/odbcinst.ini файл сейчас выглядит так:
[ODBC Driver 11 for SQL Server]
Description=Microsoft ODBC Driver 11 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=1
MARS_Connection=yes
ли я что-то пропустил в моей установке, чтобы получить эту работу?