ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Borland <jborl...@calpoly.edu>
Subject Re: iBatis - Connections to PostgreSQL Not Closing
Date Mon, 19 Oct 2009 19:58:46 GMT

Thank you for your interest.  Here it is:

==============================

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 
  
<sqlMapConfig>
  <properties resource="ibatis.properties" />
  
  <settings
   cacheModelsEnabled="true"
   enhancementEnabled="true"
   lazyLoadingEnabled="true"
   useStatementNamespaces="false"
  />
  
  <transactionManager type="JDBC">
    <dataSource type="DBCP">
      <property name="driverClassName" value="${driver}"/>
      <property name="url" value="${url}"/>
      <property name="username" value="${username}"/>
      <property name="password" value="${password}"/>
      <property name="logAbandoned" value="true"/>
      <property name="removeAbandoned" value="true"/>
      <property name="removeAbandonedTimeout" value="1"/>
      <property name="Driver.logUnclosedConnections" value="true"/>
    </dataSource>
  </transactionManager>
  
  <sqlMap resource="swingCat-sqlMap.xml" />

</sqlMapConfig>

==============================


Larry Meadors wrote:
> 
> Can you post the sqlmapconfig.xml?
> 
> On Mon, Oct 19, 2009 at 1:44 PM, Jim Borland <jborland@calpoly.edu> wrote:
>>
>> No, I'm not smart enough to use a DAO implementation (I've read a little
>> about them).  Also, I keep reading about Spring -- a whole bunch of stuff
>> on
>> it comes up when I Google on these topics.  Someday I'm going to check
>> into
>> Spring.
>>
>> My situation is very simple and it seems like plain old iBatis ought to
>> be
>> plenty for me in this application.  iBatis is supposed to take care of
>> all
>> the background stuff and just let me write mapped statements.  I'm
>> committed
>> to making iBatis work without a bunch of extra stuff.  Thanks for your
>> interest in my problem.
>>
>>
>> Warren Bell-2 wrote:
>>>
>>> Are you using any DAO implementation ? Spring? Makes things much
>>> simpler.
>>>
>>> Warren
>>>
>>> Jim Borland wrote:
>>>> I've been fighting this issue for a long time now and am quite
>>>> frustrated.  I
>>>> originally started out with just:
>>>>
>>>> --> artists = (ArrayList) sqlMap.queryForList("getArtistInfo", list );
>>>> --
>>>> but was getting all these <IDLE> connections.  So I tried adding
>>>> start/commit/end transaction statements surrounding the query.  Still
>>>> getting <IDLE>s so then I tried using :
>>>>
>>>> --> session = sqlMap.openSession(); -- and letting the session
>>>> start/commit/end the transaction.  Still got <IDLE>s.  That's when
I
>>>> tried
>>>> creating, using and closing my own connection with the same sad result.
>>>>
>>>> One thing Rick Wellman said was especially interesting.  Every time you
>>>> create an instance of SqlMapClient you create an entirely new
>>>> connection
>>>> pool.  I hadn't thought about that before.  I guess the bottom line is
>>>> I
>>>> don't really understand what is happening in a connection pool.  Still,
>>>> my
>>>> situation is so simple, yet the same bad outcome occurs no matter what
>>>> I
>>>> try.  Help!
>>>>
>>>>
>>>> Rick.Wellman wrote:
>>>>
>>>>> Since I have some time over lunch:
>>>>> 1) I agree with Larry's reply below
>>>>> 2) At the risk of embarrassing myself on this forum, see below for my
>>>>> reply to your comments and questions:
>>>>>
>>>>> [your-code-sample-was-here]
>>>>> [your-comments-were-here]
>>>>> I've been wrestling with this problem for a long time and right now
>>>>> there are three things about which I wonder:
>>>>>
>>>>> (1) All the code examples I've seen show the sqlMapClient being
>>>>> generated in the same try statement as the actual query. I'm creating
>>>>> it
>>>>> in a separate class and passing it to another class. Could this be a
>>>>> problem? I'm not sure why it would matter, but that is something
>>>>> unique
>>>>> about my situation.
>>>>>
>>>>>>> Usually, your entire application would share a single instance
of
>>>>>>>
>>>>> SqlMapClient.  It matters in the sense that it is un-necessary and
>>>>> would, at a minimum, create an entirely new connection pool (see #3
>>>>> for
>>>>> more)
>>>>>
>>>>> (2) In the above code I use the DataSource obtained from SqlMapClient
>>>>> --
>>>>> Is there something wrong with doing this?
>>>>>
>>>>>>> Well, probably... and it is un-necessary.  Use Larry's version.
>>>>>>> (i.e.
>>>>>>>
>>>>> the "normal" way to use the SqlMapClient)
>>>>>
>>>>> (3) Have I somehow mis-configured the connection pool?
>>>>>
>>>>>>> I could be wrong but I still highly suspect that the connections
are
>>>>>>>
>>>>> a result of the connection pool and it seems to me that you're not
>>>>> understanding the purpose of a connection pool.  i.e. You're trying
to
>>>>> explicitly open a connection with code.  The connection pool will
>>>>> usually expand and contract the number of connections to the database
>>>>> based on the load and its configuration (which is why it is called a
>>>>> "pool").  You do not have "direct" control over which connection your
>>>>> iBatis SqlMapClient will use [nor do you probably want that].  I
>>>>> apologize in advance if I am way off base with this response; not my
>>>>> intent to offend, but rather educate.
>>>>>
>>>>> To the masses... in regards to my comment #3, is there an
>>>>> implementation
>>>>> of a "pool" which is not a pool at all but a single connection that
>>>>> someone can use to verify an instance like this?  Or maybe configure
>>>>> the
>>>>> "pool" to only have a size of one?  Just thinking out loud... I've
>>>>> never
>>>>> had reason to look into something like this but it seems like this
>>>>> question comes up every so often? (i.e. the question of connections
>>>>> opened via iBatis)
>>>>>
>>>>> -----Original Message-----
>>>>> From: Larry Meadors [mailto:larry.meadors@gmail.com]
>>>>> Sent: Monday, October 19, 2009 12:56 PM
>>>>> To: user-java@ibatis.apache.org
>>>>> Subject: Re: iBatis - Connections to PostgreSQL Not Closing
>>>>>
>>>>> This looks to me like you are *way* overcomplicating this. :-)
>>>>>
>>>>> The method should be more like this:
>>>>>
>>>>> public List getArtistInfo(){
>>>>>   return sqlMap.queryForList("getArtistInfo", list);
>>>>> }
>>>>>
>>>>> Unless you have some really crazy wacky stuff going on, there should
>>>>> never be a need for you to deal with connections at that level.
>>>>>
>>>>> Also, what's the purpose of passing in 'list' as the second parameter
>>>>> there? I don't see where it would ever be non-null.
>>>>>
>>>>> Larry
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Thanks,
>>>
>>> Warren Bell
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/iBatis---Connections-to-PostgreSQL-Not-Closing-tp25943619p25964382.html
>> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/iBatis---Connections-to-PostgreSQL-Not-Closing-tp25943619p25964622.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message