I descrittori di distribuzione WebLogic per i bean CMP (container managed persistent) consentono alle applicazioni di utilizzare una funzione per la generazione di una sequenza database (chiave) automatica. Quando si utilizza questa funzione, un'applicazione WebLogic non deve includere il codice per la generazione della chiave della sequenza successiva durante la creazione di oggetti EJB CMP. Durante la migrazione di applicazioni WebLogic che includono la generazione della sequenza automatica, è necessario aggiungere il codice dell'applicazione per generare l'identificativo della sequenza per le nuove voci.
Il file weblogic-cmp-rdbms-jar.xml contiene informazioni per gli EJB di entità
che utilizzano la persistenza basata su RDBMS WebLogic.
Questa regola esegue la scansione della configurazione degli elementi WebLogic automatic-key-generation e fornisce
informazioni sulla migrazione per il tipo di generatore Oracle.
Questo esempio mostra un elemento che verrà contrassegnato da questa regola:
La voce generator-name indica il nome nella tabella DUAL Oracle da utilizzare per generare la sequenza successiva.
Ad esempio, dato un generator_name sequence_id, è possibile utilizzare la seguente istruzione SQL
per ottenere il numero di sequenza successivo.
Se questa regola contrassegna le voci nel descrittore di distribuzione weblogic-cmp-rdbms-jar.xml, è necessario eseguire alcune operazioni per modificare manualmente il codice EJB per creare le chiavi. È necessario eseguire tali operazioni prima della rigenerazione degli stub EJB per WebSphere Application Server. Gli esempi riportati di seguito indicano un potenziale percorso di migrazione.
ejbCreate e ejbPostCreate del bean di entità.ejbCreate e ejbPostCreate.create di Home EJB.create() di home EJB per passare il numero di sequenza successivo.I seguenti esempi di alto livello mostrano come sostituire la funzionalità della logica della chiave generata automaticamente di Oracle. Sarà necessario scrivere codice simile per ciascun bean CMP che utilizza numeri di sequenza generati automaticamente di Oracle. È possibile creare classi utility help per combinare la logica comune che genera i numeri di sequenza per ciascun bean.
ejbCreate e ejbPostCreate del bean di entità.Prima:
Dopo:
ejbCreate.create di Home EJB.Prima:
Dopo:
create() di home EJB per passare il numero di sequenza successivo.