You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Donald Ball <ba...@webslingerZ.com> on 2001/07/01 22:52:20 UTC

couple of problems exposed under heavy load

heya. i recently got my tomcat-catalina and my apache talking to each
other, hurrah. i took the opportunity to load test my cocoon webapp.
overall, it held up pretty nicely, but when i cranked up the concurrency,
i started getting some exceptions here and there. one was:

DEBUG   28325   [cocoon  ] (Ajp13Processor[8009][10]): UnnamedSelector:
ComponentSelector could not access the Component for hint: html
java.lang.Exception: Could not create enough Components to service your
request.
        at
org.apache.avalon.excalibur.pool.DefaultPool.get(DefaultPool.java:135)
        at
org.apache.avalon.excalibur.component.PoolableComponentHandler.get(PoolableComponentHandler.java:117)
        at
org.apache.avalon.excalibur.component.ExcaliburComponentSelector.select(ExcaliburComponentSelector.java:246)
        at
org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSelector.java:49)

another was:

WARN    27933   [cocoon  ] (Ajp13Processor[8009][4]): Pool interrupted
while waiting for lock.
java.lang.NullPointerException
        at
com.webslingerZ.cocoon2.transformation.InspectionTransformer.recycle(InspectionTransformer.java:82)
        at
org.apache.avalon.excalibur.pool.DefaultPool.put(DefaultPool.java:169)
        at
org.apache.avalon.excalibur.component.PoolableComponentHandler.put(PoolableComponentHandler.java:131)
        at
org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:350)

(which is probably my bug, but i thought the 'Pool interrupted while
waiting for lock' message was strange)

and another one of these:

DEBUG   27779   [cocoon  ] (Ajp13Processor[8009][4]): UnnamedSelector:
ComponentSelector could not access the Component for hint: xslt
java.lang.Exception: Could not create enough Components to service your
request.
        at
org.apache.avalon.excalibur.pool.DefaultPool.get(DefaultPool.java:135)
        at
org.apache.avalon.excalibur.component.PoolableComponentHandler.get(PoolableComponentHandler.java:117)
        at
org.apache.avalon.excalibur.component.ExcaliburComponentSelector.select(ExcaliburComponentSelector.java:246)
        at
org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSelector.java:49)

avalon guys, do you have any suggestions for settings i could tweak to try
to make the component handlers scale up a bit more?

- donald


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: couple of problems exposed under heavy load

Posted by Berin Loritsch <bl...@apache.org>.
Donald Ball wrote:
> 
> On Mon, 2 Jul 2001, Berin Loritsch wrote:
> 
> > > heya. i recently got my tomcat-catalina and my apache talking to each
> > > other, hurrah. i took the opportunity to load test my cocoon webapp.
> > > overall, it held up pretty nicely, but when i cranked up the concurrency,
> > > i started getting some exceptions here and there. one was:
> > >
> > > DEBUG   28325   [cocoon  ] (Ajp13Processor[8009][10]): UnnamedSelector:
> > > ComponentSelector could not access the Component for hint: html
> > > java.lang.Exception: Could not create enough Components to service your
> > > request.
> >
> > This was probably due to limits of your JVM.  When we are getting Components
> > from a pool, Excalibur (used by Cocoon) will create new instances of the
> > Components when needed.  If the JVM cannot create a new Component, then it
> > will throw an exception, and you will see the error message above.
> 
> how can i determine the underlying exception? if it's OutOfMemory, i'd
> like to know that. i didn't see any OutOfMemoryExceptions in the log files
> anywhere - or anything else which indicated a jvm problem creating a new
> object.


It is not necessarily an OutOfMemoryException.  The creation of a Component is
pretty extensive, and the Class very well may have been instantiated, but one
of the initialization stages may have failed--either because your JVM could not
resolve a reference fast enough, or because of some other complex system
interaction.  Nine times out of ten, it is due to some complex system interaction
that with free/inexpensive tools cannot be measured or trapped.  If I had the
money for some of these expensive automatic testing packages ($4,000 US and up),
I might be able to find the hot spots and the reasons for failure.  At this point
I can't trace it to a specific sequence of events, so under a stressed JVM, you
are going to see something happen wrong.  This is also true of commercial software,
which is why IT managers insist on purchasing more hardware when CPU usage is 80%
or more.

Re: couple of problems exposed under heavy load

Posted by Donald Ball <ba...@webslingerZ.com>.
On Mon, 2 Jul 2001, Berin Loritsch wrote:

