Java Apache Camel:FTP轮询器被随机杀死

Java Apache Camel:FTP轮询器被随机杀死,java,ftp,apache-camel,Java,Ftp,Apache Camel,我创建了一个小型camel项目,其中包含一个ftp组件,用于轮询文件并将其写入本地文件系统 我让jar在后台运行,但最近它自杀了。甚至一天几次。我已经增加了日志级别以进行调试,但我看不到任何stacktrace或可能指示出错的内容 我还增加了heap和permgem空间,但这并没有什么区别。 这是目前的路线: onException(SchemaValidationException.class) .handled(true) .to("f

我创建了一个小型camel项目,其中包含一个ftp组件,用于轮询文件并将其写入本地文件系统

我让jar在后台运行,但最近它自杀了。甚至一天几次。我已经增加了日志级别以进行调试,但我看不到任何stacktrace或可能指示出错的内容

我还增加了heap和permgem空间,但这并没有什么区别。 这是目前的路线:

    onException(SchemaValidationException.class)
            .handled(true)
            .to("file://" + props.getProperty(RssUtils.ROOT_DIR)
                    + "/errors/SchemaValidationException");

    onException(GenericFileOperationFailedException.class)
            .handled(true)
            .to("file://" + props.getProperty(RssUtils.ROOT_DIR)
                    + "/errors/GenericFileExceptions");

    from(
            "ftp://"
                    + props.getProperty(RssUtils.FTP_URL)
                    + "?username="
                    + props.getProperty(RssUtils.FTP_USER)
                    + "&password="
                    + props.getProperty(RssUtils.FTP_PWD)
                    + "&disconnect=true&delete=true&exclude=((?i).*pdf$)&delay="
                    + props.getProperty(RssUtils.FTP_DELAY))
            .choice()
            .when(xmlPredicate)
            .to("jms:xmlQueue")
    .to("jms:archiveQueue")
            .when(imgPredicate)
            .to("file://" + props.getProperty(RssUtils.ROOT_DIR) + "/img")
            .otherwise()
            .to("file://" + props.getProperty(RssUtils.ROOT_DIR)
                    + "/errors/other");

    from("jms:xmlQueue").to("validator:FtpXmlValidator.xsd")
            .to("xslt://XmlToRssConverter.xsl")
            .process(rssFeedProcessor)
            .to("file://" + props.getProperty(RssUtils.ROOT_DIR) + "/rss/");

from("jms:archiveQueue")
    .to("file://" + props.getProperty(RssUtils.ROOT_DIR) + "/archive/");
有人能发现问题吗?
或者对解决这个问题有什么建议?

您使用什么版本的Camel?我使用的是最新版本2.10。您对killed本身的意思是什么,进程终止了?在日志、核心转储等中没有这种痕迹?当杀戮发生时,应用程序会做什么?你用什么操作系统?JVM是否内存不足等?我搜索了日志文件,但没有记录任何内容,只有一次在日志中找到“Killed”。是的,我的意思是这个过程被终止了。当它终止时,它什么也不做,这更奇怪。我用的是Debian Lenny 5.0.5。我没有检查内存,但我已经增加了堆,但我没有处理任何繁重的内容,只处理小于10kb的xml文件和小于50kb的jpg文件,并且应用程序在几个月前运行良好。这是控制台日志中的输出:[主机]调度程序]调试队列-存档队列toPageIn:0,飞行中:0,pagedInMessages.size 0,enqueueCount:119,dequeueCount:119[主机]计划程序]调试队列-queue://archiveQueue 正在过期的消息已完成。[eckpoint Worker]调试消息数据库-检查点已启动。[eckpoint Worker]调试消息数据库-检查点已完成。没杀什么特别的没有stacktrace没有例外什么都没有