Re: Identifikace uživatele v connection poolu JDBC

2014-02-18 Tema obsahu Jiří Mareš

Ahoj,

v DB2 resime podobny problem pomoci nastavovani promenne DB2Connection, 
kterou lze v DB cist ...


S pozdravem

On 02/18/2014 10:13 AM, Miroslav Paulfranc wrote:

Zdravím.
Taktéž jsem viděl řešit podobnou situaci zavoláním db procedury (tj.
před vlastním dotazem byla zavolána nějaká procedura registerUser s
identifikací uživatele) - jak už zde někteří psali.
M.P.

-- Původní zpráva --
Od: Petr Šrajer petr.sra...@ais.cz
Komu: Java konference@java.cz
Datum: 17. 2. 2014 14:45:28
Předmět: Identifikace uživatele v connection poolu JDBC


Pěkný den.

V serverové aplikaci používáme connection pool . Uživatelé tedy
přistupují k databázi přes JDBC pod jediným DB uživatelem. Náš
zákazník nyní požaduje, abychom byli schopni identifikovat
dlouhoběžící SQL dotazy na úrovni aplikačního uživatele.
Jako ORM vrstvu používáme Eclipselink, DB servery používáme Oracle a
IBM Informix. Napadají mě 2 možné varianty - nějakým způsobem
přeposílat opravdového operátora jako součást dotazu a nějak
operátora zobrazit přímo na DB serveru. Nebo použít nějaký proxy
JDBC driver, který by uměl uživatele evidovat a vypsat.
Pokud máte zkušenosti s tímto problémem prosím dejte vědět jak jste
problém řešili u Vás.

Díky
Petr Šrajer



--
Jiří Mareš (mailto:jiri.ma...@svt.cz)
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic


Identifikace uživatele v connection poolu JDBC

2014-02-17 Tema obsahu Petr Šrajer
Pěkný den.

V serverové aplikaci používáme connection pool . Uživatelé tedy 
přistupují k databázi přes JDBC pod jediným DB uživatelem. Náš zákazník nyní 
požaduje, abychom byli schopni identifikovat dlouhoběžící SQL dotazy na úrovni 
aplikačního uživatele.
Jako ORM vrstvu používáme Eclipselink, DB servery používáme Oracle a 
IBM Informix. Napadají mě 2 možné varianty - nějakým způsobem přeposílat 
opravdového operátora jako součást dotazu a nějak operátora zobrazit přímo na 
DB serveru. Nebo použít nějaký proxy JDBC driver, který by uměl uživatele 
evidovat a vypsat. 
Pokud máte zkušenosti s tímto problémem prosím dejte vědět jak jste 
problém řešili u Vás.

  Díky
Petr Šrajer

Re: Identifikace uživatele v connection poolu JDBC

2014-02-17 Tema obsahu Ondra Medek
Ahoj,

viz java.sql.Connection.setClientInfo(String, String). používal jsem kdysi
přesně na stejnou věc pro Oracle. Akorát už se nepamatuji přesně jaký
parametr name jsem tenkrát používal, asi ClientUser, jak je nápověda v
javadoc.

Ondra Medek


2014-02-17 14:14 GMT+01:00 Petr Šrajer petr.sra...@ais.cz:

 Pěkný den.

 V serverové aplikaci používáme connection pool . Uživatelé tedy
 přistupují k databázi přes JDBC pod jediným DB uživatelem. Náš zákazník
 nyní požaduje, abychom byli schopni identifikovat dlouhoběžící SQL dotazy
 na úrovni aplikačního uživatele.
 Jako ORM vrstvu používáme Eclipselink, DB servery používáme Oracle
 a IBM Informix. Napadají mě 2 možné varianty - nějakým způsobem přeposílat
 opravdového operátora jako součást dotazu a nějak operátora zobrazit přímo
 na DB serveru. Nebo použít nějaký proxy JDBC driver, který by uměl
 uživatele evidovat a vypsat.
 Pokud máte zkušenosti s tímto problémem prosím dejte vědět jak
 jste problém řešili u Vás.

   Díky
 Petr Šrajer


Re: Identifikace uživatele v connection poolu JDBC

2014-02-17 Tema obsahu Martin Peterka
Pro plnění auditačních položek přes triggery používáme
vlastní implementaci org.springframework.jdbc.datasource.DelegatingDataSource,
která přidává (plsql procedura) informace o uživateli do session přes
Oracle DBMS_APPLICATION_INFO.
Nevím, jestli to bude použitelné i pro výpis dlouhoběžících sql dotazů -
neznám...
Martin Peterka

2014-02-17 14:14 GMT+01:00 Petr Šrajer petr.sra...@ais.cz:

 Pěkný den.

 V serverové aplikaci používáme connection pool . Uživatelé tedy
 přistupují k databázi přes JDBC pod jediným DB uživatelem. Náš zákazník
 nyní požaduje, abychom byli schopni identifikovat dlouhoběžící SQL dotazy
 na úrovni aplikačního uživatele.
 Jako ORM vrstvu používáme Eclipselink, DB servery používáme Oracle
 a IBM Informix. Napadají mě 2 možné varianty - nějakým způsobem přeposílat
 opravdového operátora jako součást dotazu a nějak operátora zobrazit přímo
 na DB serveru. Nebo použít nějaký proxy JDBC driver, který by uměl
 uživatele evidovat a vypsat.
 Pokud máte zkušenosti s tímto problémem prosím dejte vědět jak
 jste problém řešili u Vás.

   Díky
 Petr Šrajer