MS SQL: The connection to the server was reset while the page was loading

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
nanuqcz
Člen | 822
+
0
-

Ahoj,
snažím se Nette\Database použít s MS SQL. Problém je, že jakmile se pokusím získat z DB nějaká data, výsledkem je

The connection was reset
The connection to the server was reset while the page was loading.

Viz screenshot s FireBugem.

Žádná laděnka, žádný záznam ve složce log, nic. Dokonce i když vynutím ukládání chyb do logu ($configurator->setDebugMode(FALSE);), složka log je prázdná.

Zajímavé je, že když vytvořím nějaký syntakticky špatný SQL dotaz, tak MSSQL server skrz laděnku normálně zařve. Takže k MSSQL serveru jsem zřejmě připojený úspěšně. Pokud má ale SQL dotaz správnou syntaxi, výsledkem je výše zmíněné chování.

Quinix
Člen | 108
+
0
-

A co systémový log? Takhle se to může chovat když umře Apache…

nanuqcz
Člen | 822
+
0
-

Dobrý nápad. Smazal jsem tedy všechny logy, refreshnul stránku, a výsledkem jsou:

  • apache/logs/access.log: 0 bytů
  • apache/logs/error.log: http://pastebin.com/br6tNbUg
  • apache/logs/ssl_request.log: 0 bytů
  • php/logs/: žádné soubory

Z toho error logu mi ale nic nevyplývá.

Další zajímavostí je, že Adminer mi normálně funguje, k MSSQL serveru se připojí a zobrazuje tabulky i data. Ten ale nepoužívá PDO, nýbrž klasickou funkci mssql_connect(). Takže problém by mohl být v PHP PDO driveru pro MSSQL?

Editoval nanuqcz (5. 4. 2013 17:12)

enumag
Člen | 2118
+
0
-

@nanuqcz: Když vezmu v úvahu že ten PDO driver pro MSSQL je experimentální tak nejspíš jo.

nanuqcz
Člen | 822
+
0
-

enumag: Já používám pdo_sqlsrv přímo od Microsoftu. Ten experimentální není.

enumag
Člen | 2118
+
0
-

@nanuqcz: Teď koukám na GitHub a nejspíš to bude tenhle bug. Můžeš vyzkoušet ten fix?

Quinix
Člen | 108
+
0
-

nanuqcz: Myslel jsem Event log Windows (Prohlížeč událostí). Z tvého error logu je ale vidět, že to fakt padá – „child process exited with status 3221225477 – Restarting.“ Restartne se to při tom jednom požadavku, proto ti přijde že všechno ostatní beží.

nanuqcz
Člen | 822
+
0
-

enumag: Super, vypadá to, že funguje. Moc díky :-)

Každopádně chtělo to upravit všechny $this->pdoStatement->... na $this->... (pro větev ‚release-2.0.x‘).

enumag
Člen | 2118
+
0
-

@nanuqcz: Jo jasně, v 2.0 se PdoStatement dědí a ve 2.1 je místo toho kompozice. Měls docela kliku, @milo ten pull request poslal zrovna dneska. :-)

Milo
Nette Core | 1283
+
0
-

To je fakt náhoda :-) Potřebuju tahat pár řádků z SQL Server 2012 Express, tak jsem si řekl že si zbastlím SupplementalDriver a objevil se tenhle bug.