> > heya. i recently got my tomcat-catalina and my apache talking to each
> > other, hurrah. i took the opportunity to load test my cocoon webapp.
> > overall, it held up pretty nicely, but when i cranked up the concurrency,
> > i started getting some exceptions here and there. one was:
> >
> > DEBUG   28325   [cocoon  ] (Ajp13Processor[8009][10]): UnnamedSelector:
> > ComponentSelector could not access the Component for hint: html
> > java.lang.Exception: Could not create enough Components to service your
> > request.
>
> This was probably due to limits of your JVM.  When we are getting Components
> from a pool, Excalibur (used by Cocoon) will create new instances of the
> Components when needed.  If the JVM cannot create a new Component, then it
> will throw an exception, and you will see the error message above.

how can i determine the underlying exception? if it's OutOfMemory, i'd
like to know that. i didn't see any OutOfMemoryExceptions in the log files
anywhere - or anything else which indicated a jvm problem creating a new
object.

- donald


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: couple of problems exposed under heavy load

Posted by Berin Loritsch <bl...@apache.org>.
Donald Ball wrote:
> 
> heya. i recently got my tomcat-catalina and my apache talking to each
> other, hurrah. i took the opportunity to load test my cocoon webapp.
> overall, it held up pretty nicely, but when i cranked up the concurrency,
> i started getting some exceptions here and there. one was:
> 
> DEBUG   28325   [cocoon  ] (Ajp13Processor[8009][10]): UnnamedSelector:
> ComponentSelector could not access the Component for hint: html
> java.lang.Exception: Could not create enough Components to service your
> request.

This was probably due to limits of your JVM.  When we are getting Components
from a pool, Excalibur (used by Cocoon) will create new instances of the
Components when needed.  If the JVM cannot create a new Component, then it
will throw an exception, and you will see the error message above.

> WARN    27933   [cocoon  ] (Ajp13Processor[8009][4]): Pool interrupted
> while waiting for lock.

This is usually associated with the Datasources code.  The bug should be
fixed in the next release of Avalon.  DataSources do not create new instances
of Connections, so a pool will wait indefinitely or until it is interrupted.
In that case, the lock is reset, and opperations will continue.

> (which is probably my bug, but i thought the 'Pool interrupted while
> waiting for lock' message was strange)

This is a warning message dealing with the Lock class used in Excalibur.
It is telling you that due to outside constraints, the pool caught an
IntrupptedException.

RE: couple of problems exposed under heavy load

Posted by Vadim Gritsenko <vg...@hns.com>.
Donald,

This might help you with pools:

http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=99244034515731&w=2

However, does it work in sitemap (for html, xslt, etc components) or not - I don't know...

Vadim

> -----Original Message-----
> From: Donald Ball [mailto:balld@webslingerZ.com]
> Sent: Sunday, July 01, 2001 16:52
> To: cocoon-dev@xml.apache.org
> Subject: couple of problems exposed under heavy load
> 
> 
> heya. i recently got my tomcat-catalina and my apache talking to each
> other, hurrah. i took the opportunity to load test my cocoon webapp.
> overall, it held up pretty nicely, but when i cranked up the concurrency,
> i started getting some exceptions here and there. one was:
> 
> DEBUG   28325   [cocoon  ] (Ajp13Processor[8009][10]): UnnamedSelector:
> ComponentSelector could not access the Component for hint: html
> java.lang.Exception: Could not create enough Components to service your
> request.
>         at
> org.apache.avalon.excalibur.pool.DefaultPool.get(DefaultPool.java:135)
>         at
> org.apache.avalon.excalibur.component.PoolableComponentHandler.get(PoolableComponentHandler.java:117)
>         at
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.select(ExcaliburComponentSelector.java:246)
>         at
> org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSelector.java:49)
> 
> another was:
> 
> WARN    27933   [cocoon  ] (Ajp13Processor[8009][4]): Pool interrupted
> while waiting for lock.
> java.lang.NullPointerException
>         at
> com.webslingerZ.cocoon2.transformation.InspectionTransformer.recycle(InspectionTransformer.java:82)
>         at
> org.apache.avalon.excalibur.pool.DefaultPool.put(DefaultPool.java:169)
>         at
> org.apache.avalon.excalibur.component.PoolableComponentHandler.put(PoolableComponentHandler.java:131)
>         at
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:350)
> 
> (which is probably my bug, but i thought the 'Pool interrupted while
> waiting for lock' message was strange)
> 
> and another one of these:
> 
> DEBUG   27779   [cocoon  ] (Ajp13Processor[8009][4]): UnnamedSelector:
> ComponentSelector could not access the Component for hint: xslt
> java.lang.Exception: Could not create enough Components to service your
> request.
>         at
> org.apache.avalon.excalibur.pool.DefaultPool.get(DefaultPool.java:135)
>         at
> org.apache.avalon.excalibur.component.PoolableComponentHandler.get(PoolableComponentHandler.java:117)
>         at
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.select(ExcaliburComponentSelector.java:246)
>         at
> org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSelector.java:49)
> 
> avalon guys, do you have any suggestions for settings i could tweak to try
> to make the component handlers scale up a bit more?
> 
> - donald
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org