Questo argomento si applica solo alla configurazione IBM Business Automation Workflow Advanced.

Rimozione dei dati di istanze di relazione dal repository

Un'applicazione che utilizza le relazioni ha dati e schemi di relazione associati in un repository. Il repository è il database configurato per contenere i dati dell'istanza di relazione. Quando si disinstalla tale applicazione da un server di produzione, il server non rimuove lo schema di relazione e i dati dal repository. È necessario rimuovere manualmente lo schema di relazioni esistente. Quando si disinstalla tale applicazione da un server di sviluppo, lo schema e i dati vengono rimossi dal repository ad ogni arresto o avvio del processo dell'applicazione.

Nota: In un Advanced ambiente di distribuzione, il workflow server viene utilizzato per la produzione o lo staging ed è considerato un server di produzione. Lo schema di relazioni esistente deve essere rimosso manualmente quando viene disinstallato. Il server Workflow Center viene sempre utilizzato come server di sviluppo o test e lo schema e i dati vengono rimossi dal repository ad ogni arresto o avvio del processo dell'applicazione per mantenere l'ambiente pulito per lo sviluppo e l'utilizzo del test.

Quando si installa un'applicazione che contiene relazioni, il server crea gli oggetti dello schema del database corrispondenti che includono tabelle, indici, sequenze e procedure memorizzate. In fase di runtime, le tabelle vengono popolate con i dati dell'istanza di relazione. Se si disinstalla l'applicazione che contiene le relazioni, le tabelle e i dati dell'istanza non vengono rimossi dal database. La volta successiva che l'applicazione viene installata, i nuovi dati della relazione statica nell'applicazione non vengono popolati e se la definizione della relazione viene modificata, la tabella delle relazioni non viene ricreata. Ciò può causare errori.

Se si reinstalla l'applicazione con la stessa relazione, viene riutilizzato il vecchio schema. Tuttavia, se la definizione di relazione o ruolo viene modificata in modo da renderla incompatibile con lo schema esistente, il servizio di relazione genera un'eccezione e termina l'installazione della relazione. I log mostrano la seguente eccezione e messaggio:

RelationshipServiceException("table <tablename> already exists, but the table schema is different from current role definition")
Suggerimento: se si utilizza il server di test UTE (Unit Test Environment ) in IBM® Integration Designer, lo schema di relazioni e i dati vengono rimossi dal repository quando un progetto applicazione viene rimosso.

La soluzione per questo problema consiste nel rimuovere manualmente le risorse dello schema di relazione esistenti (utilizzando gli strumenti forniti dalla piattaforma del database del repository) e quindi reinstallare l'applicazione.

Per forzare la rimozione degli artefatti del database delle relazioni, utilizzare lo script RelationshipDatabaseSchemaDrop o l'API dropRelationshipDatabaseSchema prima di disinstallare l'applicazione.
Nota: nessuna di queste interfacce rileverà quando una relazione è condivisa da altre applicazioni.
È anche possibile utilizzare gli strumenti del database per rimuovere lo schema di relazione esistente dal repository.