Exchange 2007: Eventi 490 e 17019

Dopo avere deframmentato il queue database di un sever Exchange, dal momento che dopo circa 4 anni aveva raggiunto la ragguardevole dimensione di circa 300 MB, seguendo la procedura illustrata al seguente Esecuzione di Eseutil /D (Deframmentazione):

  1. Net Stop MSExchangeTransport
  2. Aprire un prompt dei comandi con privilegi amministrativi e digitare:
    • CD C:\Programmi\Microsoft\Exchange Server\Bin
    • Eseutil /d “C:\Programmi\Microsoft\Exchange Server\TransportRoles\data\Queue\mail.que”
  3. Net Start MSExchangeTransport

Nel registro degli eventi Applicazione sono stati registrati i seguenti:

Tipo evento: Errore
Origine evento: ESE
Categoria evento: Generale
ID evento: 490
Descrizione:
edgetransport (3316) Database di posta di trasporto: Tentativo di apertura del file “C:\Programmi\Microsoft\Exchange Server\TransportRoles\data\Queue\mail.que” per accesso in lettura e scrittura non riuscito con errore di sistema 5 (0x00000005): “Accesso negato. “. L’operazione di apertura del file non verrà effettuata con errore -1032 (0xfffffbf8).

 

Tipo evento: Errore
Origine evento: MSExchangeTransport
Categoria evento: Archivio
ID evento: 17019
Descrizione:
Database di posta di trasporto: errore I/O durante un’operazione di database. Il servizio di  trasporto di Microsoft Exchange verrà chiuso. Dettagli eccezione: Microsoft.Exchange.Isam.IsamFileAccessDeniedException: Cannot access file, the file is locked or in use (-1032)
   in Microsoft.Exchange.Isam.?A0xf73de38c.HandleError(Int32 err)
   in Microsoft.Exchange.Isam.?A0xf73de38c.CallW(Int32 errFn)
   in Microsoft.Exchange.Isam.Interop.MJetAttachDatabase(MJET_SESID sesid, String file, MJET_GRBIT grbit)
   in Microsoft.Exchange.Isam.Interop.MJetAttachDatabase(MJET_SESID sesid, String file)
   in Microsoft.Exchange.Transport.Storage.DataSource.OpenDatabase()

Morale la deframmentazione ha modificato i diritti sul file mail.que rimuovendo i diritti per l’account Network System si veda di seguito il confronto tra il file mail.que con i diritti corretti:

image

e quello con i privilegi alterati dopo la deframmentazione:

image

Per risolvere ho preferito far ricreare il DB mail.que come indicato nel seguente A Transport database operation has encountered a fatal error, anziché tentare di ripararlo o provare a risistemare le permission.

In realtà dal momento che come descritto nel seguente Managing the Queue Database il DB mail.que contiene solo una copia temporanea dei messaggi prima che vengano inviati ad uno stadio successivo di elaborazione è decisamente più conveniente ricreare il database con la seguente procedura:

  • arrestare il servizio MSExchangeTransport in un momento in cui non vi siano code in elaborazione
  • eliminare i file Mail.que, Trn.chk, Trn*.log, Trnres*.jrs e Temp.edb
  • avviare il servizio MSExchangeTransport

Per ulteriori informazioni si vedano: