mercoledì 28 luglio 2010

ERROR [NA000] [Microsoft][ODBC driver for Oracle][Oracle]ORA-06413: Connessione non aperta. Risolto

Quando si verifica?
Nella maggior parte dei casi si verifica quando da un web service pubblicato su un II7.# si tenta di accedere ad un driver odbc realizzato a 32 bit.
Ci sono Workaround Noti?
Facendo parecchie ricerche emergono "estenuanti affermazioni inutili" come
-Associare a utenze diritti vari...
-Spostare programmi in cartelle varie...
-Utilizzare prodotti di terze parti...

Ma nessuno di questi funzioni o è la suoluzione effettiva, perchè il problema non è li...

Risoluzione per windows 7
A) assicurarsi di aver realizzato un odbc a 32 bit
-Accedere a c:/windows/siswow64/odbcad32.exe
-Creare un odbc per Oracle Microsoft ODBC for Oracle

B) assicurarsi di aver compilato la propria soluzione (progetto per progetto) con:
-Framework 2.0
-cpu X86

C) aprire "Gestione Internet Information Server"
-Scegliere: Pool di applicazioni
Aggiungere quindi un nuovo pool con le specifiche come da immagine:


Accertarsi che la voce "ATTIVA APPLICAZIONI A 32 bit " sia a TRUE

D) pubblicare la propria soluzione



E) Tornare su IIS e configurare la soluzione per l'appPool appena creato
-Selezionare il gruppo di appPool
-Verificare fra le proprietà degli appPool le applicazioni associate
(Dovrebbe trovarsi sotto DEFAULT APPPOOL)
-Selezionare default apppool
-Selezionare il link dal blocco di destra Visualizza Applicazioni
-Doppio Click sull'applicazione



-Tornare alla soluzionee verificare che eventuali referenze al web service realizzato, puntino
al web service pubblicato.

Esito
In questo modo si ha la certezza che il Web Service sia Eseguito in modalità 32 bit, dall' IIS,
va da se che deve essere compilato a 32 bit.

Se al termine di questo processo si ottiene ancora lo stesso errore possono essersi verificati due
problemi .
a) IIS non ha visto le modifiche (conviene riavviare tutto - macchina compresa)
b) non tutte le web reference sono state aggiornate.

Note conclusive
Questo problema esiste da quando esiste IIS a 64 bit, tuttavia non sono documentati i processi per ottimizzare il sistema a lavorare in piena compatibilità con le applicazioni a 32 bit.

-Potrebbe essere necessario aver installato il client di Oracle in program files (x86).
-Alcuni set up di Oracle client potrebbero non accettare spazie e parentesi nei nomi.

Nessun commento: