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

Reply via email to