Hello, i really need your help!
I'm trying to use the FTP adapter in a BPEL service to connect to an FTPS Server over TLS with Explicit mode. I understand, from what i have read, that explicit TLS connections need a command port (commonly 21) to stablish the initial connection, then FTP Server returns, among other stuff, a random data port (wich is in a predefined range) to start a new connection using this port to data exchange, when the exchange has finished, the connection to the data port is closed, but keeps the initial connection.
I've found this doc from MOS: Doc ID 2073857.1
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=323078634127558&id=2073857.1&_afrWindowMode=0&_adf.ctrl-…
Maybe i'm not understanding very well, but at the end of the document says the following statement:
In the customer's case they needed to allow inbound connections on a port not blocked by the firewall and a passive port range for the data port (secure port in the FTP adapter UI).
Wich makes me think that i can configure a port range for data port in FPT adapter property SecurePort. But i can't figure out if this is possible, and if yes, how can i set it. My actual allowed port range is from 1025 to 65532.
Some of the FTP Adapter properties are:
AuthenticationType: password
ConnectionMode:passive
DataChannelPort:
Host: myftphostname
Password:myftppassword
Port:21
SecurePort:990 (i've tryed several options here)
UseFtps:true
UseImplicitSSL:false
Username:myftpusername
UseSftp:false
I have tryed several options in the adapter properties with no success, it seem that is able to stablish the connection, but it can't get a file.
When invoke a Synchronous read operation (or list), the message i get is java.io.FileNotFoundException
<17/01/2017 05:47:00 PM CST> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=> ListarArchivosFTP:LeerArchivo [ SynchRead_ptt::SynchRead(Empty,body) ] Could not invoke operation 'SynchRead' against the 'ftp' due to:
BINDING.JCA-11007
No hay datos que procesar.
No hay datos que procesar.
No se ha encontrado el archivo /Reports/myFile.txt para su procesamiento, no está disponible o no tiene contenido
Asegúrese de que el archivo existe en el directorio especificado.
>
<17/01/2017 05:47:00 PM CST> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=> [default/ListarArchivosFTP!1.0*soa_16f6e3d8-911c-4471-afe2-93662864d262.LeerArchivo]:SynchRead Two-way operation SynchRead() failed>
<17/01/2017 05:47:00 PM CST> <Error> <oracle.soa.bpel.engine.ws> <BEA-000000> <got FabricInvocationException
** Cikey: 150028
** FlowId: 150005
** Current Activity Key: 150028-BpInv0-BpSeq0.3-3
** Current Activity Label: leerArchivoInvoke
** InvokeMessageGuid: d470b1fc-dd0c-11e6-b938-480fcf5706aa
** ComponentDN: default/ListarArchivosFTP!1.0*soa_16f6e3d8-911c-4471-afe2-93662864d262/ListarArchivosBPEL
** Properties for component ListarArchivosBPEL:
** bpel.config.oneWayDeliveryPolicy: async.persist
** Transaction info: Name=[EJB com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean.handleInvoke(com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage)],Xid=BEA1-498272647C8DE50C6CCB(1135371878),Status=Active,numRepliesO
nUsed=true,doInit=false,'null',destroyed=false,poolname=SOADataSource,appname=null,moduleName=null,connectTime=184,dirtyIsolationLevel=false,initialIsolationLevel=2,infected=false,lastSuccessfulConnectionUse=1484696820344,secondsToTrustAnI
s/oracle/in-memory, SOADataSource_soa_domain, eis/webspheremq/Queue, eis/AQ/aqSample, eis/aqjms/EDNxaDurableTopic, eis/tibjmsDirect/Queue, eis/aqjms/Queue, eis/Apps/Apps, WLStore_soa_domain__WLS_soa_server1, WLStore_soa_domain_SOAJMSFileSt
** MaxThreadsConstraints: 150
** Total dispatcher messages scheduled for processing: 0
** Total number of threads processing dispatcher messages: 1
** Max Heap size: 1908932608
** Free Heap size: 965114288
java.io.FileNotFoundException:
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at oracle.tip.adapter.ftp.FtpSSLManager.getKeyManagerFactory(FtpSSLManager.java:246)
at oracle.tip.adapter.ftp.FtpSSLManager.getSSLSocketFactory(FtpSSLManager.java:341)
at oracle.tip.adapter.ftp.FtpSocketFactory.<init>(FtpSocketFactory.java:202)
at oracle.tip.adapter.ftp.FTP.connect(FTP.java:612)
at oracle.tip.adapter.ftp.FTPClient.establishFtpSession(FTPClient.java:211)
at oracle.tip.adapter.ftp.FTPAgent.login(FTPAgent.java:861)
at oracle.tip.adapter.ftp.FTPAgent.preCall(FTPAgent.java:1425)
at oracle.tip.adapter.ftp.FTPAgent.getBinaryFileAsStream(FTPAgent.java:488)
at oracle.tip.adapter.ftp.FTPAgent.getContentAsStream(FTPAgent.java:534)
at oracle.tip.adapter.ftp.inbound.FTPSource.getContents(FTPSource.java:850)
at oracle.tip.adapter.ftp.inbound.FTPSource.getFileFromSource(FTPSource.java:762)
at oracle.tip.adapter.file.outbound.FileReader.readFile(FileReader.java:414)
at oracle.tip.adapter.file.outbound.FileReader.executeFileRead(FileReader.java:219)
at oracle.tip.adapter.file.outbound.FileInteraction.executeFileRead(FileInteraction.java:334)
at oracle.tip.adapter.ftp.outbound.FTPInteraction.execute(FTPInteraction.java:293)
at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:418)
at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeJcaReference(JCAInteractionInvoker.java:780)
at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeSyncJcaReference(JCAInteractionInvoker.java:682)
at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAEndpointInteraction.performSynchronousInteraction(JCAEndpointInteraction.java:611)
at oracle.integration.platform.blocks.adapter.AdapterReference.request(AdapterReference.java:220)
at oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(SynchronousMessageHandler.java:151)
at oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.java:214)
at oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:301)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy366.request(Unknown Source)
at oracle.fabric.CubeServiceEngine.requestToMesh(CubeServiceEngine.java:1138)
at com.collaxa.cube.ws.WSInvocationManager.invoke0(WSInvocationManager.java:261)
at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:331)
at com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke(InvokeHandler.java:1476)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalWSDLInvoke(InvokeHandler.java:811)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalInvoke(InvokeHandler.java:502)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handle(InvokeHandler.java:156)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:78)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP$1.call(BaseBPELActivityWMP.java:197)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP$1.call(BaseBPELActivityWMP.java:195)
at com.collaxa.bpel.sws.SWSComponentProcessActivityWrapper$1.call(SWSComponentProcessActivityWrapper.java:74)
at com.collaxa.bpel.sws.SWSCallableActivityWrapper.execute(SWSCallableActivityWrapper.java:89)
at com.collaxa.bpel.sws.SWSComponentProcessActivityWrapper.execute(SWSComponentProcessActivityWrapper.java:82)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:205)
at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2878)
at com.collaxa.cube.engine.CubeEngine._handleWorkItem(CubeEngine.java:1260)
at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1155)
at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:92)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:300)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:379)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4871)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4795)
at com.collaxa.cube.engine.CubeEngine._createAndInvoke(CubeEngine.java:751)
at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:586)
at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:723)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:478)
at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:33)
at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.handleInvoke(Unknown Source)
at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:43)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:154)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatchTask.java:150)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:90)
at com.collaxa.cube.engine.dispatch.WMExecutor$W.run(WMExecutor.java:236)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:207)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)
>
I truly appreciate any help.