Quando la mia applicazione si collega ad un database Oracle, voglio essere in grado di vedere guardando le sessioni attive nel database a cui è connesso. Attualmente si identifica come "JDBC Thin Client" perché questo è il driver che sto usando, ma altre applicazioni basate su Java che ho sono in qualche modo in grado di impostare questo valore su qualcosa di più significativo, come "SQL Developer". Ho pensato che fosse una proprietà dello Connection
o dello OracleDataSource
, ma non sono riuscito a trovarne uno che faccia il trucco. È possibile? Nel caso abbia importanza, sto usando Java 1.5, con Oracle 10g e il driver sottile da 10g.Come faccio a rendere la mia applicazione Java identificarsi con Oracle sulla connessione?
risposta
java.util.Properties props = new java.util.Properties();
props.setProperty("password","mypassword");
props.setProperty("user","myusername");
props.put("v$session.osuser", System.getProperty("user.name").toString());
props.put("v$session.machine", InetAddress.getLocalHost().getCanonicalHostName());
props.put("v$session.program", "My Program Name");
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
Connection conn=
DriverManager.getConnection("jdbc:oracle:thin:@myhostname:1521:mysid", props);
SQL>select username,osuser,program,machine
from v$session
where username = 'ROB';
USERNAME OSUSER PROGRAM MACHINE
--------- ----------- ------------------ -----------
ROB rmerkw My Program Name machine
A livello di applicazione è possibile utilizzare i seguenti metodi per impostare client_info, modulo e azione in v $ session:
dbms_application_info.set_client_info
dbms_application_info.set_module
dbms_application_info.set_action
È necessario definire la proprietà di connessione v$session.program
nell'origine dati, in modo tale che tale proprietà venga aggiunta a ciascuna connessione. Il modo in cui lo fai dipende dall'implementazione dell'origine dati. Il valore impostato per la proprietà verrà visualizzato nella tabella di sessione attiva di Oracle.
C'è un lso una funzione Oracle:
dbms_application_info.set_client_info('Client Info');
che imposta la colonna ClientInfo in v $ session.
Questo potrebbe essere utile se si ha accesso solo alla Connessione piuttosto che al DataSource o DriverManager sottostante.
Dal JDBC Oracle 12.1 è possibile impostare alcuni valori client-Info tramite JDBC, cioè si può fare
connection.setClientInfo("OCSID.CLIENTID", "MyClientId");
oggetti OCSID ...
AZIONE, clientid, ECID, MODULO, sequence_number e DBOP
Vedere https://docs.oracle.com/database/121/JJDBC/jdbcvers.htm#JJDBC29006
impostazione del programma non funziona in questo modo, è possibile farlo come descritto nella risposta accettata o un po 'più semplice impostando la proprietà System "oracle.jdbc.v $ session.program".
- 1. come faccio a rendere la mia funzione di scambio in java?
- 2. Come proteggere la mia applicazione web java?
- 3. Come faccio a testare la mia app Express con moka?
- 4. Come faccio a rendere l'icona della mia mano verde?
- 5. Come abilitare. Native Native sulla mia applicazione?
- 6. Come posso rendere la mia applicazione scrivibile in C#?
- 7. Come rendere la mia applicazione Java scalabile e tollerante ai guasti?
- 8. AntiVirus uccide la mia applicazione
- 9. Come faccio a rendere wget silenzioso?
- 10. Connessione a Oracle dall'app iOS
- 11. Come associo la mia applicazione a un programma aggiunto sulla barra delle applicazioni di Windows 7?
- 12. Compressione della connessione Oracle?
- 13. Come faccio a rendere la mia classe statica non così statica?
- 14. Come faccio a sapere se la mia applicazione non è stata aggiunta al firewall?
- 15. Come utilizzare ACE con la mia applicazione ASP.NET MVC?
- 16. GoogleApps - Come posso distribuire la mia applicazione
- 17. Connessione a Oracle da F #
- 18. Test di connettività IPhone: come faccio a forzare la connessione?
- 19. android: come faccio a contrassegnare la mia app come debuggibile?
- 20. Come faccio a rendere HttpURLConnection un proxy?
- 21. HttpWebRequest: come identificarsi come browser?
- 22. JNI_CreateJavaVM() fallisce ogni volta che faccio funzionare la mia applicazione (esattamente)
- 23. PhoneGap - Come faccio a rendere la barra di stato nera?
- 24. Come faccio a reimplementare valueOf sulla enumerazione
- 25. Come faccio a rendere una barra finale opzionale con webapp2?
- 26. Devo raggruppare librerie C con la mia applicazione Python?
- 27. Come verificare la scalabilità della mia applicazione
- 28. Oracle a confronto timestamp con la data
- 29. Come testare la mia applicazione dock
- 30. Come faccio a trovare la mia fonte SVN?
Si spera di distinguere tra le applicazioni quando si visualizzano le sessioni attive? –