© 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 IBM Corp.
Esistono 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, ad esempio procedure memorizzate e 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 esiste alcun supporto della strumentazione SQL per le routine in una progettazione dati. Nello sviluppo di routine, si consiglia di utilizzare il progetto di sviluppo dati designato, che fornisce un supporto più completo, comprendendo procedure guidate, editor di routine, supporto di debug e l'integrazione della strumentazione SQL.
Nell'editor dati tabella, se viene eseguita una convalida XML su una tabella XML che non ha una chiave primaria, la convalida funzionerà solo la prima volta, quando viene inserito il valore XML. Inoltre, con la convalida XML si verificherà un errore di aggiornamento di una colonna XML esistente.
Soluzione temporanea: creare una chiave primaria per le tabelle contenenti colonne XML.
Lavorare con più elementi root in tale editor può causare errori nel salvataggio del file XSD con annotazioni.
Soluzione temporanea: creare una serie separata di file di documento schema XML per ciascun elemento root.
Per poter utilizzare i tipi di dati XML e lavorare con schemi XML è necessario connettersi a 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 attualmente non supporta variabili host durante l'azione Esegui SQL.
Soluzione temporanea: è possibile eseguire SQL dal generatore SQL, se si tratta di un'istruzione DML.
- Nel generatore SQL la sintassi SQL completa non è supportata. Ad esempio, non sono supportati tipi definiti dall'utente (UDT) e funzioni di tabella.
- Tipi definiti dall'utente (UDT) non sono supportati come parametro per routine.
- Per distribuire procedure memorizzate Java™ indirizzate a DB2 Universal Database™ per iSeries® dal file system utilizzando la distribuzione Ant, è necessario accertarsi che il file jt400.jar si trovi nel percorso classi del sistema. Se si tenta di 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: accertarsi che il file db2jcc.jar e i file di licenza appropriati si trovino nel percorso classi del sistema.
- Quando vengono distribuite o eseguite procedure memorizzate Java potrebbe essere visualizzato l'errore "impossibile caricare la classe". Ciò può verificarsi se non esiste corrispondenza nella versione JDK tra RAD v7 e il server DB2®, se questo è un JDK di livello inferiore.
Soluzione temporanea: durante la distribuzione di procedure memorizzate Java sui server che utilizzano un livello JDK 1.4, nel campo Opzioni di compilazione della procedura guidata Distribuzione routine è necessario specificare l'opzione "-source 1.4" (ad esempio, un server DB2 Universal Database per Linux®, UNIX® e Windows® V8.2). Generalmente, utilizzare l'opzione di compilazione appropriata "-source JDK level " in modo che il livello JDK sul server del database corrisponda.
- Quando viene distribuita una procedura memorizzata o UDF utilizzando la funzionalità di distribuzione Ant, se il file tools.jar non si trova nel percorso classi, potrebbe essere visualizzato il seguente messaggio:
Impossibile trovare tools.jar. Dovrebbe trovarsi in F:\jre\1.4.2\lib\tools.jar
Il file tools.jar fa parte dell'ambiente JRE (Java Runtime Environment), non dello strumento di distribuzione Ant.Soluzione temporanea: il file tools.jar non è necessario per eseguire lo script Ant e per ora è possibile ignorare questo messaggio.
- Quando si modifica il nome del metodo Java nell'editor della procedura memorizzata, non è possibile salvare correttamente la procedura facendo clic con il pulsante destro del mouse nella pagina Origine dell'editor e selezionando Salva.
Soluzione temporanea: salvare la procedura memorizzata facendo clic su File->Salva premendo Ctrl+S o facendo clic sull'icona Sa.va
- Se si trascina e rilascia una procedura memorizzata o UDF tra server diversi (ad esempio, da un server DB2 Universal Database per Linux, UNIX e Windows a un server DB2 Universal Database per z/OS®), durante l'operazione di trascinamento e rilascio verrà visualizzata un'avvertenza relativa a determinate incompatibilità tra i due server. Se si continua con l'operazione e quindi si tenta di aprire la procedura memorizzata o l'UDF, potrebbe essere visualizzato un errore.
- L'esecuzione di una creazione profilo SQL su un server DB2 UDB per Linux, UNIX e Windows V8.2 potrebbe causare un'eccezione di puntatore null se il server non dispone della 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, ad esempio INSERT, SELECT, DELETE e UPDATE eseguite nella procedura. Gli eventi, tuttavia, non vengono generati in stile deterministico per istruzioni procedurali quali assegnazioni di variabili e strutture di controllo del tipo WHILE o IF. Per tale motivo, per istruzioni procedurali è possibile che non vengano generate informazioni sulla creazione di profili.
- 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 viene ricevuto l'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 di menu del workbench. Espandere il nodo Java e fare clic su Debug. Nella pagina delle preferenze di debug, aumentare il valore di timeout del debugger (in ms) nella sezione Timeout di comunicazione. Si consiglia quanto meno di raddoppiare il valore predefinito.
- Quando si esegue il debug di una procedura memorizzata Java, se si utilizza l'azione Modifica valore per modificare una variabile con un valore stringa vuoto, il pulsante OK nella finestra di dialogo di modifica potrebbe non essere abilitato.
Soluzione temporanea: per abilitare il pulsante, selezionare il pulsante di opzione Immetti una valutazione, impostare il valore su una stringa non vuota (ad esempio 'a') e quindi selezionare il pulsante di opzione Immetti un testo. Il pulsante OK diverrà disponibile.
- Durante l'esecuzione del debug di una procedura memorizzata Java, se non vengono visualizzate variabili locali, la procedura memorizzata potrebbe essere stata distribuita senza l'opzione del compilatore -g.
Soluzione temporanea: accertarsi di aver specificato l'opzione del compilatore -g in fase di distribuzione delle procedure Java memorizzate.
- Se viene visualizzato l'errore 'Frame di stack non valido' nella vista Variabili, passare alla vista Debug e fare clic sull'oggetto thread sopra il frame di stack e quindi fare clic sul frame di stack. Questa operazione dovrebbe aggiornare la vista Variabili e l'errore non dovrebbe più essere visualizzato.
- Quando viene eseguito il debug di una procedura memorizzata SQLJ in esecuzione su DB2 UDB per iSeries V5 R4, la riga che attualmente viene eseguita non corrisponderà alla riga di origine SQLJ indicata, visualizzata nella vista Debug, a meno che non sia stata applicata una fix PTF iSeries che aggiorna l'associazione della riga in modo che corrisponda all'origine SQLJ invece che all'origine Java.
- Non vengono riconosciute le preferenze del debugger per timeout del gestore di sessione (Finestra> Preferenze, espandere Esegui/Debug e fare clic su Debugger procedure memorizzate DB2, quindi modificare il timeout del gestore di sessione nel campo minuti).
- Su DB2 per Linux, UNIX e Windows il debugger non è in grado di gestire una procedura memorizzata contenente un numero elevato di variabili. Il numero massimo di variabili è 200.
- Movimento del cursore in una sessione di debug: in alcuni casi, quando esiste più di una dichiarazione della variabile in una procedura, è necessario fare clic su Passa a o Passa su più di una volta per potersi spostare 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, cioè, fare clic tante volte quante sono le dichiarazioni di variabili.
- Se viene avviata una sessione di debug per una procedura memorizzata Java e vengono aggiunti e poi disabilitati punti di interruzione, questi restano abilitati.
Soluzione temporanea: quando si avvia una nuova sessione di debug, è necessario prima rimuovere tutti i vecchi punti di interruzione e poi aggiungere i nuovi.
- In alcuni casi, lavorando con più progetti di sviluppo dati, è possibile, tentando di eseguire il debug di una procedura memorizzata, che venga visualizzato un errore indicante che è "Impossibile trovare la procedura memorizzata PROCNAME. La procedura potrebbe essere stata eliminata dallo spazio di lavoro " oppure l'"Origine non è stata trovata".
- Dopo il debug di una procedura memorizzata SQL nidificata, talvolta la vista di output dei dati potrebbe essere visualizzata quando il debugger è ancora in esecuzione; ciò può causare problemi sulle successive esecuzioni o distribuzioni di procedure memorizzate.
Soluzione temporanea: il gestore di sessione deve essere eseguito sulla macchina client con il prodotto di sviluppo installato. Per avviare il gestore di sessione, eseguire il file db2dbgm.bat dalla directory bin di installazione del prodotto.
- Su server DB2 V8 Linux, Unix, Windows e z/OS il supporto per il debug di procedure memorizzate è limitato. Su un server DB2 V8 con il fix pack 14 installato è possibile effettuare il debug solo di procedure SQL. Per fare in modo che il debugger funzioni in un server DB2 V8, il gestore di sessione deve essere eseguito anche sulla macchina client con il prodotto di sviluppo installato.Per avviare il gestore di sessione, eseguire il file db2dbgm.bat dalla directory bin di installazione del prodotto.
- ALIAS, MQT, NICKNAME e SYNONYM attualmente sono supportati durante l'intera progettazione, ma non 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 sono supportate funzioni e procedure C.
- Trigger, viste e vincoli di verifica non sono supportati per Cloudscape® v5.1: trigger e vincoli di verifica Cloudscape v5.1 non vengono visualizzate in Esplora database. Le viste Cloudscape v5.1 mancano dal corpo SQL nella vista Proprietà. Non è possibile generare DDL o decodificare trigger, verifica vincoli o viste di Cloudscape v5.1.
- Il supporto per tipi dati strutturati definiti dall'utente in Oracle è limitato: il nome del tipo di dati strutturati non verrà incluso nella definizione di tabella nella generazione di DDL per una tabella Oracle.
- L'aggiornamento di un oggetto contenitore nell'esplorazione database può non avvenire in maniera corretta e causare un'eccezione simile alla seguente: "impossibile modificare una serie di risorse senza una transazione in scrittura," dopo la chiusura dell'editor di confronto aperto per confrontare oggetti nel contenitore dell'esplorazione database. Ad esempio, tale eccezione può essere causata dal confronto di una tabella nel modello dati fisico con la relativa origine.
Soluzione temporanea: è possibile selezionare il contenitore in cui si trova l'oggetto contenitore e ritentare l'aggiornamento. Ad esempio, nel caso l'aggiornamento di una tabella non avvenga in maniera corretta, tentare di aggiornare lo schema contenente la tabella. Se l'aggiornamento continua a non avvenire, è necessario disconnettere e riconnettere il database.
Se viene definita una tabella con una singola colonna di tipo dati XML, oppure una qualsiasi tabella con righe non univoche e quindi viene utilizzato un editor di tabelle per eliminare una riga, vengono eliminate tutte le righe corrispondenti alla riga selezionata.
Soluzione temporanea: non utilizzare l'editor dati di tabella per eliminare una riga in una tabella con righe duplicate.