我在Windows上使用WSO2 ESB 4.5.1。
我的问题是临时文件夹WSO2_HOME/tmp
正在成长,从未清理过。
我发现问题来自 xslt中介,每次变换一个大的xml文件(~15kb)时都会创建一个新的临时文件。
有没有人知道为什么不清理这些tmp文件?
代理:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="input" transports="vfs" startOnLoad="true" trace="disable">
<parameter name="transport.PollInterval">5</parameter>
<parameter name="transport.vfs.FileURI">vfs:file://C:/WSO2/Test/From</parameter>
<parameter name="transport.vfs.FileNamePattern">.*[.].*</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>
<target faultSequence="errorSequence">
<inSequence>
<log level="full"/>
<property name="ClientApiNonBlocking" scope="axis2" action="remove"/>
<property name="OUT_ONLY" value="true"/>
<xslt key="avintis_xml_indent"/>
<property name="transport.vfs.ReplyFileName" expression="fn:concat('out_', $trp:FILE_NAME, '.xml')" scope="transport"/>
<send>
<endpoint>
<address uri="vfs:file://C:/WSO2/Test/To"/>
</endpoint>
</send>
</inSequence>
</target>
</proxy>
XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:avintis="http://www.avintis.com/esb"
xmlns:urn="urn:hl7-org:v2xml" version="2.0"
xmlns:payload="http://ws.apache.org/commons/ns/payload">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="*|text()|@*">
<xsl:copy>
<xsl:apply-templates select="*|text()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
inputfile中:
any xml file bigger than ~15kb
答案 0 :(得分:1)
HouseKeeping Task似乎没有清除临时文件。要使用内务处理任务清理它们,您可以在Carbon.xml中对其进行配置,如下所示。
<WorkDirectory>${carbon.home}/tmp/work</WorkDirectory> <HouseKeeping> <AutoStart>true</AutoStart> <Interval>10</Interval> <MaxTempFileLifetime>30</MaxTempFileLifetime> </HouseKeeping>