© Copyright International Business Machines Corporation 2006. Tutti i diritti riservati. Limitazioni previste per gli Utenti del Governo degli Stati Uniti - L'uso, la duplicazione o la divulgazione sono limitati dal GSA ADP Schedule Contract con la IBM® Corp.
Vi sono due nuovi tipi di progettazione dati nel workbench:
- Progettazione dati
- Progetti di sviluppo dati
Le progettazioni dati vengono utilizzate per creare e memorizzare modelli dati, ad esempio, modelli dati fisici e modelli dati logici. Le progettazioni dati vengono utilizzate per creare e memorizzare oggetti di sviluppo applicazione dati, quali le procedure memorizzate e le funzioni definite dall'utente (note anche come routine). Le routine possono essere esaminate anche da una progettazione dati come parte di un modello dati fisico. Tuttavia, il supporto di sviluppo per le routine da una progettazione dati è molto limitato e non vi è alcun supporto della strumentazione SQL per le routine in una progettazione dati. Se si stanno sviluppando delle routine, si consiglia di utilizzare il progetto di sviluppo dati designato, che fornisce un supporto più completo che include le procedure guidate, editor di routine, supporto di debug e l'integrazione della strumentazione SQL.
Nell'editor dati tabella, se si esegue una convalida XML su una tabella XML che non ha una chiave primaria, la convalida XML funzionerà solo la prima volta, quando si inserisce il valore XML. Inoltre, si verificherà un errore per l'aggiornamento di una colonna XML esistente con la convalida XML.
Soluzione temporanea: creare una chiave primaria per le tabelle che contengono le colonne XML.
Lavorare con più elementi root in tale editor potrebbe portare a degli errori quando si salva il file XSD annotato.
Soluzione temporanea: creare una serie separata di file di documento schema XML per ciascun elemento.
Per poter utilizzare i tipi dati XML e lavorare con gli schemi XML, è necessario connettersi ad un database UTF -8. La quantità di dati restituiti dal database per i documenti XML è illimitata. Le prestazioni possono essere influenzate dalla quantità di dati che vengono restituiti.
- L'editor SQL, non supporta correntemente le variabili dell'host durante l'azione Esegui SQL.
Soluzione temporanea: è possibile eseguire l'SQL dal generatore SQL, se si tratta di un'istruzione DML.
- Nel generatore SQL, non viene supportata la sintassi SQL completa. Ad esempio, i tipi definiti dall'utente e le funzioni della tabella non sono supportate.
- I tipi definiti dall'utente non vengono supportati come parametri per le routine.
- Per sviluppare le procedure memorizzate Java™ che puntano a DB2 Universal Database™ for iSeries® dal file system utilizzando la distribuzione Ant, è necessario assicurarsi di avere jt400.jar nel percorso classe del proprio sistema. Se si prova a distribuire una procedura memorizzata esportata utilizzando le istruzioni in DeployInstructions.txt, si potrebbe ricevere messaggio di errore:
...[createsp] Impossibile connettersi al database di destinazione.
[createsp] com.ibm.db2.jcc.DB2Driver...Soluzione temporanea: assicurarsi che db2jcc.jar e i file della licenza appropriati si trovino nel percorso classe del proprio sistema.
- Si potrebbe visualizzare un messaggio di errore "impossibile caricare la classe" quando si distribuiscono o si eseguono le procedure memorizzate Java. Ciò accade se non vi è una corrispondenza nella versione JDK tra RAD v7 e il server DB2®, se il server DB2 è su un JDK di livello inferiore.
Soluzione temporanea: è necessario specificare l'opzione "-source 1.4" nel campo Opzioni di compilazione della procedura guidata Distribuzione routine durante la distribuzione delle procedure memorizzate Java sui server che utilizzano un livello JDK di 1.4 (ad esempio, un server di DB2 Universal Database per Linux®, UNIX® e Windows® V8.2). Generalmente, utilizzare l'opzione di compilazione appropriata "-source JDK level " per far corrispondere il livello JDK sul server del database.
- Quando si distribuisce una procedura memorizzata o UDF utilizzando la funzionalità di distribuzione Ant, si potrebbe visualizzare il seguente messaggio se non si dovesse avere il file tools.jar nel proprio percorso classe:
Impossibile trovare tools.jar. Dovrebbe trovarsi in F:\jre\1.4.2\lib\tools.jar
Il file tools.jar è parte del JRE (Java Runtime Environment), non parte dello strumento di distribuzione Ant.Soluzione temporanea: il file tools.jar non è necessario per eseguire lo script Ant e, per ora, è possibile ignorare tale messaggio.
- Quando si modifica il nome del metodo Java nell'editor della procedura memorizzata, non è possibile salvare la procedura propriamente facendo clic con il tasto destro del mouse sulla pagina Origine dell'editor, quindi selezionando Salva.
Soluzione temporanea: salvare la procedura memorizzata facendo clic su File->Salva, premendo Ctrl+S oppure facendo clic sull'icona Salva.
- Se si trascina e rilascia una procedura memorizzata o UDF tra server diversi (ad esempio, da un server di DB2 Universal database for Linux, UNIX e Windows ad un server DB2 Universal Database for z/OS®), si visualizzerà un'avvertenza durante l'operazione di trascinamento e rilascio relativo ad una certa incompatibilità tra i due server. Se si continua con l'operazione e poi si prova ad aprire la procedura memorizzata o UDF, si potrebbe visualizzare un errore.
- L'esecuzione di una creazione profilo SQL su di un server DB2 UDB per Linux, UNIX e Windows V8.2 potrebbe causare un'eccezione di puntatore null se il server non ha la procedura memorizzata (SYSIBM.SQLCAMESSAGECCSID) richiesta dal driver JCC per richiamare il testo del messaggio di errore.
Soluzione temporanea: è possibile creare una connessione al server senza l'impostazione retrieveMessagesFromServerOnGetMessage=true.
- Durante il monitoraggio dell'esecuzione delle procedure SQL, gli eventi vengono generati dalle istruzioni DML quali INSERT, SELECT, DELETE e UPDATE eseguire nella procedura. Tuttavia, gli eventi non vengono generati in uno stile deterministico per le istruzioni procedurali quali le assegnazioni delle variabili e delle strutture di controllo come WHILE o IF. Pertanto, le informazioni sulla creazione profili potrebbero non essere generate per le istruzioni procedurali.
- Quando ci si connette ad un server DB2 per UNIX, si possono verificare delle eccezioni di timeout quando si aggiungono i punti di interruzione o quando si esegue in modalità debug.
- Il debugger non viene eseguito per una procedura memorizzata il cui nome contiene entrambi i caratteri inglesi e cinesi.
- Le espressioni di controllo sono supportate solo per le procedure memorizzate Java dinamiche. Non vengono supportate per le procedure memorizzate SQL e SQLJ.
- Il debugger non si ferma ad un punto di interruzione se non è posizionato sul primo token di un'istruzione eseguibile, come SET. Inoltre, non si ferma su DECLARE CONTINUE, CLOSE CURSOR o ROLLBACK.
- Se si sta eseguendo il debug di una procedura memorizzata Java e si seleziona un'azione Termina, potrebbero essere necessari diversi minuti perché la sessione di debug sia completamente terminata. Le nuove sessioni di debug iniziate durante questo periodo di tempo potrebbero funzionare in maniera irregolare.
- Se si sta eseguendo il debug di una procedura guidata Java che richiama una seconda procedura memorizzata Java, non è possibile eseguire il debug della seconda procedura memorizzata. Non possibile passare nella procedura memorizzata nidificata e tutti i punti di interruzione impostati nella procedura memorizzata nidificata saranno ignorati. Tale limitazione riguarda Linux, UNIX e Windows.
- Se si riceve il messaggio di errore 'Si è verificato il timeout durante l'attesa del pacchetto' durante l'esecuzione del debug di una procedura memorizzata Java, provare ad aumentare l'impostazione di timeout Java.
Soluzione temporanea: per aumentare l'impostazione del timeout Java, fare clic su Finestra > Preferenze dalla barra del menu del workbench. Espandere il nodo Java e fare clic su Debug. Sulla pagina delle preferenze di Debug, aumentare il valore di Timeout debugger(ms) nella sezione Timeout di comunicazione. Si consiglia almeno di duplicare il valore predefinito.
- Quando si esegue il debug di una procedura memorizzata Java, se si utilizza l'azione Modifica valore per modificare una variabile che ha un valore stringa vuoto, il pulsante OK nella finestra di dialogo potrebbe non essere attivato.
Soluzione temporanea: Per attivare il pulsante, selezionare il pulsante di opzione Immetti una valutazione, impostare il valore su di una stringa non vuota (ad esempio, 'a'), quindi selezionare il pulsante di opzione Immetti un testo. Il pulsante OK sarà, allora, disponibile.
- Se non vengono visualizzate le variabili locali durante l'esecuzione del debug di una procedura memorizzata Java, la procedura memorizzata potrebbe essere stata distribuita senza l'opzione del compilatore -g.
Soluzione temporanea: assicurarsi di aver specificato l'opzione del compilatore -g quando si distribuiscono le procedure memorizzate Java.
- Se si visualizza un messaggio di errore 'Frame di stack non valido' nella vista Variabili, passare nella vista Debug e fare clic sull'oggetto thread sopra il frame di stack e poi fare clic sul frame di stack. Questa operazione dovrebbe aggiornare la vista Variabili e l'errore non dovrebbe più essere visualizzato.
- Quando si esegue il debug di una procedura memorizzata SQLJ in esecuzione su DB2 UDB for iSeries V5 R4, la riga che viene eseguita correntemente non corrisponderà alla riga di origine SQLJ indicata, visualizzata nella vista Debug, a meno che non è stata applicata una PTF iSeries che aggiorna l'associazione riga perché corrisponda all'origine SQLJ invece che all'origine Java.
- Le preferenze del Debugger per il timout del gestore sessioni (Finestra > Preferenze, quindi espandere Esegui/Debug e fare clic su Debugger procedure memorizzate DB2, poi modificare il campo Timeout del gestore sessioni in minuti) non vengono riconosciute.
- Il debugger non riesce a gestire una procedura memorizzata che contenga un ampio numero di variabili su DB2 per Linux, UNIX e Windows. Il numero massimo di variabili è 200.
- Movimenti del cursore in una sessione di debug: in alcuni casi, quando vi è più di una dichiarazione della variabile in una procedura, è necessario fare clic su Passa a o Passa su più di una volta per poter andare alla riga successiva. Ad esempio, è necessario fare clic due volte su questa riga: DECLARE v_dept, v_actdept CHAR(3); e tre volte su questa riga: DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2); È necessario fare clic tante volte quante sono le dichiarazioni di variabili.
- Se si avvia una sessione di debug per una procedura memorizzata Java e si aggiungono dei punti di interruzione, poi si disabilitano i punti di interruzione, questi ultimi restano abilitati.
Soluzione temporanea: quando si avvia una nuova sessione di debug, è necessario rimuovere prima tutti i vecchi punti di interruzione e poi aggiungere i nuovi.
- In alcuni casi, quando si sta lavorando con più progetti di sviluppo dati, è possibile che si visualizzi un errore quando di prova ad eseguire il debug di una procedura memorizzata, nel quale si dice che è "Impossibile trovare la procedura memorizzata PROCNAME. La procedura potrebbe essere stata eliminata dallo spazio di lavoro " oppure l'"Origine non è stata trovata".
- Dopo aver effettuato il debug di una procedura memorizzata SQL nidificata, a volte la vista dell'output dei dati potrebbe ancora indicare che il debugger sia ancora in esecuzione e potrebbe generare dei problemi su qualsiasi esecuzione successiva o sulla distribuzione di procedure memorizzate.
Soluzione temporanea: il gestore sessioni deve essere eseguitosul computer client che abbia il prodotto per lo sviluppo installato. Per avviare il gestore sessioni, eseguire il file db2dbgm.bat dalla directory bin dell'installazione del prodotto.
- Vi è un supporto limitato per il debug delle procedure memorizzate su un DB2 V8 Linux, Unix, Windows e sui server z/OS. È possibile eseguire il debug solo le procedure SQL su un server DB2 V8 che abbia la fixpak 14 installata. Perché il debbugger funzioni su un server DB2 V8, anche il gestore sessioni deve essere eseguito sul computer client che abbia il prodotto per lo sviluppo installato. Per avviare il gestore sessioni, eseguire il file db2dbgm.bat dalla directory bin dell'installazione del prodotto.
- ALIAS, MQT, NICKNAME e SYNONYM ora vengono supportati durante l'intera progettazione, ma non vengono supportati nel processo di associazione EJB.
- Supporto limitato per MySQL 4.1: le seguenti proprietà non vengono visualizzate correttamente nella vista Proprietà: Indice univoco, incremento automatico delle colonne, valore predefinito delle colonne per NULL e binario. Inoltre, non vengono supportate le procedure e le funzioni di C.
- I trigger, la verifica dei vincoli e le viste non vengono supportate per Cloudscape® v5.1 : i trigger e le verifiche dei vincoli di Cloudscape v5.1 non vengono visualizzati nello strumento Esplora database. Le viste di Cloudscape v5.1 mancano dal corpo SQL nella vista Proprietà. Non è possibile generare DDL o invertire la progettazione dei trigger, della verifica dei vincoli o delle viste di Cloudscape v5.1.
- Vi è un supporto limitato per i tipi di dati strutturati definiti dall'utente in Oracle: il nome del tipo di dati strutturati definito dall'utente non verrà incluso nella definizione della tabelladurante la generazione del DDL per una tabella Oracle.
- L'aggiornamento di un oggetto del contenitore nell'explorer del database potrebbe non riuscire e provocare la seguente eccezione: "Impossibile modificare l'insieme di risorse senza una transazione di scrittura," dopo aver chiuso l'editor di confronto aperto per il confronto degli oggetti nel contenitore dell'explorer del database. Ad esempio, confrontare una tabella nel proprio modello dati fisici con la sua origine iniziale potrebbe provocare tale eccezione.
Soluzione temporanea: quando si verifica tale problema, è possibile selezionare il contenitore che contiene l'oggetto del contenitore e provare nuovamente ad aggiornare. Ad esempio, se non si riesce ad aggiornare una tabella, provare ad aggiornare lo schema che contiene la tabella stessa. Se i tentativi non riescono, sarà necessario disconnettere il database ed eseguire una riconnessione.
Se si definisce una tabella con una sola colonna di tipo dati XML, oppure una qualsiasi tabella con righe non univoche e poi si utilizza un editor di tabelle per eliminare una riga, vengono eliminate tutte le righe che corrispondono alla riga selezionata.
Soluzione temporanea: non utilizzare l'editor dati tabella per eliminare una riga in una tabella con righe duplicate.