Condividi tramite


Gestione delle tabelle del database di non ripudio

Microsoft BizTalk Accelerator per RosettaNet (BTARN) archivia i messaggi per scopi non ripudio nelle tabelle MessageStorageIn e MessageStorageOut del database BTARNArchive. Molti messaggi in queste tabelle possono influire sulle prestazioni del sistema. È possibile mantenere queste tabelle di database non ripudio eliminando e archiviando periodicamente i messaggi da queste tabelle, in base alle esigenze.

Manutenzione di database di routine

Quando BTARN riceve un messaggio, salva sempre il messaggio nella tabella MessageStorageIn e imposta inizialmente il campo ToBePurged su "1", che indica che il messaggio non richiede ripudio. BTARN decrittografa e decodifica il messaggio per determinare qual è il contratto. Dopo la decrittografia e la decodifica, BTARN esamina l'accordo per verificare se deve salvare il messaggio per scopi non ripudio. In tal caso, imposta il campo ToBePurged su "0" e compila gli altri campi del messaggio. In caso contrario, lascia il campo ToBePurged come "1" e non compila gli altri campi del messaggio.

BTARN non elimina automaticamente i messaggi con il campo ToBePurged impostato su "1". Inoltre, non archivia i messaggi salvati per il non ripudio in altre tabelle. Questi due set di messaggi possono essere compilati nella tabella MessageStorageIn e influire sulle prestazioni. Come parte della manutenzione di routine nel database, è possibile eseguire le operazioni seguenti:

  • Eseguire una stored procedure contenente l'istruzione SQL seguente per eliminare tutti i messaggi nella tabella MessageStorageIn il cui campo ToBePurged non è uguale a "0":

    delete MessageStorageIn where ToBePurged <> 0  
    
  • Dopo un periodo appropriato (che i criteri aziendali possono dettare), eseguire una stored procedure per archiviare messaggi non ripudio a un database offline che non influirà sulle prestazioni. È possibile determinare questo periodo usando il campo TimeCreated nella tabella MessageStorageIn. Dopo la scadenza del periodo di non ripudio per un messaggio, è possibile eliminare il messaggio dal database di archiviazione usando l'istruzione SQL seguente (che elimina i messaggi che hanno più di sette giorni):

    delete <archive table name> where datediff(d, TimeCreated, GetUTCDATA())>7  
    

Nota

Il campo TimeCreated nella tabella MessageStorageIn è in formato UTC.

Nota

Non è consigliabile eliminare un messaggio in arrivo inferiore a un'ora.

Quando BTARN invia un messaggio in uscita, ha accesso al contratto di non ripudio. Se il contratto richiede non ripudio, BTARN salva il messaggio nella tabella MessageStorageOut. In caso contrario, non salva il messaggio nella tabella. Ciò significa che non è necessario un campo ToBePurged in questa tabella. L'unica manutenzione necessaria per la tabella MessageStorageOut consiste nell'archiviare messaggi non ripudio in un database offline dopo un periodo appropriato e per eliminare ogni messaggio dopo la scadenza del periodo di non ripudio. A tale scopo, è possibile usare l'istruzione SQL seguente (che elimina i messaggi che hanno più di sette giorni):

delete MessageStorageOut where datediff(d, TimeCreated, GetUTCDATA())>7  

Vedere anche

Elaborazione di messaggi RNIF
Gestire configurazione, certificati, database e protezione