You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Charles Richard <ch...@thelearningbar.com> on 2014/02/24 16:15:56 UTC

Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Hi,

Sorry if this is not the right forum for this kind of inquiry. I figure the
best candidates would be in this forum from personal experience.

Our company is having production issues which I believe are either due to
application inefficiencies or a bug somewhere in our software stack.

We are having production issues with our Tomcat connection pool using c3p0
and while my knowledge in this area has improved, I lack the Java developer
background that might help in this area and we are at a point where we need
this solved quickly.

The problems could be related to leaked connections which I'm quite sure we
have. I have turned on c3p0 debugging and identified this in the past and
the ideal consultant could identify in our code where those are happening
and fix them.

We are looking to hire a consultant that would come to Fredericton, NB,
Canada to work with us on this problem. Serious inquiries only. I will be
looking for proof that you have extensive experience with Tomcat, Java
Spring and c3p0.

If you are interested, send me your resume (through your company or
individually) and send me as much proof as possible of your experience with
the specific technologies mentioned.

Thanks,
Charles

Re: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Posted by Daniel Mikusa <dm...@gopivotal.com>.
On Feb 25, 2014, at 10:50 AM, Charles Richard <ch...@thelearningbar.com> wrote:

> On Tue, Feb 25, 2014 at 11:37 AM, Daniel Mikusa <dm...@gopivotal.com>wrote:
> 
>> On Feb 25, 2014, at 10:14 AM, Charles Richard <
>> charles.r@thelearningbar.com> wrote:
>> 
>>> Hi,
>>> 
>>> On Tue, Feb 25, 2014 at 1:26 AM, Christopher Schultz <
>>> chris@christopherschultz.net> wrote:
>>> 
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA256
>>>> 
>>>> Charles,
>>>> 
>>>> On 2/24/14, 10:15 AM, Charles Richard wrote:
>>>>> Sorry if this is not the right forum for this kind of inquiry. I
>>>>> figure the best candidates would be in this forum from personal
>>>>> experience.
>>>>> 
>>>>> Our company is having production issues which I believe are either
>>>>> due to application inefficiencies or a bug somewhere in our
>>>>> software stack.
>>>>> 
>>>>> We are having production issues with our Tomcat connection pool
>>>>> using c3p0 and while my knowledge in this area has improved, I lack
>>>>> the Java developer background that might help in this area and we
>>>>> are at a point where we need this solved quickly.
>>>> 
>>>> I've never gotten the sense that c3p0 was production-ready. What made
>>>> you deploy with c2p0 instead of either of the two connection pools
>>>> that ship with Tomcat? (Note that c3p0 has nothing to do with Tomcat,
>>>> other than that Tomcat can be configured to use c3p0 as its
>>>> connection-pool).
>>>> 
>>>> 
>>> That is good to know that c3p0 might not be commonly used in production
>> by
>>> companies using tomcats. I was under the impression it was the most
>>> commonly used.
>>> 
>>> 
>>>> The problems could be related to leaked connections which I'm quite
>>>>> sure we have. I have turned on c3p0 debugging and identified this
>>>>> in the past and the ideal consultant could identify in our code
>>>>> where those are happening and fix them.
>>>> 
>>>> Both pools Tomcat provides can help you track-down so-called
>>>> "abandoned" connections by providing stack traces that point to the
>>>> line of code that obtained the connection (or even Statement or
>>>> ResultSet).
>>>> 
>>>> C3P0 also allows you to track down abandoned connections and my gut
>>> feeling tells me how problem is not tied down exclusively to this as our
>>> Tomcat connection pools go from 1 used connection to 150 in a minute and
>> I
>>> know we are not losing that many leaked connections in a minute.
>>> Regardless, I will check with the manager here to see if this has been
>>> tried in the past before I started this job and potentially try this as
>>> unfortunately, the problem is not happening in our staging environment.
>> 
>> When you are experiencing the problem next, take some thread dumps.  Try
>> to get two or three, with 10 to 15 seconds between each one.  You can then
>> look at the thread dumps to see what's going on here.
>> 
>> 
>> https://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F
>> 
> 
> It's not easy to get good thread dumps as one minute things are fine and
> the next minute, the site is going downhill. I have bash scripts that
> monitor c3p0 connections and take an automatic thread dump as soon as the
> number exceeds what's normal.
> 
>> 
>> There is information about interpreting them here or if you need help with
>> it, you could post it to the list.
>> 
>> 
>> https://wiki.apache.org/tomcat/HowTo#How_do_I_read_a_Java_thread_dump_.3F
>> 
>> I have tried to analyze the thread dumps I have gotten so far without much
> luck but this could just be that I don't understand enough what I'm looking
> for. I will look at the link provided.

I should have mentioned TDA as well.  It’s as old as TDV, but works good too.

  https://java.net/projects/tda/downloads

You can read the thread dumps in a text editor, but I find these tools help to make the process a little nicer.

Dan


> 
> Thanks for taking the time to write this!
> 
> Dan
>> 
>> Cheers,
> Charles
> 
>>> 
>>> 
>>>> I would highly recommend that you read this blog post I wrote several
>>>> years ago that can help you look for obvious errors by providing
>>>> examples for what JDBC code should look like -- if you are managing
>>>> your own JDBC calls of course:
>>>> 
>>>> 
>> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>>>> 
>>>>> We are looking to hire a consultant that would come to Fredericton,
>>>>> NB, Canada to work with us on this problem. Serious inquiries only.
>>>>> I will be looking for proof that you have extensive experience with
>>>>> Tomcat, Java Spring and c3p0.
>>>>> 
>>>>> If you are interested, send me your resume (through your company
>>>>> or individually) and send me as much proof as possible of your
>>>>> experience with the specific technologies mentioned.
>>>> 
>>>> While there is certainly no prohibition against doing so, this isn't
>>>> really a "help wanted" message board. We are happy to help you -- for
>>>> free! -- via email to solve your own problems. If you find this free
>>>> forum helpful, please consider staying to be a part of the community.
>>>> You may help others or learn things yourself.
>>>> 
>>>> I find this forum for the most part helpful and I've posted a few times
>>> before. In general though, I haven't felt that comfortable to post here.
>>> 
>>> Before you hire anyone, you might want to try the following:
>>>> 
>>>> 1. Swap c3p0 for something more reliable such as Tomcat's default pool
>>>> (based upon commons-dbcp) or the newer, higher-performance
>>>> tomcat-pool. You can find documentation for both of those online in
>>>> the Users' Guide. If the pool is performing okay, this may not be
>>>> necessary, but it's nearly free to try so it may be a good first-step.
>>>> 
>>> 
>>> I might have to wait a month to try this so our peak traffic subsides as
>> I
>>> could test the config on our staging environment but since the problem is
>>> only happening on production, I would be nervous of not having the
>> optimal
>>> configuration and make things worse.
>>> 
>>>> 
>>>> 2. Check your own code for resource-handling errors. Take some time to
>>>> read my blog post, or have your engineers do it (better yet, have
>>>> everyone read it).
>>>> 
>>>> Will do.
>>> 
>>> 
>>>> 3. Run a static-analysis tool such as FindBugs (which is free) against
>>>> your code. It can detect resource leaks you may not have known you
>>>> had. Running the tool takes almost no setup and/or skill, and you can
>>>> read the report entirely for free. If you have a million errors, it
>>>> might take you a lot of staff to identify and fix the problems, but
>>>> it's likely to point-out some problem areas -- and point you to the
>>>> exact line numbers where problems are likely to be.
>>>> 
>>>> Thanks for the recommendation, I've never heard of this tool.
>>> 
>>> 
>>>> You might get a lot of mileage (kilometerage?) out of the above
>>>> without having to hire anyone.
>>>> 
>>>> Thanks for taking the time to write this and trying to help!
>>> 
>>>> - -chris
>>>> 
>>> 
>>> Cheers!
>>> Charles
>>> 
>>> 
>>>> -----BEGIN PGP SIGNATURE-----
>>>> Version: GnuPG v1
>>>> Comment: GPGTools - http://gpgtools.org
>>>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>>> 
>>>> iQIcBAEBCAAGBQJTDCmHAAoJEBzwKT+lPKRYUTAP/iNhYjUQqaYIXCEn7WrKEpVW
>>>> PCn4+ZLmzlmm1r7GSVbSc0+632JKA+YSOz+c8LplGnMAmUa6eU7sz2KgrunsnCCm
>>>> y5UiNySJ3nQEtKcHn0c7TpNmfGUGn61Y0GoK9A+JID8jubxBNMmt4nvH7FBfRrGA
>>>> GjB93hwIsJ0pK0InmejXmcoBxRYIzaVavV7nW7I/63SURv+TnXmuriHtrC5KBB39
>>>> /o5V9VNaDZqsm7zsi3qqEYoxY2/yEMt+W9++bYajXFhhhUevWdRw2NFgihyewRuL
>>>> xc4GWV+5OIvSlsr0JtKXlJha8ooz1BVPigRd6vRQDaw2DFNzXy0Jl30kGK5ECuwI
>>>> SmldUzYjZZGEJBhN2RGNsJgDi0zpvOIBmAciUCWZFNy7xzhubx+DTK1AHUYjW15j
>>>> H1ujwZAkXfSsfY9h+vP9ATntn2YBQ3R3L7pKtjd+d7T5C9ULDIglH4o3+2kK4TEg
>>>> zV+bUhyLXM/sf9IXMOTUZa9TsF8EovbaT5sRx2gXWqbMKOgyy3lJuzMaOg3110Cd
>>>> P5tOfypeevWE0NY5+nUXDtmgKz+GHAkaOkdhlvDBjQ0UwNL/yV9WU5ui1pev2KLi
>>>> Ct7DHj92K//ROM6RerkMjHPCcLPX5c6bbBzXl5R/unfprkPoRZ0RwgxQK/2ARAst
>>>> ZDSf1VD+AUL82qVQy1rf
>>>> =VgOW
>>>> -----END PGP SIGNATURE-----
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>> 
>>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Posted by Martin Gainty <mg...@hotmail.com>.
I assume based on all the "wonderful experiences" the states have experienced in last dozen years that Canada has wised up and stopped Americans from sneaking across the border without a passport?

better pack you snowshoes..they have about 6 feet of snow (last time i checked)

 

Keep me apprised,
M-

  



