Roberto Montaruli
2007-11-24 12:47:21 UTC
Se qualcuno si e' gia' imbattuto nel mio problema, forse puo' darmi una
dritta.
Vi spiego.
Devo accedere ad un database Oracle con java.
Con altri linguaggi utilizzo un oggetto ADO, al quale passo, tra gli
altri parametri, il nome dell'etichetta di connessione al DB, i cui
parametri sono definiti nel file di Oracle TNSNAMES.ORA.
Pensavo che con java ci fosse qualcosa di simile, ma il jdbc si comporta
con una leggera differenza: invece dell'etichetta del DB con la quale
accedere al file TNSNAMES.ORA vuole proprio la stringa di descrizione
della connessione, la medesima che e' presente nel TNSNAMES.ORA
Per ragioni di economicita' di gestione, non posso permettere che
qualora vi siano dei cambiamenti ai parametri del database, oltre al
TNSNAMES.ORA vengano modificati tutti i files di configurazione di tutte
le applicazioni che vi accedono.
Quindi pensavo di creare un meccanismo che consenta all'applicazione di
ricavare la stringa di descrizione dal file TNSNAMES.ORA medesimo.
Se non che, mi sono imbattuto in un paio di difficolta' di ordine pratico.
Questa roba deve girare in ambiente windows.
La dichiarazione della variabile ORACLE_HOME, che sotto unix sta in
environment, sotto windows sta nel registro, e java, essendo platform
independent, al registro non ci accede, se non con metodi sporchi che
intendo evitare.
Potrei passargli a mano un -DORACLE_HOME=C:\oracle\ora92, ma quando un
dopodomani aggiorneranno il DB ad un'altra versione di oracle, cambiera'
il percorso e l'applicazione non girera' piu'.
C'e' un modo per gestire il tutto in modo dinamico, in modo che
qualunque cosa succeda al DB, l'applicazione non richieda di dovergli
specificare nuovamente dove si trova Oracle?
dritta.
Vi spiego.
Devo accedere ad un database Oracle con java.
Con altri linguaggi utilizzo un oggetto ADO, al quale passo, tra gli
altri parametri, il nome dell'etichetta di connessione al DB, i cui
parametri sono definiti nel file di Oracle TNSNAMES.ORA.
Pensavo che con java ci fosse qualcosa di simile, ma il jdbc si comporta
con una leggera differenza: invece dell'etichetta del DB con la quale
accedere al file TNSNAMES.ORA vuole proprio la stringa di descrizione
della connessione, la medesima che e' presente nel TNSNAMES.ORA
Per ragioni di economicita' di gestione, non posso permettere che
qualora vi siano dei cambiamenti ai parametri del database, oltre al
TNSNAMES.ORA vengano modificati tutti i files di configurazione di tutte
le applicazioni che vi accedono.
Quindi pensavo di creare un meccanismo che consenta all'applicazione di
ricavare la stringa di descrizione dal file TNSNAMES.ORA medesimo.
Se non che, mi sono imbattuto in un paio di difficolta' di ordine pratico.
Questa roba deve girare in ambiente windows.
La dichiarazione della variabile ORACLE_HOME, che sotto unix sta in
environment, sotto windows sta nel registro, e java, essendo platform
independent, al registro non ci accede, se non con metodi sporchi che
intendo evitare.
Potrei passargli a mano un -DORACLE_HOME=C:\oracle\ora92, ma quando un
dopodomani aggiorneranno il DB ad un'altra versione di oracle, cambiera'
il percorso e l'applicazione non girera' piu'.
C'e' un modo per gestire il tutto in modo dinamico, in modo che
qualunque cosa succeda al DB, l'applicazione non richieda di dovergli
specificare nuovamente dove si trova Oracle?