Domanda

Abbiamo un vecchio server Windows 2000 con SQL Server 2000 Standard Edition, SP3. Questo ha una configurazione del server collegato per connettersi a un DB Informix tramite una connessione ODBC. Per gran parte dell'anno, l'esecuzione di OPENQUERY sul server collegato funziona senza problemi. Tuttavia, ogni pochi mesi questo server collegato ha esito negativo e non funziona nuovamente fino al riavvio di SQL Server. L'errore che vediamo in Enterprise Manager è questo:

---------------------------
SQL Server Enterprise Manager
---------------------------
Error 7399: OLE DB provider 'UNKNOWN' reported an error.  

Memory allocation failure.]
Memory allocation failure.]
OLE DB error trace [OLE/DB Provider 'UNKNOWN' IDBSchemaRowset::GetRowset returned 0x80004005:   ].
---------------------------
OK   
---------------------------

Se provo a eseguire una query SQL sul server collegato in Query Analyzer, l'errore segnalato è questo:

[OLE/DB provider returned message: Unspecified error]
OLE DB error trace [OLE/DB Provider 'MSDASQL'
IDBCreateCommand::CreateCommand returned 0x80004005:   ].
Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' reported an error.

Se applico i flag TRACE a cui si fa riferimento qui ottengo un po ' maggiori dettagli:

OLE DB error trace [Non-interface error:  OLE DB provider MSDASQL
returned an incorrect value for DBPROP_CONCATNULLBEHAVIOR which should
be either DBPROPVAL_CB_NULL or DBPROPVAL_CB_NON_NULL].
[OLE/DB provider returned message: Unspecified error]
OLE DB error trace [OLE/DB Provider 'MSDASQL'
IDBCreateCommand::CreateCommand returned 0x80004005:   ].
Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' reported an error.

Qualche idea su cosa potrebbe causare questo? Non siamo a conoscenza di errori del server o modifiche alle impostazioni e un riavvio sembra sempre risolvere questo problema. Informix DB sembra essere la versione Informix Dynamic Server 2000 9.21.UC2 e l'aggiornamento o l'applicazione di patch non è disponibile come opzione.

È stato utile?

Soluzione

Sii consapevole del fatto che IDS 9.21 non è più supportato - in effetti, sia le 9.30 che le 9.40 (le versioni successive di IDS) non sono supportate. Sei anni in ritardo per un aggiornamento, anche se sembra che non puoi effettivamente effettuare l'aggiornamento per motivi politici.

Sembra che ci sia una perdita di memoria da qualche parte sul lato SQL Server, forse causata da una perdita di memoria nel driver ODBC Informix che si sta utilizzando.

Se non è possibile aggiornare nulla, un riavvio periodico di SQL Server per cancellare la memoria accumulata è l'opzione più semplice e affidabile. Dal momento che implica che funzioni per mesi alla volta, guarderei al riavvio una volta al mese.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top