Problemi di accesso ai dati per le origini dati Oracle
Utilizzare i suggerimenti per la risoluzione dei problemi per accedere alle origini dati Oracle .
Quale errore viene visualizzato quando si tenta di accedere all'origine dati basata su Oracle?
- È stato specificato un URL Oracle non valido
- DSRA0080E: È stata ricevuta l'eccezione dall'adattatore dell'archivio dati. Vedere il messaggio di eccezione originale: ORA-00600
- DSRA8100E: Impossibile ottenere {0} dall'origine dati. Spiegazione: per ulteriori informazioni, consultare linkedException .
- Errore durante il richiamo del testo per l'errore
- Gli errori del programma di caricamento classi si verificano quando si utilizza un driver OCI Oracle come provider JDBC
- java.lang.UnsatisfiedLinkError durante la connessione a un'origine dati Oracle
- Gli errori si verificano quando si fa riferimento alle classi Oracle o quando ci si connette a un'origine dati Oracle
- WSVR0016W: La voce del percorso classe per il driver Thin Oracle JDBC ha una variabile non valida
- Errore di ripristino transazione (per origini dati XA)
- Application Server riceve un errore nel file SystemOut.log quando registra l' Oracle JDBC Diagnosability MBean
È stato specificato un URL Oracle non valido
Questo errore potrebbe essere causato da un URL non correttamente specificato nella proprietà URL dell'origine dati di destinazione.
Esaminare la proprietà URL dell'oggetto origine dati nella console amministrativa per verificare che sia corretta.
- Per il driver thin: jdbc:oracle:thin:@//hostname:1521/myDatabase
- Per il driver thick (OCI): jdbc:oracle:oci:@tnsname1
DSRA0080E: È stata ricevuta un'eccezione dall'adattatore dell'archivio dati. Vedere il messaggio di eccezione originale: ORA-00600
Un motivo possibile per questa eccezione è che la versione del programma di controllo Oracle JDBC utilizzata è precedente al database Oracle . È possibile che su WebSphere® Application Serversia configurata più di una versione del driver Oracle JDBC .
Esaminare la versione del driver JDBC . A volte è possibile determinare la versione esaminando il percorso di classe per determinare in quale directory si trova il driver.
import java.sql.*;
import oracle.jdbc.driver.*;
class JDBCVersion
{
public static void main (String args[])
throws SQLException
{
// Load the Oracle JDBC driver
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// Get a connection to a database
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@appaloosa:1521:app1","sys","change_on_install");
// Create Oracle DatabaseMetaData object
DatabaseMetaData meta = conn.getMetaData();
// gets driver info:
System.out.println("JDBC driver version is" + meta.getDriverVersion());
}
}Se il driver e il database si trovano su versioni differenti, sostituire il driver JDBC con la versione corretta. Se sono configurati più driver, rimuovere quelli che si verificano al livello non corretto.
DSRA8100E: Impossibile ottenere un {0} dall'origine dati. Spiegazione: consultare linkedException per ulteriori informazioni.
Quando si utilizza un driver thin oracle, Oracle crea unjava.sql.SQLException: invalid arguments in callerrore se non viene specificato alcun nome utente o parola d'ordine durante il richiamo di una connessione. Se questo errore viene visualizzato durante l'esecuzione di WebSphere Application Server, l'alias non viene impostato.
Per eliminare l'eccezione, definire l'alias sull'origine dati.
Errore durante il tentativo di richiamare il testo per l'errore
La causa probabile di questo errore è che il driver OCI Oracle venga utilizzato con una proprietà ORACLE_HOME che non è impostata o non è impostata correttamente.
Per correggere l'errore, esaminare il profilo utente sotto il quale è in esecuzione WebSphere Application Server per verificare che la variabile di ambiente $ORACLE_HOME sia impostata correttamente.
Gli errori del programma di caricamento classe si verificano quando si utilizza un driver OCI Oracle come provider JDBC
Quando si configura un driver OCI Oracle come provider JDBC , è necessario specificare il percorso in cui sono memorizzate le librerie native. Se non è stato specificato un percorso di libreria nativa, la prima volta che si tenta di connettersi utilizzando questo fornitore, si verificano errori del programma di caricamento classi.
Per risolvere questo problema, fare clic su , selezionare il programma di controllo OCI Oracle , quindi specificare il percorso delle librerie native nel campo Percorso libreria nativa .
java.lang.UnsatisfiedLinkError durante la connessione a un'origine dati Oracle
La variabile di ambiente LIBPATH potrebbe non essere impostata o non è impostata correttamente, se l'origine dati crea unUnsatisfiedLinkError e l'eccezione completa indica che il problema è relativo a un modulo di Oracle .
- Esaminare il profilo utente sotto il quale è in esecuzione WebSphere Application Server per verificare che la variabile di ambiente LIBPATH includa le librerie Oracle .
Configurare la proprietà Java LIBPATH (java.library.path) con la variabile di ambiente domain_region_libpath, come control_region_libpath, server_region_libpath, adjunct_region_libpath. Consultare l'argomento sulla modifica dei valori delle variabili a cui si fa riferimento nei messaggi BBOM0001I per istruzioni su come impostare le variabili LIBPATH della regione.
Gli errori si verificano quando si fa riferimento alle classi Oracle o quando ci si connette a un'origine dati Oracle
Ricevere gli errori java.lang.NullPointerException quando si fa riferimento alle classi Oracle oppureinternal error: oracle.jdbc.oci. OCIEnverrori durante la connessione a una origine dati Oracle
Il problema potrebbe essere che il driver OCI viene utilizzato su una macchina AIX® , LIBPATH è impostato correttamente, ma la variabile di ambiente ORACLE_HOME non è impostata o non è impostata correttamente. È possibile che si verifichi un'eccezione simile a quella riportata di seguito quando l'applicazione tenta di connettersi a un'origine dati Oracle :
Per risolvere il problema, esaminare il profilo utente sotto cui è in esecuzione WebSphere Application Server per verificare che la variabile di ambiente $ORACLE_HOME sia impostata correttamente e che $LIBPATH includa $ORACLE_HOME/lib.
WSVR0016W: La voce del percorso classe per il driver Thin Oracle JDBC ha una variabile non valida
Questo errore si verifica quando non è definita alcuna variabile di ambiente per la proprietà, ORACLE_JDBC_DRIVER_PATH.
Verificare questo problema nella console di gestione. Andare a per verificare che la variabile ORACLE_JDBC_DRIVER_PATH sia definita.
Per risolvere il problema, fare clic su Nuovo e definire la variabile. Ad esempio, nome: ORACLE_JDBC_DRIVER_PATH, valore: c:\oracle\jdbc\lib. Utilizzare un valore che denomi la directory nel sistema operativo che contiene il file ojdbc6.jar (o il file ojdbc6_g.jar per abilitare la traccia Oracle ).
Errore di ripristino della transazione (per le origini dati XA)
Problema
WTRN0037W: The transaction service encountered an error on an xa_recover operation.
The resource was com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@1114a62.
The error code was XAER_RMERR. The exception stack trace follows:
javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:726)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:954)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:137)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:609)
at com.ibm.ws.Transaction.JTA.PartnerLogTable.recover(PartnerLogTable.java:511)
at com.ibm.ws.Transaction.JTA.RecoveryManager.resync(RecoveryManager.java:1784)
at com.ibm.ws.Transaction.JTA.RecoveryManager.run(RecoveryManager.java:2241)Causa
Oracle richiede servizi come il servizio di transazioni WebSphere Application Server per disporre di autorizzazioni speciali per l'esecuzione dei recuperi delle transazioni.
Soluzione
grant select on pending_trans$ to public;
grant select on dba_2pc_pending to public;
grant select on dba_pending_transactions to public;
grant execute on dbms_system to <user>;Utente è un ID utente nel server delle applicazioni autorizzato ad eseguire il recupero delle transazioni per l'origine dati XA. Se non è stato autorizzato alcun ID utente ad eseguire il ripristino della transazione, il server delle applicazioni utilizza l'alias di login per l'origine dati come ID utente.Questo problema è menzionato in Oracle bug: 3979190. L'esecuzione dei precedenti comandi risolve il problema.
Il server delle applicazioni riceve un errore nel file SystemOut.log quando registra l'MBean di diagnostica Oracle JDBC
E Error while registering Oracle JDBC Diagnosability MBean.
javax.management.MalformedObjectNameException: Invalid character '' in value part of propertyQuesto errore si verifica durante la connessione iniziale ad un database Oracle poiché la diagnosi per l'MBean non è inizializzata correttamente.