Windows 2003 Standard Edition Service Pack 2

giovedì 4 ottobre 2007 alle 04:05 | Pubblicato su Diario | 1 commento

Questo post è completamente fuori dai temi da me solitamente trattati in questo blog, ma riguarda sempre una esperienza che mi è capitata al lavoro.

Da un po’ di giorni avevamo problemi con un application server che usiamo come ambiente di demo con svariate personalizzazioni della nostra applicazione. Per ogni personalizzazione e per ogni demo quindi c’è un contesto applicativo ed in totale tali contesti sono poco più di una ventina. Tutti questi contesti hanno un proprio pool di connessioni al database che sta su un’altra macchina. Ogni contesto ha un suo schema sul database e in media apre circa 5 connessioni al db, quindi in totale oltre 100 connessioni al database. Una situazione tutto sommato non pesante, il nostro ambiente di test principale, che sta sempre su una macchina di test ha ancora più contesti e il database server sta sulla stessa macchina. Le connessioni al database avvengono via JDBC per la maggior parte THIN, in qualche caso viene usato OCI . Il problema che ha cominciato a verificarsi si manifestava principalmente con l’errore:

“java.sql.SQLException: Eccezione IO: No buffer space available – exhausted attempts to queue buffer
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)

Che avveniva durante il tentativo di aprire le connessioni ad database. Verificato che non era un problema del database server abbiamo subito sospettato si trattasse di un problema di connessione al database server ma a livello TCP/IP. In sostanza, essendo su piattaforma Windows qualcosa di esoterico. In sostanza questo era confermato dal fatto che in pratica ogni tentativo di aprire canali di rete da e verso la macchina falliva, ftp, http ecc. non funzionavano.

Facendo netstat -a l’output, generato molto lentamente, visualizzava 99 connessioni stabilite verso il database server. L’unico riferimento che ho trovato su internet e che si avvicinasse è stato: http://support.microsoft.com/default.aspx?scid=kb;EN-US;196271 . Quindi come primo passo (dopo aver cercato di fermare tutti i servizi palesemente inutili ed in esecuzione sulla macchina) è stato quello di settare la chiave del registro Windows HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort al valore massimo consentito di 65534. Il problema però non si è risolto. Ho invano cercato se ci fossero altri parametri del protocollo TCP/IP che potessero limitare il numero massimo di socket aperti.

Le indagini si sono protratte a lungo anche perchè i problemi avevano cominciato a manifestarsi in corrispondenza dell’installazione sulla stessa macchina di una applicazione con IIS e MSSQLServer, quindi prima abbiamo provato a fermare tali servizi, poi li abbiamo disinstallati. Tutto questo non ha risolto i problemi.

A questo punto rimaneva solo un’ultimo disperato tentativo, prima della reinstallazione da zero di tutta la macchina: la disinstallazione del Service Pack 2 di winoz. Ebbene, la disinstallazione di tale SP ha risolto il problema. Evidentemente per tappare qualche falla si pensato bene di usare un tappo bello grande, ma senza lasciare possibilità alcuna (almento documentata) di modellare tale tappo: il risultato è un bel disservizio.

Io non ho molta simpatia per i sistemi mickeysoft (come qualcuno i CDOS li ha soprannominati) però questo cose oggettivamente sono poco simpatiche.

1 commento »

RSS feed for comments on this post. TrackBack URI

  1. […] implementazioni di TCP/IP. Io sospetto fortemente che quella di Microsoft non sia proprio perfetta, già ebbi un problema tempo fa. Dando una rapida occhiata ai risultati della ricerca su google, sembra che tale errore si presenti […]


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: