Re: Identifikace uživatele v connection poolu JDBC
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
Re: Identifikace uživatele v connection poolu JDBC
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
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