> Date: Tue, 25 Feb 2014 11:50:30 -0400
> Subject: Re: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed
> From: charles.r@thelearningbar.com
> To: users@tomcat.apache.org
> 
> On Tue, Feb 25, 2014 at 11:37 AM, Daniel Mikusa <dm...@gopivotal.com>wrote:
> 
> > On Feb 25, 2014, at 10:14 AM, Charles Richard <
> > charles.r@thelearningbar.com> wrote:
> >
> > > Hi,
> > >
> > > On Tue, Feb 25, 2014 at 1:26 AM, Christopher Schultz <
> > > chris@christopherschultz.net> wrote:
> > >
> > >> -----BEGIN PGP SIGNED MESSAGE-----
> > >> Hash: SHA256
> > >>
> > >> Charles,
> > >>
> > >> On 2/24/14, 10:15 AM, Charles Richard wrote:
> > >>> Sorry if this is not the right forum for this kind of inquiry. I
> > >>> figure the best candidates would be in this forum from personal
> > >>> experience.
> > >>>
> > >>> Our company is having production issues which I believe are either
> > >>> due to application inefficiencies or a bug somewhere in our
> > >>> software stack.
> > >>>
> > >>> We are having production issues with our Tomcat connection pool
> > >>> using c3p0 and while my knowledge in this area has improved, I lack
> > >>> the Java developer background that might help in this area and we
> > >>> are at a point where we need this solved quickly.
> > >>
> > >> I've never gotten the sense that c3p0 was production-ready. What made
> > >> you deploy with c2p0 instead of either of the two connection pools
> > >> that ship with Tomcat? (Note that c3p0 has nothing to do with Tomcat,
> > >> other than that Tomcat can be configured to use c3p0 as its
> > >> connection-pool).
> > >>
> > >>
> > > That is good to know that c3p0 might not be commonly used in production
> > by
> > > companies using tomcats. I was under the impression it was the most
> > > commonly used.
> > >
> > >
> > >> The problems could be related to leaked connections which I'm quite
> > >>> sure we have. I have turned on c3p0 debugging and identified this
> > >>> in the past and the ideal consultant could identify in our code
> > >>> where those are happening and fix them.
> > >>
> > >> Both pools Tomcat provides can help you track-down so-called
> > >> "abandoned" connections by providing stack traces that point to the
> > >> line of code that obtained the connection (or even Statement or
> > >> ResultSet).
> > >>
> > >> C3P0 also allows you to track down abandoned connections and my gut
> > > feeling tells me how problem is not tied down exclusively to this as our
> > > Tomcat connection pools go from 1 used connection to 150 in a minute and
> > I
> > > know we are not losing that many leaked connections in a minute.
> > > Regardless, I will check with the manager here to see if this has been
> > > tried in the past before I started this job and potentially try this as
> > > unfortunately, the problem is not happening in our staging environment.
> >
> > When you are experiencing the problem next, take some thread dumps. Try
> > to get two or three, with 10 to 15 seconds between each one. You can then
> > look at the thread dumps to see what's going on here.
> >
> >
> > https://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F
> >
> 
> It's not easy to get good thread dumps as one minute things are fine and
> the next minute, the site is going downhill. I have bash scripts that
> monitor c3p0 connections and take an automatic thread dump as soon as the
> number exceeds what's normal.
> 
> >
> > There is information about interpreting them here or if you need help with
> > it, you could post it to the list.
> >
> >
> > https://wiki.apache.org/tomcat/HowTo#How_do_I_read_a_Java_thread_dump_.3F
> >
> > I have tried to analyze the thread dumps I have gotten so far without much
> luck but this could just be that I don't understand enough what I'm looking
> for. I will look at the link provided.
> 
> Thanks for taking the time to write this!
> 
> Dan
> >
> > Cheers,
> Charles
> 
> > >
> > >
> > >> I would highly recommend that you read this blog post I wrote several
> > >> years ago that can help you look for obvious errors by providing
> > >> examples for what JDBC code should look like -- if you are managing
> > >> your own JDBC calls of course:
> > >>
> > >>
> > http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
> > >>
> > >>> We are looking to hire a consultant that would come to Fredericton,
> > >>> NB, Canada to work with us on this problem. Serious inquiries only.
> > >>> I will be looking for proof that you have extensive experience with
> > >>> Tomcat, Java Spring and c3p0.
> > >>>
> > >>> If you are interested, send me your resume (through your company
> > >>> or individually) and send me as much proof as possible of your
> > >>> experience with the specific technologies mentioned.
> > >>
> > >> While there is certainly no prohibition against doing so, this isn't
> > >> really a "help wanted" message board. We are happy to help you -- for
> > >> free! -- via email to solve your own problems. If you find this free
> > >> forum helpful, please consider staying to be a part of the community.
> > >> You may help others or learn things yourself.
> > >>
> > >> I find this forum for the most part helpful and I've posted a few times
> > > before. In general though, I haven't felt that comfortable to post here.
> > >
> > > Before you hire anyone, you might want to try the following:
> > >>
> > >> 1. Swap c3p0 for something more reliable such as Tomcat's default pool
> > >> (based upon commons-dbcp) or the newer, higher-performance
> > >> tomcat-pool. You can find documentation for both of those online in
> > >> the Users' Guide. If the pool is performing okay, this may not be
> > >> necessary, but it's nearly free to try so it may be a good first-step.
> > >>
> > >
> > > I might have to wait a month to try this so our peak traffic subsides as
> > I
> > > could test the config on our staging environment but since the problem is
> > > only happening on production, I would be nervous of not having the
> > optimal
> > > configuration and make things worse.
> > >
> > >>
> > >> 2. Check your own code for resource-handling errors. Take some time to
> > >> read my blog post, or have your engineers do it (better yet, have
> > >> everyone read it).
> > >>
> > >> Will do.
> > >
> > >
> > >> 3. Run a static-analysis tool such as FindBugs (which is free) against
> > >> your code. It can detect resource leaks you may not have known you
> > >> had. Running the tool takes almost no setup and/or skill, and you can
> > >> read the report entirely for free. If you have a million errors, it
> > >> might take you a lot of staff to identify and fix the problems, but
> > >> it's likely to point-out some problem areas -- and point you to the
> > >> exact line numbers where problems are likely to be.
> > >>
> > >> Thanks for the recommendation, I've never heard of this tool.
> > >
> > >
> > >> You might get a lot of mileage (kilometerage?) out of the above
> > >> without having to hire anyone.
> > >>
> > >> Thanks for taking the time to write this and trying to help!
> > >
> > >> - -chris
> > >>
> > >
> > > Cheers!
> > > Charles
> > >
> > >
> > >> -----BEGIN PGP SIGNATURE-----
> > >> Version: GnuPG v1
> > >> Comment: GPGTools - http://gpgtools.org
> > >> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> > >>
> > >> iQIcBAEBCAAGBQJTDCmHAAoJEBzwKT+lPKRYUTAP/iNhYjUQqaYIXCEn7WrKEpVW
> > >> PCn4+ZLmzlmm1r7GSVbSc0+632JKA+YSOz+c8LplGnMAmUa6eU7sz2KgrunsnCCm
> > >> y5UiNySJ3nQEtKcHn0c7TpNmfGUGn61Y0GoK9A+JID8jubxBNMmt4nvH7FBfRrGA
> > >> GjB93hwIsJ0pK0InmejXmcoBxRYIzaVavV7nW7I/63SURv+TnXmuriHtrC5KBB39
> > >> /o5V9VNaDZqsm7zsi3qqEYoxY2/yEMt+W9++bYajXFhhhUevWdRw2NFgihyewRuL
> > >> xc4GWV+5OIvSlsr0JtKXlJha8ooz1BVPigRd6vRQDaw2DFNzXy0Jl30kGK5ECuwI
> > >> SmldUzYjZZGEJBhN2RGNsJgDi0zpvOIBmAciUCWZFNy7xzhubx+DTK1AHUYjW15j
> > >> H1ujwZAkXfSsfY9h+vP9ATntn2YBQ3R3L7pKtjd+d7T5C9ULDIglH4o3+2kK4TEg
> > >> zV+bUhyLXM/sf9IXMOTUZa9TsF8EovbaT5sRx2gXWqbMKOgyy3lJuzMaOg3110Cd
> > >> P5tOfypeevWE0NY5+nUXDtmgKz+GHAkaOkdhlvDBjQ0UwNL/yV9WU5ui1pev2KLi
> > >> Ct7DHj92K//ROM6RerkMjHPCcLPX5c6bbBzXl5R/unfprkPoRZ0RwgxQK/2ARAst
> > >> ZDSf1VD+AUL82qVQy1rf
> > >> =VgOW
> > >> -----END PGP SIGNATURE-----
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > >> For additional commands, e-mail: users-help@tomcat.apache.org
> > >>
> > >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
 		 	   		  

