ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: Possible Connection Leak
Date Tue, 10 May 2005 18:56:37 GMT
No, transactions are not something that should be behind the DAO layer. DAO 
abstracts persistence only. Transactions are much more coarse grained and 
are often implemented either declaratively, or programmatically in the 
service or sometimes in the presentation layer (struts plugin).

Cheers,
Clinton


On 5/10/05, Rafiq, Adnan <arafiq@carreker.com> wrote:
> 
> So, if I have an interface MyDao with an implementation class called 
> MyDaoImpl, what you are saying is that I should never start/commit/end 
> transactions in the MyDaoImpl class. 
>  But, if we start referring to iBatis classes from outside the Dao, 
> wouldn't that defeat the purpose of using a Dao pattern in the first place?
> 
> -----Original Message-----
> *From:* Clinton Begin [mailto:clinton.begin@gmail.com]
> *Sent:* Monday, May 09, 2005 4:05 PM
> *To:* ibatis-user-java@incubator.apache.org
> *Subject:* Re: Possible Connection Leak
> 
> And just to answer another question....
> 
> NEVER call start/commit/end transaction methods from WITHIN your DAO.
> 
> Cheers,
> Clinton
> 
> On 5/9/05, Henry Lu <zhlu@umich.edu> wrote: 
> > 
> > Exactly.
> > 
> > -Henry
> > 
> > Ming Xue wrote:
> > 
> > >Do you mean I do not need Transaction in SqlMap at all (removing the
> > >TransactionManager tag) ?
> > >
> > >Thanks for any clarification.
> > >
> > >-----Original Message----- 
> > >From: Henry Lu [mailto:zhlu@umich.edu]
> > >Sent: Monday, May 09, 2005 2:23 PM
> > >To: ibatis-user-java@incubator.apache.org 
> > >Subject: Re: Possible Connection Leak
> > >
> > >
> > >No. You config JNDI in the spring.xml instead.
> > >
> > >-Henry
> > >
> > >Ming Xue wrote:
> > >
> > >
> > >
> > >>Hi
> > >> 
> > >>I am using the SpringDAO framework, basically the SqlMapDAOSupport
> > >>and SqlMapTemplate, the Transaction is acturally controlled by
> > >>Spring, in this case, how should I config the transaction of SqlMap, 
> > >>should I use External Type ?
> > >>
> > >> <transactionManager type="EXTERNAL">
> > >> <dataSource type="JNDI">
> > >> <property name="DataSource" value="java:/PlateauDS"/> 
> > >> </dataSource>
> > >> </transactionManager>
> > >>
> > >>Here is my DAO
> > >>
> > >>public class MyDAO extends SqlMapDAOSupport implements MyDAOService
> > >>
> > >>{
> > >> public void myMethod () {
> > >>
> > >> getSqlMapClientTemplate().insert("insertAccount", account);
> > >>
> > >> }
> > >>
> > >>}
> > >>
> > >>The transaction is started in the EJB level, which calls the DAO, and
> > >>a EJB may call any number of DAO to do the job, in this case,
> > >>do I need to put in the SQLMap.startTransaction in the DAO code ? 
> > >>
> > >>Thanks
> > >>Ming
> > >>
> > >>
> > >>
> > >>
> > >>[Ming Xue]
> > >>
> > >>
> > >> -----Original Message-----
> > >>*From:* Clinton Begin [mailto: clinton.begin@gmail.com]
> > >>*Sent:* Monday, May 09, 2005 1:04 PM
> > >>*To:* ibatis-user-java@incubator.apache.org 
> > >>*Subject:* Re: Possible Connection Leak
> > >>
> > >> Yes, the approach I suggested should be used regardless of your
> > >> transaction type.
> > >>
> > >> Cheers,
> > >> Clinton 
> > >>
> > >> On 5/9/05, *Rafiq, Adnan* <arafiq@carreker.com
> > >> <mailto:arafiq@carreker.com>> wrote:
> > >>
> > >> Thanks Clinton.
> > >>
> > >> We are using session beans to manage transactions in our
> > >> application. Moreover, since we have multiple databases
> > >> involved we are using XA- drivers. 
> > >>
> > >> Will the approach you mentioned still work in this scenario?
> > >>
> > >> -----Original Message-----
> > >> *From:* Clinton Begin [mailto:clinton.begin@gmail.com
> > >> <mailto:clinton.begin@gmail.com>]
> > >> *Sent:* Saturday, May 07, 2005 9:30 PM 
> > >> *To:* ibatis-user-java@incubator.apache.org
> > >> <mailto:ibatis-user-java@incubator.apache.org >
> > >> *Subject:* Re: Possible Connection Leak
> > >>
> > >>
> > >> Do ALL of your SqlMap calls follow this pattern:
> > >>
> > >> try {
> > >> sqlMap.startTransaction();
> > >> //...do work
> > >> sqlMap.commitTransaction();
> > >> } finally {
> > >> sqlMap.endTransaction();
> > >> } 
> > >>
> > >> Clinton
> > >>
> > >>
> > >> On 5/6/05, *Rafiq, Adnan* <arafiq@carreker.com
> > >> <mailto:arafiq@carreker.com>> wrote:
> > >>
> > >> I am using a transaction manager type = JTA in my
> > >> sql-map-config.xml file.
> > >> After running the application for a while, I am
> > >> getting the following
> > >> message in my Weblogic 8.1 console:
> > >>
> > >> <May 6, 2005 5:09:08 PM CDT> <Warning> <Common>
> > >> <BEA-000620> <Forcibly
> > >> releasing
> > >> inactive resource
> > >> "weblogic.jdbc.common.internal.ConnectionEnv@57bebf" back
> > >> into the pool "TP_BOFA_SYS".>
> > >>
> > >> According to BEA, there is a connection leak
> > >> somewhere. Is it possible that
> > >> iBatis is not properly closing a connection after
> > >> obtaining it?
> > >>
> > >> Has anyone else come across a similar issue?
> > >>
> > >>
> > >>
> > >>
> > >>
> > >
> > >
> > >
> > >
> > 
> 
>

Mime
View raw message