2016-01-27 2 views
2

Мне нужно было перенести установку сервера 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 

ли я что-то пропустил в моей установке, чтобы получить эту работу?

ответ

1

Я играл со своим соединением db и получал добавление «MARS_Connection = yes;» к моему dsn делает работу.

'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;MARS_Connection=yes;', 
    'charset' => 'UTF-8' 
), 

Надеюсь, это поможет ближайшим поисковикам!

Смежные вопросы