Pawel,
Could you give us a more complete stacktrace or a root cause? If you
suspect some kind of out-of-memory problem, you can always set the
JAVA_MIN_MEM and JAVA_MAX_MEM environment variables before starting
ServiceMix to increase the default amounts (128M/512M) used. There's
nothing in ServiceMix that limits the amount of memory per component,
it's all standard Java memory management.
Another possible cause is the fact that the CXF component works with
multiple threads where your sample application outside of ServiceMix
probably didn't. Could it be some kind of concurrency problem, where
loading 450 facts in memory just takes longer and causes a second thread
to invoke the same code somewhow?
Finally, would it be an option to start using the servicemix-drools
component for this? It has been optimized for use in ServiceMix and
(starting with 3.3) will do a fully asynchronous invocation of the rules
engine to ensure the most optimal performance possible.
Regards,
Gert
Newion wrote:
Hi,
I have a serious problem with CXF SE component which I use for implementing
web service endpoint.
My web service executes Drools engine (not servicemix-drools) and terminates
with exception during loading the facts to working memory. It terminates
only when number of facts exceeds ca. 450. I tested the rules outside
ServiceMix and there was no problem.
This is the exception I found in the log of Servicemix:
2008-08-13 10:48:14 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Application has thrown exception, unwinding now:
java.lang.NullPointerExce
ption: null
I suppose the CXF component can't allocate enough memory?
What can I do? Thanks in advance.
Regards,
Pawel Kaczor