Re: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Posted by Charles Richard <ch...@thelearningbar.com>.
On Tue, Feb 25, 2014 at 11:37 AM, Daniel Mikusa <dm...@gopivotal.com>wrote:

> On Feb 25, 2014, at 10:14 AM, Charles Richard <
> charles.r@thelearningbar.com> wrote:
>
> > Hi,
> >
> > On Tue, Feb 25, 2014 at 1:26 AM, Christopher Schultz <
> > chris@christopherschultz.net> wrote:
> >
> >> -----BEGIN PGP SIGNED MESSAGE-----
> >> Hash: SHA256
> >>
> >> Charles,
> >>
> >> On 2/24/14, 10:15 AM, Charles Richard wrote:
> >>> Sorry if this is not the right forum for this kind of inquiry. I
> >>> figure the best candidates would be in this forum from personal
> >>> experience.
> >>>
> >>> Our company is having production issues which I believe are either
> >>> due to application inefficiencies or a bug somewhere in our
> >>> software stack.
> >>>
> >>> We are having production issues with our Tomcat connection pool
> >>> using c3p0 and while my knowledge in this area has improved, I lack
> >>> the Java developer background that might help in this area and we
> >>> are at a point where we need this solved quickly.
> >>
> >> I've never gotten the sense that c3p0 was production-ready. What made
> >> you deploy with c2p0 instead of either of the two connection pools
> >> that ship with Tomcat? (Note that c3p0 has nothing to do with Tomcat,
> >> other than that Tomcat can be configured to use c3p0 as its
> >> connection-pool).
> >>
> >>
> > That is good to know that c3p0 might not be commonly used in production
> by
> > companies using tomcats. I was under the impression it was the most
> > commonly used.
> >
> >
> >> The problems could be related to leaked connections which I'm quite
> >>> sure we have. I have turned on c3p0 debugging and identified this
> >>> in the past and the ideal consultant could identify in our code
> >>> where those are happening and fix them.
> >>
> >> Both pools Tomcat provides can help you track-down so-called
> >> "abandoned" connections by providing stack traces that point to the
> >> line of code that obtained the connection (or even Statement or
> >> ResultSet).
> >>
> >> C3P0 also allows you to track down abandoned connections and my gut
> > feeling tells me how problem is not tied down exclusively to this as our
> > Tomcat connection pools go from 1 used connection to 150 in a minute and
> I
> > know we are not losing that many leaked connections in a minute.
> > Regardless, I will check with the manager here to see if this has been
> > tried in the past before I started this job and potentially try this as
> > unfortunately, the problem is not happening in our staging environment.
>
> When you are experiencing the problem next, take some thread dumps.  Try
> to get two or three, with 10 to 15 seconds between each one.  You can then
> look at the thread dumps to see what's going on here.
>
>
> https://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F
>

It's not easy to get good thread dumps as one minute things are fine and
the next minute, the site is going downhill. I have bash scripts that
monitor c3p0 connections and take an automatic thread dump as soon as the
number exceeds what's normal.

>
> There is information about interpreting them here or if you need help with
> it, you could post it to the list.
>
>
> https://wiki.apache.org/tomcat/HowTo#How_do_I_read_a_Java_thread_dump_.3F
>
> I have tried to analyze the thread dumps I have gotten so far without much
luck but this could just be that I don't understand enough what I'm looking
for. I will look at the link provided.

Thanks for taking the time to write this!

Dan
>
> Cheers,
Charles

> >
> >
> >> I would highly recommend that you read this blog post I wrote several
> >> years ago that can help you look for obvious errors by providing
> >> examples for what JDBC code should look like -- if you are managing
> >> your own JDBC calls of course:
> >>
> >>
> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
> >>
> >>> We are looking to hire a consultant that would come to Fredericton,
> >>> NB, Canada to work with us on this problem. Serious inquiries only.
> >>> I will be looking for proof that you have extensive experience with
> >>> Tomcat, Java Spring and c3p0.
> >>>
> >>> If you are interested, send me your resume (through your company
> >>> or individually) and send me as much proof as possible of your
> >>> experience with the specific technologies mentioned.
> >>
> >> While there is certainly no prohibition against doing so, this isn't
> >> really a "help wanted" message board. We are happy to help you -- for
> >> free! -- via email to solve your own problems. If you find this free
> >> forum helpful, please consider staying to be a part of the community.
> >> You may help others or learn things yourself.
> >>
> >> I find this forum for the most part helpful and I've posted a few times
> > before. In general though, I haven't felt that comfortable to post here.
> >
> > Before you hire anyone, you might want to try the following:
> >>
> >> 1. Swap c3p0 for something more reliable such as Tomcat's default pool
> >> (based upon commons-dbcp) or the newer, higher-performance
> >> tomcat-pool. You can find documentation for both of those online in
> >> the Users' Guide. If the pool is performing okay, this may not be
> >> necessary, but it's nearly free to try so it may be a good first-step.
> >>
> >
> > I might have to wait a month to try this so our peak traffic subsides as
> I
> > could test the config on our staging environment but since the problem is
> > only happening on production, I would be nervous of not having the
> optimal
> > configuration and make things worse.
> >
> >>
> >> 2. Check your own code for resource-handling errors. Take some time to
> >> read my blog post, or have your engineers do it (better yet, have
> >> everyone read it).
> >>
> >> Will do.
> >
> >
> >> 3. Run a static-analysis tool such as FindBugs (which is free) against
> >> your code. It can detect resource leaks you may not have known you
> >> had. Running the tool takes almost no setup and/or skill, and you can
> >> read the report entirely for free. If you have a million errors, it
> >> might take you a lot of staff to identify and fix the problems, but
> >> it's likely to point-out some problem areas -- and point you to the
> >> exact line numbers where problems are likely to be.
> >>
> >> Thanks for the recommendation, I've never heard of this tool.
> >
> >
> >> You might get a lot of mileage (kilometerage?) out of the above
> >> without having to hire anyone.
> >>
> >> Thanks for taking the time to write this and trying to help!
> >
> >> - -chris
> >>
> >
> > Cheers!
> > Charles
> >
> >
> >> -----BEGIN PGP SIGNATURE-----
> >> Version: GnuPG v1
> >> Comment: GPGTools - http://gpgtools.org
> >> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> >>
> >> iQIcBAEBCAAGBQJTDCmHAAoJEBzwKT+lPKRYUTAP/iNhYjUQqaYIXCEn7WrKEpVW
> >> PCn4+ZLmzlmm1r7GSVbSc0+632JKA+YSOz+c8LplGnMAmUa6eU7sz2KgrunsnCCm
> >> y5UiNySJ3nQEtKcHn0c7TpNmfGUGn61Y0GoK9A+JID8jubxBNMmt4nvH7FBfRrGA
> >> GjB93hwIsJ0pK0InmejXmcoBxRYIzaVavV7nW7I/63SURv+TnXmuriHtrC5KBB39
> >> /o5V9VNaDZqsm7zsi3qqEYoxY2/yEMt+W9++bYajXFhhhUevWdRw2NFgihyewRuL
> >> xc4GWV+5OIvSlsr0JtKXlJha8ooz1BVPigRd6vRQDaw2DFNzXy0Jl30kGK5ECuwI
> >> SmldUzYjZZGEJBhN2RGNsJgDi0zpvOIBmAciUCWZFNy7xzhubx+DTK1AHUYjW15j
> >> H1ujwZAkXfSsfY9h+vP9ATntn2YBQ3R3L7pKtjd+d7T5C9ULDIglH4o3+2kK4TEg
> >> zV+bUhyLXM/sf9IXMOTUZa9TsF8EovbaT5sRx2gXWqbMKOgyy3lJuzMaOg3110Cd
> >> P5tOfypeevWE0NY5+nUXDtmgKz+GHAkaOkdhlvDBjQ0UwNL/yV9WU5ui1pev2KLi
> >> Ct7DHj92K//ROM6RerkMjHPCcLPX5c6bbBzXl5R/unfprkPoRZ0RwgxQK/2ARAst
> >> ZDSf1VD+AUL82qVQy1rf
> >> =VgOW
> >> -----END PGP SIGNATURE-----
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Posted by Daniel Mikusa <dm...@gopivotal.com>.
On Feb 25, 2014, at 10:14 AM, Charles Richard <ch...@thelearningbar.com> wrote:

