ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Lamey <cla...@localmatters.com>
Subject Re: How get DB2Connection object from SqlMapClient?
Date Thu, 24 Jan 2008 20:27:42 GMT
So you want to change JDBC driver configuration based on the invoked method?

For reporting reasons?

I'm very curious, can you give more details?  An example?

On 1/24/08 1:19 PM, "Hugh Ross" <hh4ross@gmail.com> 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 <jeffgbutler@gmail.com> 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 <hh4ross@gmail.com> 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 <jeffgbutler@gmail.com> 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 <hh4ross@gmail.com> 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 <jeffgbutler@gmail.com > wrote:
>>>>>> 
>>>>>> This comes up a lot!  I just added a WIKI page describing the
>>>>>> process:
>>>>>> 
>>>>>> http://opensource.atlassian.com/confluence/oss/pages/viewpage.action?page
>>>>>> Id=15597591
>>>>>> 
>>>>>> 
>>>>>> Jeff Butler
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Jan 24, 2008 10:03 AM, Hugh Ross <hh4ross@gmail.com> 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!
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 


Mime
View raw message