Thanks. Looks like JDBC V4/Java 6 is adding a method to Connection itself for this purpose. That will make things a lot easier.
On 1/24/08, Jeff Butler <[EMAIL PROTECTED]> wrote: > > Well...this is a real beauty of open source - you can easily change the > inner class to public and recompile (you could also add the missing methods > to the log proxy classes if you want to stay at 2.2). I'll commit a > change to make the inner class public so that your code won't break with > future releases. > > Jeff Butler > > > > On Jan 24, 2008 2:19 PM, Hugh Ross <[EMAIL PROTECTED]> wrote: > > > Unfortunately, the InvocationHandler for SimplePooledConnection is a > > private nested class. > > > > Yes, we can set properties at the DataSource level, but we want to > > change it at run time based on the data access "service" being invoked ( > > e.g., for finer-grain performance reporting). > > > > > > On 1/24/08, Jeff Butler <[EMAIL PROTECTED]> wrote: > > > > > > I see. Then you'll need to do the "isProxy" method and check for > > > SimplePooledConnection as the invocation handler. Then you can call the > > > getRealConnection() method - which may return a further proxied object if > > > logging is enabled. Proxy upon proxy - it can get complex to unwind these > > > things. > > > > > > I have to wonder - is this really necessary? You can probably set the > > > value you mentioned as a driver property and not have to write all this > > > untangling code. > > > > > > Jeff Butler > > > > > > > > > > > > > > > On Jan 24, 2008 12:33 PM, Hugh Ross <[EMAIL PROTECTED]> wrote: > > > > > > > In my debugger, it looks like my Proxy is > > > > actually SimpleDataSource-related, not logging. And, SimpleDataSource > > > > seems > > > > to have a method to unrwrapConnection(). Still digging... > > > > > > > > > > > > On 1/24/08, Jeff Butler <[EMAIL PROTECTED] > wrote: > > > > > > > > > > I just checked SVN and that method was indeed added in 2.3. I'll > > > > > add that information to the WIKI page. > > > > > > > > > > There's no other way to the underlying Connection object unless > > > > > you disable logging in all circumstances, or you write some custom > > > > > reflection code that gives you access to the private field. > > > > > Upgrading to > > > > > 2.3 is much easier (I would say that 2.3 is quite stable - it's > > > > > been out over a year). > > > > > > > > > > Jeff Butler > > > > > > > > > > > > > > > On Jan 24, 2008 11:56 AM, Hugh Ross <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > Thanks, Jeff. I'm not finding a getConnection method in the > > > > > > ConnectionLogProxy class. Is that because I'm using iBATIS > > > > > > 2.2.0? If so, is there another way to get the underlying > > > > > > Connection object? > > > > > > > > > > > > > > > > > > On 1/24/08, Jeff Butler <[EMAIL PROTECTED] > wrote: > > > > > > > > > > > > > > This comes up a lot! I just added a WIKI page describing the > > > > > > > process: > > > > > > > > > > > > > > http://opensource.atlassian.com/confluence/oss/pages/viewpage.action?pageId=15597591 > > > > > > > > > > > > > > > > > > > > > Jeff Butler > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Jan 24, 2008 10:03 AM, Hugh Ross <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > Can anyone provide some sample code for this? > > > > > > > > > > > > > > > > I tried, but seemed to be blocked by $proxy objects or odd > > > > > > > > looking com.ibm.db2.jcc.b.b objects... > > > > > > > > > > > > > > > > For example, this did not work for me: > > > > > > > > > > > > > > > > java.sql.Connection conn = > > > > > > > > sqlMapClient.getCurrentConnection(); > > > > > > > > > > > > > > > > if (conn instanceof com.ibm.db2.jcc.DB2Connection ) > > > > > > > > { > > > > > > > > com.ibm.db2.jcc.DB2Connection db2conn = ( > > > > > > > > com.ibm.db2.jcc.DB2Connection)conn; > > > > > > > > db2conn.setDB2ClientApplicationInformation > > > > > > > > ("SomethingUsefulHere"); > > > > > > > > } > > > > > > > > > > > > > > > > I also tried getting the DataSource 1st. > > > > > > > > > > > > > > > > Thanks! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >