Thanks,
First I will try to close resources before returning.
Although I am sure that the finally blocks are reached, since I use logging in
the last finally block and the log is
outputted.
try {
} finally {
connection.close();
Data.logConnection(connection); // this is logged
}
But I'll give it a try anyway.
Object object = null;
try {
} finally {
close resources..
}
return object;
The static methods are not thread-safe you say!
So, what exactly does it mean when we say that Tomcat is thread safe for
requests.
Tomcat creates a new thread for each request, so somehow my static methods
are then thread safe (incdirectly, since it is managed by Tomcat).
Request A > new Thread A > using my static method for loadBranches(...)
Request B > new Thread B > using my static method for loadBranches(...)
Thread B must wait until Thread A is done.
Since threads are managed by tomcat, no thread should be able to use a static
method that is used by another thread.
Or in fact, you must be right, should I declare them synchronized?
public static synchronized loadBranches(...)
Thanks,
Sinoea
> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: Re: Tomcat 5.5, JNDI Connection Pooling, Active connections keep
> increasing....
> Date: Tue, 16 Sep 2008 18:58:25 +0200
>
>
> ----- Original Message -----
> From: "Johnny Kewl" <[EMAIL PROTECTED]>
> To: "Tomcat Users List" <[email protected]>
> Sent: Tuesday, September 16, 2008 5:41 PM
> Subject: Re: Tomcat 5.5, JNDI Connection Pooling, Active connections keep
> increasing....
>
>
> >
> > ----- Original Message -----
> > From: "Brantley Hobbs" <[EMAIL PROTECTED]>
> > To: "Tomcat Users List" <[email protected]>
> > Sent: Tuesday, September 16, 2008 5:27 PM
> > Subject: Re: Tomcat 5.5, JNDI Connection Pooling, Active connections keep
> > increasing....
> >
> >
> >> "return" statements do not prevent the finally block from executing:
> >>
> >> http://java.sun.com/docs/books/tutorial/essential/exceptions/finally.html
> >
> > I stand corrected...
> > Always understood as "during exception handling"... but you right it seems
> >
> > I just cant bring myself to write code like that... feels un-natural...
> >
> > I would still put return after the close... apologies...
>
>
> Ok sinoea, what I thought was just s little slip turns out to be right... I
> actually tested it... that finally does run as the method loses scope... I
> actually wonder how they do that... I imagine a destructor in a C class
> underneath Java... its interesting, but I got to tell you, you doing the all
> the good text bokk stuff, but the code makes me feel uncomfortable... mmmm
>
> Anyway... I think you got a threading problem...
> You using static class and servlets are multithreaded....
>
> Rather do something like this...
>
> Collection<Branch> branches = new
> BranchData().loadBranches(Data.getDataSource(), 1);
>
> and get rid of the static methods in that BranchData class....
>
> ie make it thread safe... at the moment you have multiple threads in that
> static method... and with that finally I really dont know... haha
>
> and then...
>
> results.close();
> statement.close();
> connection.close();
> return branches;
>
> Would make me happy... and handle those exceptions
>
> } catch (SQLException e) {
> branch.setErrorMsg("Dear User, you have run out of
> connections");
> }finally{
> //absolute critical stuff
> }
>
>
> But that really is just a style thing from the looks of things... although I
> do think that with just a finally, you will still get a ungly servlet
> exception...
> ie you are definitely cleaning up... but you not telling the user why... its
> style
>
> You doing all the good stuff... but more important even if you forget a
> final or two... is just a nice clean readable flow... I think ;)
>
> We have a style clash.... ;)
>
> Anyway thing your problem may go away once its thread safe ;)
>
> Thanks... learnt something ;)
> Will keep guessing till we get it ;)
> ---------------------------------------------------------------------------
> HARBOR : http://www.kewlstuff.co.za/index.htm
> The most powerful application server on earth.
> The only real POJO Application Server.
> See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
> ---------------------------------------------------------------------------
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: [email protected]
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
_________________________________________________________________
Make a mini you and download it into Windows Live Messenger
http://clk.atdmt.com/UKM/go/111354029/direct/01/