Just another thought:

We have two <eip:wire-tap /> elements with the same service name, but another endpoint name ({in} and {out}). Could this be confusing to ServiceMix? On the other hand, we have used the same naming pattern for our <ftp:poller /> and <ftp:sender /> elements, which work fine...

Gert

Gert Vanthienen wrote:
Guillaume,


I don't think this problem is caused by redeployment, because this is the first version ever deployed to our production instance of ServiceMix.

As you might have read in my other post, these log files are extremely large. They also contain a lot of errors, mostly due to XML files that are being uploaded incompletely to the FTP server. Anyway, I find several types of exceptions in the log files (listed below). Is it possible that ServiceMix is somehow getting 'overloaded' after polling for an invalid file for to long?


Gert


Exception 1:
Failed to process file: <name of file>. Reason: javax.jbi.messaging.MessagingException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
-> when an invalid file is added to the FTP server

Exception 2:
10:25:39,487 | ERROR | pool-component.servicemix-ftp-thread-2 | FtpComponent | rvicemix.ftp.FtpPollerEndpoint 280 | Failed to process file: /out/JAVA-order-20070216082625604.xml. Reason: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.servicemix.eip.patterns.WireTap.processAsync(WireTap.java:193)
   at org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
   at java.lang.Thread.run(Thread.java:595)

Exception 3:
10:25:38,768 | WARN | pool-flow.seda.servicemix-eip-thread-1 | DeliveryChannelImpl | .messaging.DeliveryChannelImpl 583 | Error calling listener: null
java.lang.NullPointerException
at org.apache.servicemix.jbi.monitoring.StatisticsService.onExchangeAccepted(StatisticsService.java:310) at org.apache.servicemix.jbi.monitoring.StatisticsService$3.exchangeAccepted(StatisticsService.java:188) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:581) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
   at java.lang.Thread.run(Thread.java:595)

Exception 4:
09:16:11,653 | ERROR | pool-component.servicemix-ftp-thread-19 | FtpComponent | rvicemix.ftp.FtpPollerEndpoint 280 | Failed to process file: /out/JAVA-order-20070218163944833.xml. Reason: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.servicemix.ftp.FtpPollerEndpoint.processFile(FtpPollerEndpoint.java:295) at org.apache.servicemix.ftp.FtpPollerEndpoint.processFileAndDelete(FtpPollerEndpoint.java:268) at org.apache.servicemix.ftp.FtpPollerEndpoint$1.run(FtpPollerEndpoint.java:247) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
   at java.lang.Thread.run(Thread.java:595)

Exception 5:
javax.jbi.messaging.MessagingException: javax.xml.transform.TransformerException: java.io.FileNotFoundException: \in\marmo-product-20070219010122013.xml (The system cannot find the path specified) at org.apache.servicemix.jbi.util.MessageUtil$NormalizedMessageImpl.<init>(MessageUtil.java:163) at org.apache.servicemix.jbi.util.MessageUtil.copy(MessageUtil.java:63) at org.apache.servicemix.eip.patterns.WireTap.sendToListenerAndTarget(WireTap.java:246) at org.apache.servicemix.eip.patterns.WireTap.processAsync(WireTap.java:204)
   at org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
   at java.lang.Thread.run(Thread.java:595)




Guillaume Nodet wrote:
Could you check the log and see if something weird has happened
before these errors appear ?  I've already seen ServiceMix running
out of file descriptors and the hot deployer would behave madly,
thus telling the container that some jars were removed ....
However such a thing usually requires restarting the container
(and it seems you did not do that).
I think I have already seen such errors after a redeploy that
failed somehow: these problems may be caused to old
versions of the ServiceEndpoint being held somehow ...
IIRC, the matching is done on the object itself and not on
the service / endpoint name.  This needs further investigation ...

On 3/14/07, Gert Vanthienen <[EMAIL PROTECTED]> wrote:

L.S.,


This morning, we had problems with ServiceMix not finding some
service/endpoint, causing messages not to be processed.  An excerpt of
the log:

08:56:08,152 | WARN  | pool-component.servicemix-ftp-thread-3 |
FtpComponent             | mon.endpoints.ConsumerEndpoint  148 | Target
service ({http://www.javafresh.eu/servicemix}archive-wiretap) and
endpoint (out) specified, but no matching endpoint found.  Only the
service will be used for routing.
08:56:08,152 | WARN  | pool-component.servicemix-ftp-thread-3 |
DefaultBroker            | rvicemix.jbi.nmr.DefaultBroker  341 |
ServiceName ({http://www.javafresh.eu/servicemix}archive-wiretap)
specified for routing, but can't find it registered
08:56:08,527 | ERROR | pool-component.servicemix-ftp-thread-3 |
FtpComponent             | rvicemix.ftp.FtpPollerEndpoint  280 | Failed
to process file: /out/GASTRO-order-20070309123804794.xml. Reason:
javax.jbi.messaging.MessagingException: Could not find route for
exchange: InOnly[...

These services had been running for several weeks without problems up to
now. I solved the problem by removing the SA from the deploy directory
and then copying it back again. The service assembly was redeployed and everything was working again as before. Do you have any idea what might
have caused these problems?  How can we avoid them?


Regards,

Gert Vanthienen







Reply via email to