File WSO2ESB文件适配器-transport.vfs

File WSO2ESB文件适配器-transport.vfs,file,proxy,wso2,wso2esb,vfs,File,Proxy,Wso2,Wso2esb,Vfs,我使用WSO2ESB 4.8.1。目前,我尝试创建一个相当简单的服务,它将从一个文件夹中读取文件并将其写入另一个文件夹。所有文件夹都位于同一物理分区上 我在办公室里听从指示 在 这是我的简单文件处理代理配置: 移动 5. file:///opt/wso2/wso2data/esboverviewtest/original file:///opt/wso2/wso2data/esboverviewtest/in file:///opt/wso2/wso2data/esboverviewtest/

我使用WSO2ESB 4.8.1。目前,我尝试创建一个相当简单的服务,它将从一个文件夹中读取文件并将其写入另一个文件夹。所有文件夹都位于同一物理分区上

我在办公室里听从指示 在

这是我的简单文件处理代理配置:


移动
5.
file:///opt/wso2/wso2data/esboverviewtest/original
file:///opt/wso2/wso2data/esboverviewtest/in
file:///opt/wso2/wso2data/esboverviewtest/failure
*.txt
文本/纯文本
移动
yyyy-MM-dd'HH:MM:ss.SSSZ_
file:///opt/wso2/wso2data/esboverviewtest
transferFails.log
yyyy-MM-dd'HH:MM:ss.SSSZ_
总而言之,它是有效的。当我将文件放入“in”目录时,它会被移动到“out”和“original”目录

当我开始测试“out”或“original”目录不可用时会发生什么情况时,我开始讨论这个问题。。。i、 e移动新传入文件时出错

尽管wso2网站上有文档记录,但以下参数仍然存在:

transport.vfs.MoveAfterFailure
transport.vfs.ActionAfterFailure
transport.vfs.FailedRecordsFileDestination
transport.vfs.FailedRecordsFileName
transport.vfs.MoveFailedRecordTimestampFormat
完全被忽略了。。。如果文件传输到“out”目录时出现任何故障,则该文件永远不会放入“failure”文件夹

以下是日志:

