Microsoft ha rilasciato da qualche tempo il suo nuovo RDBMS con il quale ha ufficialmente dichiarato "guerra" al leader di mercato Oracle integrando nella nuova suite alcune funzionalità (ad esempio la gestione asincrona degli eventi cfr. code) che non le permenttavano di rimanere a livello del blasonato database.
SQL 2005 si è evoluto in ogni sua parte garantendo ora performance e funzionalità davvero notevoli, ma... durante le prime installazioni del prodotto mi sono accorto che su alcune macchine non c'è verso di installarlo; di fatto al termine dell'installazione, quando il sistema cerca di avviare il servizio principale, avviene un crash del servizio da cui non si riesce ad uscire se non evitando l'avvio e quindi lasciando che il "diligente" installer esegua il completo rollback.
La macchina su cui ho riscontrato il malfunzionamento è il mio piccolo server fanless (da cui state leggendo queste mie righe) basato su scheda madre Via EPIA-CL in formato mini-itx e processore Eden a 600Mhz fanless e con 512MB di ram DDR con Windows 2003 Standard come OS, sicuramente non un fulmine di guerra ma basta per eseguire degnamente il suo dovere di server casalingo.
L'errore riscontrato è il seguente:
"Error: 17311, Severity: 16, State: 1.
SQL Server is terminating because of fatal exception c000001d. This error may be caused by an unhandled Win32 or C++ exception, or by an access violation encountered during exception handling. Check the SQL error log for any related stack dumps or messages. This exception forces SQL Server to shutdown. To recover from this error, restart the server (unless SQLAgent is configured to auto restart). "
L'errore pare subito grave ma provo ugualmente a fare diverse prove come rimuovendo l'hardening fatto alla macchina prima di installare SQL e cambiando la versione da SQL 2005 Standard a SQL 2005 Express. L'esito è sempre lo stesso.
Facendo una ricerca nei meandri della rete inizzo a rendermi conto che il problema non è solo mio ma è diffuso sulla rete senza che nessuno abbia un spiegazione al problema.
Approdando al MSDN Product Feedback Center riesco infine a scoprire la causa del problema che risulta comune a tutte le versioni attualmente in commercio: SQL 2005 cerca di eseguire una istruzione di cache prefetching e tutti i processori vecchi e/o di fascia bassa che non supportano tale funzionalità mandano in crash l'applicazione.
Il problema è più importante di quanto possa sembrare a prima vista dato che affligge anche processori come i Trasmeta (che equipaggiano diversi TabletPC) e gli Eden (ritrovabili in soluzioni embedded) che verranno inevitabilmente tagliati fuori da qualsiasi applicazione basata su SQL 2005 distribuito.
Bel passo falso di mamma Microsoft che di fatto limita le potenzialità della nuova piattaforma; personalmente rimarrò fedele al buon vecchio MSDE 2000 SP4.
Michele