> Hi,
> 
> On Tue, Feb 25, 2014 at 1:26 AM, Christopher Schultz <
> chris@christopherschultz.net> wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>> 
>> Charles,
>> 
>> On 2/24/14, 10:15 AM, Charles Richard wrote:
>>> Sorry if this is not the right forum for this kind of inquiry. I
>>> figure the best candidates would be in this forum from personal
>>> experience.
>>> 
>>> Our company is having production issues which I believe are either
>>> due to application inefficiencies or a bug somewhere in our
>>> software stack.
>>> 
>>> We are having production issues with our Tomcat connection pool
>>> using c3p0 and while my knowledge in this area has improved, I lack
>>> the Java developer background that might help in this area and we
>>> are at a point where we need this solved quickly.
>> 
>> I've never gotten the sense that c3p0 was production-ready. What made
>> you deploy with c2p0 instead of either of the two connection pools
>> that ship with Tomcat? (Note that c3p0 has nothing to do with Tomcat,
>> other than that Tomcat can be configured to use c3p0 as its
>> connection-pool).
>> 
>> 
> That is good to know that c3p0 might not be commonly used in production by
> companies using tomcats. I was under the impression it was the most
> commonly used.
> 
> 
>> The problems could be related to leaked connections which I'm quite
>>> sure we have. I have turned on c3p0 debugging and identified this
>>> in the past and the ideal consultant could identify in our code
>>> where those are happening and fix them.
>> 
>> Both pools Tomcat provides can help you track-down so-called
>> "abandoned" connections by providing stack traces that point to the
>> line of code that obtained the connection (or even Statement or
>> ResultSet).
>> 
>> C3P0 also allows you to track down abandoned connections and my gut
> feeling tells me how problem is not tied down exclusively to this as our
> Tomcat connection pools go from 1 used connection to 150 in a minute and I
> know we are not losing that many leaked connections in a minute.
> Regardless, I will check with the manager here to see if this has been
> tried in the past before I started this job and potentially try this as
> unfortunately, the problem is not happening in our staging environment.

When you are experiencing the problem next, take some thread dumps.  Try to get two or three, with 10 to 15 seconds between each one.  You can then look at the thread dumps to see what’s going on here.

  https://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F

There is information about interpreting them here or if you need help with it, you could post it to the list.

  https://wiki.apache.org/tomcat/HowTo#How_do_I_read_a_Java_thread_dump_.3F

Dan


> 
> 
>> I would highly recommend that you read this blog post I wrote several
>> years ago that can help you look for obvious errors by providing
>> examples for what JDBC code should look like -- if you are managing
>> your own JDBC calls of course:
>> 
>> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>> 
>>> We are looking to hire a consultant that would come to Fredericton,
>>> NB, Canada to work with us on this problem. Serious inquiries only.
>>> I will be looking for proof that you have extensive experience with
>>> Tomcat, Java Spring and c3p0.
>>> 
>>> If you are interested, send me your resume (through your company
>>> or individually) and send me as much proof as possible of your
>>> experience with the specific technologies mentioned.
>> 
>> While there is certainly no prohibition against doing so, this isn't
>> really a "help wanted" message board. We are happy to help you -- for
>> free! -- via email to solve your own problems. If you find this free
>> forum helpful, please consider staying to be a part of the community.
>> You may help others or learn things yourself.
>> 
>> I find this forum for the most part helpful and I've posted a few times
> before. In general though, I haven't felt that comfortable to post here.
> 
> Before you hire anyone, you might want to try the following:
>> 
>> 1. Swap c3p0 for something more reliable such as Tomcat's default pool
>> (based upon commons-dbcp) or the newer, higher-performance
>> tomcat-pool. You can find documentation for both of those online in
>> the Users' Guide. If the pool is performing okay, this may not be
>> necessary, but it's nearly free to try so it may be a good first-step.
>> 
> 
> I might have to wait a month to try this so our peak traffic subsides as I
> could test the config on our staging environment but since the problem is
> only happening on production, I would be nervous of not having the optimal
> configuration and make things worse.
> 
>> 
>> 2. Check your own code for resource-handling errors. Take some time to
>> read my blog post, or have your engineers do it (better yet, have
>> everyone read it).
>> 
>> Will do.
> 
> 
>> 3. Run a static-analysis tool such as FindBugs (which is free) against
>> your code. It can detect resource leaks you may not have known you
>> had. Running the tool takes almost no setup and/or skill, and you can
>> read the report entirely for free. If you have a million errors, it
>> might take you a lot of staff to identify and fix the problems, but
>> it's likely to point-out some problem areas -- and point you to the
>> exact line numbers where problems are likely to be.
>> 
>> Thanks for the recommendation, I've never heard of this tool.
> 
> 
>> You might get a lot of mileage (kilometerage?) out of the above
>> without having to hire anyone.
>> 
>> Thanks for taking the time to write this and trying to help!
> 
>> - -chris
>> 
> 
> Cheers!
> Charles
> 
> 
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1
>> Comment: GPGTools - http://gpgtools.org
>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>> 
>> iQIcBAEBCAAGBQJTDCmHAAoJEBzwKT+lPKRYUTAP/iNhYjUQqaYIXCEn7WrKEpVW
>> PCn4+ZLmzlmm1r7GSVbSc0+632JKA+YSOz+c8LplGnMAmUa6eU7sz2KgrunsnCCm
>> y5UiNySJ3nQEtKcHn0c7TpNmfGUGn61Y0GoK9A+JID8jubxBNMmt4nvH7FBfRrGA
>> GjB93hwIsJ0pK0InmejXmcoBxRYIzaVavV7nW7I/63SURv+TnXmuriHtrC5KBB39
>> /o5V9VNaDZqsm7zsi3qqEYoxY2/yEMt+W9++bYajXFhhhUevWdRw2NFgihyewRuL
>> xc4GWV+5OIvSlsr0JtKXlJha8ooz1BVPigRd6vRQDaw2DFNzXy0Jl30kGK5ECuwI
>> SmldUzYjZZGEJBhN2RGNsJgDi0zpvOIBmAciUCWZFNy7xzhubx+DTK1AHUYjW15j
>> H1ujwZAkXfSsfY9h+vP9ATntn2YBQ3R3L7pKtjd+d7T5C9ULDIglH4o3+2kK4TEg
>> zV+bUhyLXM/sf9IXMOTUZa9TsF8EovbaT5sRx2gXWqbMKOgyy3lJuzMaOg3110Cd
>> P5tOfypeevWE0NY5+nUXDtmgKz+GHAkaOkdhlvDBjQ0UwNL/yV9WU5ui1pev2KLi
>> Ct7DHj92K//ROM6RerkMjHPCcLPX5c6bbBzXl5R/unfprkPoRZ0RwgxQK/2ARAst
>> ZDSf1VD+AUL82qVQy1rf
>> =VgOW
>> -----END PGP SIGNATURE-----
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Posted by Charles Richard <ch...@thelearningbar.com>.
Hi,