TID: [0] [ESB] [2015-09-03 21:43:41,120]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  To: , WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:86C197EE849A6CA9071441298621105, Direction: request, Envelope: <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><text xmlns="http://ws.apache.org/commons/ns/payload">test message 1
</text></soapenv:Body></soapenv:Envelope> {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2015-09-03 21:43:41,128]  INFO {org.apache.synapse.core.axis2.TimeoutHandler} -  This engine will expire all callbacks after : 120 seconds, irrespective of the timeout action, after the specified or optional timeout {org.apache.synapse.core.axis2.TimeoutHandler}
TID: [0] [ESB] [2015-09-03 21:43:41,134] ERROR {org.apache.synapse.transport.vfs.VFSUtils} -  Cannot get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out before processing {org.apache.synapse.transport.vfs.VFSUtils}
TID: [0] [ESB] [2015-09-03 21:43:41,135]  WARN {org.apache.synapse.transport.vfs.VFSTransportSender} -  Couldn't get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out, retry : 1 scheduled after : 30000 {org.apache.synapse.transport.vfs.VFSTransportSender}
TID: [0] [ESB] [2015-09-03 21:44:11,136] ERROR {org.apache.synapse.transport.vfs.VFSUtils} -  Cannot get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out before processing {org.apache.synapse.transport.vfs.VFSUtils}
TID: [0] [ESB] [2015-09-03 21:44:11,136]  WARN {org.apache.synapse.transport.vfs.VFSTransportSender} -  Couldn't get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out, retry : 2 scheduled after : 30000 {org.apache.synapse.transport.vfs.VFSTransportSender}
TID: [0] [ESB] [2015-09-03 21:44:41,137] ERROR {org.apache.synapse.transport.vfs.VFSUtils} -  Cannot get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out before processing {org.apache.synapse.transport.vfs.VFSUtils}
TID: [0] [ESB] [2015-09-03 21:44:41,137]  WARN {org.apache.synapse.transport.vfs.VFSTransportSender} -  Couldn't get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out, retry : 3 scheduled after : 30000 {org.apache.synapse.transport.vfs.VFSTransportSender}
TID: [0] [ESB] [2015-09-03 21:45:11,138] ERROR {org.apache.synapse.transport.vfs.VFSUtils} -  Cannot get the lock for the file : file:///XXXopt/wso2/wso2data/esboverviewtest/out before processing {org.apache.synapse.transport.vfs.VFSUtils}
TID: [0] [ESB] [2015-09-03 21:45:11,139] ERROR {org.apache.synapse.transport.vfs.VFSTransportSender} -  Couldn't send the message to file : file:///XXXopt/wso2/wso2data/esboverviewtest/out, unable to acquire the lock even after 4 retries {org.apache.synapse.transport.vfs.VFSTransportSender}
TID: [0] [ESB] [2015-09-03 21:45:11,140]  INFO {org.apache.axis2.engine.AxisEngine} -  [MessageContext: logID=9ffc75049fa389747d1fe3eac64c356ce001a7d103ba20fd] Couldn't send the message to file : file:///XXXopt/wso2/wso2data/esboverviewtest/out, unable to acquire the lock even after 4 retries {org.apache.axis2.engine.AxisEngine}
TID:[0][ESB][2015-09-03 21:43:41120]INFO{org.apache.synapse.mediators.builtin.LogMediator}-To:,WSAction:urn:mediate,SOAPAction:urn:mediate,MessageID:urn:uuid:86C197EE849A6CA9071441298621105,方向:请求,信封:测试消息1
{org.apache.synapse.mediators.builtin.LogMediator}
TID:[0][ESB][2015-09-03 21:43:41128]信息{org.apache.synapse.core.axis2.TimeoutHandler}-在指定或可选的超时{org.apache.synapse.core.axis2.TimeoutHandler}后,无论超时操作如何,此引擎将在120秒后使所有回调过期
TID:[0][ESB][2015-09-03 21:43:41134]错误{org.apache.synapse.transport.vfs.VFSUtils}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out 在处理{org.apache.synapse.transport.vfs.VFSUtils}之前
TID:[0][ESB][2015-09-03 21:43:41135]警告{org.apache.synapse.transport.vfs.vfstranportsender}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out,重试:1计划在30000{org.apache.synapse.transport.vfs.vfstranportsender}之后重试
TID:[0][ESB][2015-09-03 21:44:11136]错误{org.apache.synapse.transport.vfs.VFSUtils}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out 在处理{org.apache.synapse.transport.vfs.VFSUtils}之前
TID:[0][ESB][2015-09-03 21:44:11136]警告{org.apache.synapse.transport.vfs.vfstranportsender}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out,重试:2计划在:30000{org.apache.synapse.transport.vfs.vfstranportsender}
TID:[0][ESB][2015-09-03 21:44:41137]错误{org.apache.synapse.transport.vfs.VFSUtils}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out 在处理{org.apache.synapse.transport.vfs.VFSUtils}之前
TID:[0][ESB][2015-09-03 21:44:41137]警告{org.apache.synapse.transport.vfs.vfstranportsender}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out,重试:3计划在30000{org.apache.synapse.transport.vfs.vfstranportsender}之后重试
TID:[0][ESB][2015-09-03 21:45:11138]错误{org.apache.synapse.transport.vfs.VFSUtils}-无法获取文件的锁:file:///XXXopt/wso2/wso2data/esboverviewtest/out 在处理{org.apache.synapse.transport.vfs.VFSUtils}之前
TID:[0][ESB][2015-09-03 21:45:11139]错误{org.apache.synapse.transport.vfs.vfstranportsender}-无法将消息发送到文件:file:///XXXopt/wso2/wso2data/esboverviewtest/out,即使重试4次{org.apache.synapse.transport.vfs.vfstranportsender}也无法获取锁
TID:[0][ESB][2015-09-03 21:45:11140]信息{org.apache.axis2.engine.AxisEngine}-[MessageContext:logID=9ffc75049fa389747d1fe3eac64c356ce001a7d103ba20fd]无法将消息发送到文件:file:///XXXopt/wso2/wso2data/esboverviewtest/out,即使重试4次,也无法获取锁{org.apache.axis2.engine.AxisEngine}
该文件移动到“原始”(什么是确定的),但4次尝试后,该文件被简单地丢弃,文件夹“失败”被留空

更重要的是,属性transport.vfs.FailedRecordsFileDestination和transport.vfs.FailedRecordsFileName也被忽略,并且没有生成任何文件,其中应该包含问题传输的列表


问题是如何通过WSO2ESB配置可靠的文件传输,以便能够跟踪成功传输的文件以及应重新处理的文件。

如果失败,您的输入文件将移动到transport.vfs.MoveAfterFailure。 但在这里,“failure”表示ESB无法读取文件或构建其内容的情况

例如,您将transport.vfs.ContentType配置为application/xml,并且文件的内容是纯文本:它将被移动到transport.vfs.MoveAfterFailure

一旦输入文件的内容被发送到inSequence中,无论中介的问题是什么,该文件都将被移动到transport.vfs.MoveAfterProcess

transport.vfs.FailedRecordsFileName是用于维护故障文件列表的文件名。默认值为repository/conf/vfs-move-failed-records.properties

transport.vfs.MoveAfterFailedMove:New destination还有第二次机会移动失败的文件

如果要在中介内部(例如,在faultSequence中)选择另一个目录,该目录将输入