Diagrammi di flusso di esempio per backup e archiviazione

L'API è progettata per flussi logici semplici e transizioni chiare tra i diversi stati del client dell'applicazione. Questa transizione di stato pulito rileva difetti logici ed errori di programma all'inizio del ciclo di sviluppo, migliorando notevolmente la qualità e l'affidabilità del sistema.

Ad esempio, non è possibile effettuare una chiamata dsmSendObj a meno che non sia stata avviata una transazione e non sia stata precedentemente effettuata una chiamata dsmBindMC per l'oggetto di cui si sta eseguendo il backup.

La Figura 1 visualizza il diagramma di stato per l'esecuzione di operazioni di backup o archiviazione all'interno di una transazione. La freccia che punta da Oggetto in invio a dsmEndTxn indica che una chiamata dsmEndTxn può essere avviata dopo una chiamata a dsmSendObj o dsmSendData. È possibile eseguire questa operazione se si è verificata una condizione di errore durante l'invio di un oggetto e si desidera arrestare l'intera operazione. In questo caso, è necessario utilizzare un voto DSM_VOTE_ABORT. In circostanze normali, tuttavia, richiamare dsmEndSendObj prima di terminare la transazione.

Figura 1. Diagramma di stato per operazioni di backup e archiviazione
Diagramma di stato per operazioni di backup e archiviazione

La Figura 2 visualizza il diagramma di flusso per l'esecuzione di operazioni di backup o archiviazione all'interno di una transazione.

Figura 2. Diagramma di flusso per operazioni di backup e archiviazione
Diagramma di flusso per l'esecuzione di operazioni di backup o archiviazione all'interno di una transazione

La funzione principale in questi due diagrammi è il loop tra le seguenti chiamate API dall'interno di una transazione:

  • dsmBindMC
  • dsmSendObj
  • dsmSendData
  • dsmEndSendObj

La chiamata dsmBindMC è univoca in quanto è possibile avviarla dall'interno o all'esterno di un limite di transazione. È anche possibile avviarlo da una transazione diversa, se necessario. L'unico requisito per la chiamata dsmBindMC è che venga effettuata prima del backup o dell'archiviazione di un oggetto. Se l'oggetto di cui si sta eseguendo il back up o l'archiviazione non è associato a una classe di gestione, viene restituito un codice di errore da dsmSendObj. In questa situazione, la transazione viene terminata richiamando dsmEndTxn (questa condizione di errore non viene visualizzata nel diagramma di flusso).

Il diagramma di flusso illustra il modo in cui un'applicazione utilizza più transazioni oggetto. Mostra dove è possibile posizionare i punti di decisione per stabilire se l'oggetto inviato si adatta alla transazione o se avviare una nuova transazione.