On Tue, Feb 25, 2014 at 1:26 AM, Christopher Schultz <
chris@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Charles,
>
> On 2/24/14, 10:15 AM, Charles Richard wrote:
> > Sorry if this is not the right forum for this kind of inquiry. I
> > figure the best candidates would be in this forum from personal
> > experience.
> >
> > Our company is having production issues which I believe are either
> > due to application inefficiencies or a bug somewhere in our
> > software stack.
> >
> > We are having production issues with our Tomcat connection pool
> > using c3p0 and while my knowledge in this area has improved, I lack
> > the Java developer background that might help in this area and we
> > are at a point where we need this solved quickly.
>
> I've never gotten the sense that c3p0 was production-ready. What made
> you deploy with c2p0 instead of either of the two connection pools
> that ship with Tomcat? (Note that c3p0 has nothing to do with Tomcat,
> other than that Tomcat can be configured to use c3p0 as its
> connection-pool).
>
>
That is good to know that c3p0 might not be commonly used in production by
companies using tomcats. I was under the impression it was the most
commonly used.


> The problems could be related to leaked connections which I'm quite
> > sure we have. I have turned on c3p0 debugging and identified this
> > in the past and the ideal consultant could identify in our code
> > where those are happening and fix them.
>
> Both pools Tomcat provides can help you track-down so-called
> "abandoned" connections by providing stack traces that point to the
> line of code that obtained the connection (or even Statement or
> ResultSet).
>
> C3P0 also allows you to track down abandoned connections and my gut
feeling tells me how problem is not tied down exclusively to this as our
Tomcat connection pools go from 1 used connection to 150 in a minute and I
know we are not losing that many leaked connections in a minute.
Regardless, I will check with the manager here to see if this has been
tried in the past before I started this job and potentially try this as
unfortunately, the problem is not happening in our staging environment.


> I would highly recommend that you read this blog post I wrote several
> years ago that can help you look for obvious errors by providing
> examples for what JDBC code should look like -- if you are managing
> your own JDBC calls of course:
>
> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>
> > We are looking to hire a consultant that would come to Fredericton,
> > NB, Canada to work with us on this problem. Serious inquiries only.
> > I will be looking for proof that you have extensive experience with
> > Tomcat, Java Spring and c3p0.
> >
> > If you are interested, send me your resume (through your company
> > or individually) and send me as much proof as possible of your
> > experience with the specific technologies mentioned.
>
> While there is certainly no prohibition against doing so, this isn't
> really a "help wanted" message board. We are happy to help you -- for
> free! -- via email to solve your own problems. If you find this free
> forum helpful, please consider staying to be a part of the community.
> You may help others or learn things yourself.
>
> I find this forum for the most part helpful and I've posted a few times
before. In general though, I haven't felt that comfortable to post here.

Before you hire anyone, you might want to try the following:
>
> 1. Swap c3p0 for something more reliable such as Tomcat's default pool
> (based upon commons-dbcp) or the newer, higher-performance
> tomcat-pool. You can find documentation for both of those online in
> the Users' Guide. If the pool is performing okay, this may not be
> necessary, but it's nearly free to try so it may be a good first-step.
>

I might have to wait a month to try this so our peak traffic subsides as I
could test the config on our staging environment but since the problem is
only happening on production, I would be nervous of not having the optimal
configuration and make things worse.

>
> 2. Check your own code for resource-handling errors. Take some time to
> read my blog post, or have your engineers do it (better yet, have
> everyone read it).
>
> Will do.


> 3. Run a static-analysis tool such as FindBugs (which is free) against
> your code. It can detect resource leaks you may not have known you
> had. Running the tool takes almost no setup and/or skill, and you can
> read the report entirely for free. If you have a million errors, it
> might take you a lot of staff to identify and fix the problems, but
> it's likely to point-out some problem areas -- and point you to the
> exact line numbers where problems are likely to be.
>
> Thanks for the recommendation, I've never heard of this tool.


> You might get a lot of mileage (kilometerage?) out of the above
> without having to hire anyone.
>
> Thanks for taking the time to write this and trying to help!

> - -chris
>

Cheers!
Charles


> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQIcBAEBCAAGBQJTDCmHAAoJEBzwKT+lPKRYUTAP/iNhYjUQqaYIXCEn7WrKEpVW
> PCn4+ZLmzlmm1r7GSVbSc0+632JKA+YSOz+c8LplGnMAmUa6eU7sz2KgrunsnCCm
> y5UiNySJ3nQEtKcHn0c7TpNmfGUGn61Y0GoK9A+JID8jubxBNMmt4nvH7FBfRrGA
> GjB93hwIsJ0pK0InmejXmcoBxRYIzaVavV7nW7I/63SURv+TnXmuriHtrC5KBB39
> /o5V9VNaDZqsm7zsi3qqEYoxY2/yEMt+W9++bYajXFhhhUevWdRw2NFgihyewRuL
> xc4GWV+5OIvSlsr0JtKXlJha8ooz1BVPigRd6vRQDaw2DFNzXy0Jl30kGK5ECuwI
> SmldUzYjZZGEJBhN2RGNsJgDi0zpvOIBmAciUCWZFNy7xzhubx+DTK1AHUYjW15j
> H1ujwZAkXfSsfY9h+vP9ATntn2YBQ3R3L7pKtjd+d7T5C9ULDIglH4o3+2kK4TEg
> zV+bUhyLXM/sf9IXMOTUZa9TsF8EovbaT5sRx2gXWqbMKOgyy3lJuzMaOg3110Cd
> P5tOfypeevWE0NY5+nUXDtmgKz+GHAkaOkdhlvDBjQ0UwNL/yV9WU5ui1pev2KLi
> Ct7DHj92K//ROM6RerkMjHPCcLPX5c6bbBzXl5R/unfprkPoRZ0RwgxQK/2ARAst
> ZDSf1VD+AUL82qVQy1rf
> =VgOW
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: Tomcat/Java Spring MVC 2.0/c3p0 - Consultant needed

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles,

On 2/24/14, 10:15 AM, Charles Richard wrote:
> Sorry if this is not the right forum for this kind of inquiry. I
> figure the best candidates would be in this forum from personal
> experience.
> 
> Our company is having production issues which I believe are either
> due to application inefficiencies or a bug somewhere in our
> software stack.
> 
> We are having production issues with our Tomcat connection pool
> using c3p0 and while my knowledge in this area has improved, I lack
> the Java developer background that might help in this area and we
> are at a point where we need this solved quickly.

I've never gotten the sense that c3p0 was production-ready. What made
you deploy with c2p0 instead of either of the two connection pools
that ship with Tomcat? (Note that c3p0 has nothing to do with Tomcat,
other than that Tomcat can be configured to use c3p0 as its
connection-pool).

> The problems could be related to leaked connections which I'm quite
> sure we have. I have turned on c3p0 debugging and identified this
> in the past and the ideal consultant could identify in our code
> where those are happening and fix them.

Both pools Tomcat provides can help you track-down so-called
"abandoned" connections by providing stack traces that point to the
line of code that obtained the connection (or even Statement or
ResultSet).

I would highly recommend that you read this blog post I wrote several
years ago that can help you look for obvious errors by providing
examples for what JDBC code should look like -- if you are managing
your own JDBC calls of course:
http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/

> We are looking to hire a consultant that would come to Fredericton,
> NB, Canada to work with us on this problem. Serious inquiries only.
> I will be looking for proof that you have extensive experience with
> Tomcat, Java Spring and c3p0.
> 
> If you are interested, send me your resume (through your company
> or individually) and send me as much proof as possible of your
> experience with the specific technologies mentioned.

While there is certainly no prohibition against doing so, this isn't
really a "help wanted" message board. We are happy to help you -- for
free! -- via email to solve your own problems. If you find this free
forum helpful, please consider staying to be a part of the community.
You may help others or learn things yourself.

Before you hire anyone, you might want to try the following:

1. Swap c3p0 for something more reliable such as Tomcat's default pool
(based upon commons-dbcp) or the newer, higher-performance
tomcat-pool. You can find documentation for both of those online in
the Users' Guide. If the pool is performing okay, this may not be
necessary, but it's nearly free to try so it may be a good first-step.

2. Check your own code for resource-handling errors. Take some time to
read my blog post, or have your engineers do it (better yet, have
everyone read it).

3. Run a static-analysis tool such as FindBugs (which is free) against
your code. It can detect resource leaks you may not have known you
had. Running the tool takes almost no setup and/or skill, and you can
read the report entirely for free. If you have a million errors, it
might take you a lot of staff to identify and fix the problems, but
it's likely to point-out some problem areas -- and point you to the
exact line numbers where problems are likely to be.

You might get a lot of mileage (kilometerage?) out of the above
without having to hire anyone.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJTDCmHAAoJEBzwKT+lPKRYUTAP/iNhYjUQqaYIXCEn7WrKEpVW
PCn4+ZLmzlmm1r7GSVbSc0+632JKA+YSOz+c8LplGnMAmUa6eU7sz2KgrunsnCCm
y5UiNySJ3nQEtKcHn0c7TpNmfGUGn61Y0GoK9A+JID8jubxBNMmt4nvH7FBfRrGA
GjB93hwIsJ0pK0InmejXmcoBxRYIzaVavV7nW7I/63SURv+TnXmuriHtrC5KBB39
/o5V9VNaDZqsm7zsi3qqEYoxY2/yEMt+W9++bYajXFhhhUevWdRw2NFgihyewRuL
xc4GWV+5OIvSlsr0JtKXlJha8ooz1BVPigRd6vRQDaw2DFNzXy0Jl30kGK5ECuwI
SmldUzYjZZGEJBhN2RGNsJgDi0zpvOIBmAciUCWZFNy7xzhubx+DTK1AHUYjW15j
H1ujwZAkXfSsfY9h+vP9ATntn2YBQ3R3L7pKtjd+d7T5C9ULDIglH4o3+2kK4TEg
zV+bUhyLXM/sf9IXMOTUZa9TsF8EovbaT5sRx2gXWqbMKOgyy3lJuzMaOg3110Cd
P5tOfypeevWE0NY5+nUXDtmgKz+GHAkaOkdhlvDBjQ0UwNL/yV9WU5ui1pev2KLi
Ct7DHj92K//ROM6RerkMjHPCcLPX5c6bbBzXl5R/unfprkPoRZ0RwgxQK/2ARAst
ZDSf1VD+AUL82qVQy1rf
=VgOW
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org