Jca Ftp Adapter - XA support

Hi,
I have requirement to move files between two ftp servers. I have implemented this using OSB services configured with jca ftp adapter. After reading the files from the source system the adapter is configured to delete the file from source directory. While moving the files if the target system is unreachable the transaction should roll back and the file should remain in the source directory.
Can this be achievable using jca ftp adapter. Does ftp adapter have XA capability?
Thanks,
Sai.

OSB's ftp transport is transactional on the inbound side ( proxy service side) .. So you could use this.. Make sure you are not configuring any reply actions in any of the error handlers.. When route error occurs make sure the error is allowed to propagate back to the system error handler.. .
By default osb's ftp transport will retry only once and then move the file to the error directory. If you want to change this behaviour say retry infinitely or retry after a delay , you have to change the dleivery failure settings for the internal JMS queue WLSAdmin Console --> JMSModules --> jmsResources --> wlsb.internal.transport.task.queue.ftp_auto_2 ( wlsb.internal.transport.task.queue.ftp_auto_3 and so on) Delivery Failure and change redelivery delay and redelivery limit.
Note OSB's ftp transport is not transactional outbound(business service) , so you might get only "At-least once" (and not "exactly-once") quality of service using this ..

Similar Messages

  • Customizing JCA FTP Adapter properties in OSB

    Hi,
    I have requirement to read a file from one file system and write it on another file system.I have implemented this using jca FTP adapter in OSB.
    The read and write directory will be different across environments in which I need to deploy the project.
    The read and write directory info is present in the jca file as given below.
    <activation-spec className="oracle.tip.adapter.ftp.inbound.FTPActivationSpec">
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="0"/>
    <property name="PhysicalDirectory" value="TEST/INPUT"/>
    <property name="Recursive" value="true"/>
    <property name="PollingFrequency" value="10"/>
    <property name="FileType" value="ascii"/>
    <property name="PhysicalArchiveDirectory" value="/PROJ/ARCHIVE"/>
    <property name="IncludeFiles" value=".*\..*"/>
    <property name="UseHeaders" value="false"/>
    </activation-spec>
    Is it possibel to cahnge this valueof <property name="PhysicalDirectory" value="TEST/INPUT"/> using customization files. From the OSB docs I undersatnd that only OSB predefined environment values can be changed using customization files.
    Thanks,
    Sai.

    Hi Prabu,
    The directory name is not appearing in the configuration of the services.
    I have specific reason for going with jca Adapter. Why writing the files to the destination if some failure happens ftp protocol may cause partially written files but I think JCA adapter will make sure either the file is completely transferred or not transferred at all.
    If this cannot be done in OSB I think I need to go for BPEL implementation where the config plan supports the replacement of JCA properties.
    Thanks,
    Sai.

  • Passing Streaming Content to a JCA FTP adapter in OSB

    Hi,
    Is there any way to pass streaming content represented by e.g.<con:binary-content ref="cid:1b6ff6d0:1416f7a74ab:-1d8a" xmlns:con="http://www.bea.com/wli/sb/context"/> to JCA FTP(business service) adapter?
    My binary content already represents base64Binary format. Content is around 250Mb so there is no possibility to put it to memory(java.lang.OutOfMemoryError).
    FTP Adapter wsdl
    <wsdl:definitions
         name="FTPAdapter"
         targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/Adapter/FTPAdapter/FTPAdapter"
         xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
         xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/ftp/Adapter/FTPAdapter/FTPAdapter"
         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
         xmlns:opaque="http://xmlns.oracle.com/pcbpel/adapter/opaque/"
         xmlns:FTPAPP="http://xmlns.oracle.com/pcbpel/adapter/ftp/"
         xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
        >
      <plt:partnerLinkType name="SaveFile_plt" >
        <plt:role name="SaveFile_role" >
          <plt:portType name="tns:SaveFile_ptt" />
        </plt:role>
      </plt:partnerLinkType>
        <wsdl:types>
        <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/opaque/"
                xmlns="http://www.w3.org/2001/XMLSchema" >
          <element name="opaqueElement" type="base64Binary" />
        </schema>
        <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/" xmlns="http://www.w3.org/2001/XMLSchema"
                attributeFormDefault="qualified"
                elementFormDefault="qualified" >
           <element name="OutboundFTPHeaderType" >
             <complexType>
               <sequence>
                 <element name="fileName" type="string" />
                 <element name="directory" type="string" />
                </sequence>
               </complexType>
           </element>
        </schema>
        </wsdl:types>
        <wsdl:message name="SaveFile_msg">
            <wsdl:part name="opaque" element="opaque:opaqueElement"/>
        </wsdl:message>
        <wsdl:message name="Output_msg">
            <wsdl:part name="body" element="FTPAPP:OutboundFTPHeaderType"/>
        </wsdl:message>
        <wsdl:portType name="SaveFile_ptt">
            <wsdl:operation name="SaveFile">
                <wsdl:input message="tns:SaveFile_msg"/>
                <wsdl:output message="tns:Output_msg"/>
            </wsdl:operation>
        </wsdl:portType>
    </wsdl:definitions>

    aren't the default cluster aware settings enough for this ?
    http://docs.oracle.com/cd/E15523_01/integration.1111/e10231/adptr_db.htm
    Scalability
    you could enable a few in the adapter wizards

  • JCA: Sample Adapter Transaction Support

    Hi guys,
      Could anyone tell me the transaction level supported by Sample Adapter.In the code they are using SAPResourceAdapter to access the J2EE Thread Manager.But in the code it has given that it won't support Local Transaction or XA Resource.
      So what is the Transaction level supported by Sample Adapter.
    regards,
    siva.

    You have to distinguish between 1) the Transaction level support of the J2EE Connector Architecture (JCA) and 2) the internal usage of the J2EE transaction manager.
    Ad 1) the XI docu says <i>JCA resource adapters can provide all kinds of JCA transactions. The Adapter Framework does not use them</i>. That's why the sample adapter uses NoTransaction.
    Ad 2): The transaction manager has to be used for asynchronous processing (QoS Exactly Once). This is used for transaction management inside the adapter. For details see the sample adapter code or the Adapter Development docu http://help.sap.com/saphelp_nw04/helpdata/en/59/59d6409ff68631e10000000a1550b0/content.htm

  • FTP adapter for Oracle Service Bus  - retrieve file by dynamic file name.

    Hi
    I am newbie in OSB. I try to use FTP transport in Workshop, it must fill in "Prefix" and "Suffix" for destination file name.
    But for us, the file name is sent by external systems.
    The workflow is:
    1. External system call our proxy services.
    2. Proxy service get file name from SOAP message.
    3. Proxy Service get the file from FTP server.
    4. The file send to Business services.
    Any suggestions to implement about workflows?

    Let me first put here what I understand about the flow:
    External Sytem -->(filename)--> OSB HTTP PS --> (1) --> OSB FTP BS --> Read file based on filename
    |--> (2) --> send file ontent to another system or return to the original system
    If that is the flow, then I beileve ther is no straight forward way to implement it in OSB.
    OSB FTP BS will only write a file to FTP Location.
    If you create a JCA FTP Adapter for reading the file, then you can use it only to create a Proxy Service, and that proxy will not pick up the file when called from another service but only when a file is put on the source FTP location.
    So, to implement the solution you will need to use Java Callout to a class which has code written to accept the file name as input, read the file from an FTP location and return the file content.
    This is my understanding of how it is, may be there is another way to implement this or in fact may be the latest version of OSB 11.1.1.4 or 11.1.1.5 JCA adapter does support read operation within a flow instead of just at the start of the flow.

  • BPEL FTP Adapter name space

    Hi Friends,
    I have a bpel process which sends xml data over ftp. The name space in FTPed data looks as below:
    "<?xml version = "1.0" encoding = "UTF-8" ?>
    _+<Metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://aiv-external.s3.org.com/UnboxMetadata.xsd" xmlns:tns="http://www.org.com/UnboxMetadata/v1" xmlns="http://www.org.com/UnboxMetadata/v1">+_
    <tns:Movie><tns:PartnerName>ABC</tns:PartnerName><tns:UniqueID>1263456</tns:UniqueID>
    </tns:Movie>"
    However receive of ftpied data expect following (Please note change in sehmalocation:
    " <?xml version = "1.0" encoding = "UTF-8" ?>
    _+<Metadata xsi:schemaLocation="http://www.amazon.com/UnboxMetadata/v1 http://aiv-external.s3.amazonaws.com/UnboxMetadata.xsd"+_
    _+xmlns="http://www.amazon.com/UnboxMetadata/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+_
    <Movie><PartnerName>ABC</PartnerName><UniqueID>1263456</UniqueID>
    </Movie>"
    Is i t possible to control/change schema location and get file in expected form?
    Thanks,
    Sachin.
    Edited by: user10051771 on May 1, 2013 2:31 PM

    Thanks Everybody for the prompt response .
    1) What error does one get when trying to connect to FTP Sever which only support active mode
    No Error , but no file transfer happens. SR and Bug Request for the same is already in place .
    QUESTION
    ========
    Does BPEL FTP Adapter supports active ftp mode (instead of passive).
    ANSWER
    ======
    No, FTP Adapter only supports passive mode. For that purpose there is an Enhancement Request
    already, the Bug 6866124 - NEED SUPPORT FOR PASSIVE FTP ADAPTER AND CUSTOM FTP
    COMMANDS :
    1. The FTP Server needs to be active for the Adapter to work. So, both FTP Server and the FTP adapter must be active for it to work.
    Also you only support PASSIVE mode in our FTP JCA adapter. ACTIVE mode is currently
    considered bad practice and a security vulnerability.
    But, we would require both ACTIVE and PASSIVE modes.
    2. Custom commands are not supported. But, we need the samples for custom FTP Commands and support for it.
    for example: quote site fixrecfm 90...

  • BPEL FTP Adapter Active Mode

    Does BPEL FTP Adapter supports active ftp mode (instead of passive). Apparently the ftp site for one of the Interfaces uses FTP Adapter and that ftp server it is using supports ONLY active ftp sessions, NOT passive.
    Want are configuration to made to changed to support active mode
    oc4j-ra.xml for ACTIVE ftp and not passive

    Thanks Everybody for the prompt response .
    1) What error does one get when trying to connect to FTP Sever which only support active mode
    No Error , but no file transfer happens. SR and Bug Request for the same is already in place .
    QUESTION
    ========
    Does BPEL FTP Adapter supports active ftp mode (instead of passive).
    ANSWER
    ======
    No, FTP Adapter only supports passive mode. For that purpose there is an Enhancement Request
    already, the Bug 6866124 - NEED SUPPORT FOR PASSIVE FTP ADAPTER AND CUSTOM FTP
    COMMANDS :
    1. The FTP Server needs to be active for the Adapter to work. So, both FTP Server and the FTP adapter must be active for it to work.
    Also you only support PASSIVE mode in our FTP JCA adapter. ACTIVE mode is currently
    considered bad practice and a security vulnerability.
    But, we would require both ACTIVE and PASSIVE modes.
    2. Custom commands are not supported. But, we need the samples for custom FTP Commands and support for it.
    for example: quote site fixrecfm 90...

  • FTP Adapter on OSB - how to specify logical directory path

    I am using the ftp adapter on osb 11g (Oracle Service Bus Version: [Oracle Service Bus Server Side Dependencies 11.1 Thu Aug 19 02:10:08 PDT 2010 ] Oracle Weblogic Server Version: [WebLogic Server 10.3.4.0 Fri Dec 17 20:47:33 PST 2010 1384255 ])
    I defined the ftp adapter using jdev and imported the jca artifacts into osb.
    I created a business service using jca adapter to put the file to the ftp server.
    The problem is the write directory on the ftp server is different for each environment - DEV, QA, PROD.
    I used a physical directory specification when defining the adapter in JDEV because it wasn't clear from the help how i would override a logical directory during deployment to osb (it is clear if deploying to soa suite).
    Is there a way to override this dynamically override this directory at runtime. Or even better a way to override during deployment time?

    You do it either way....
    Import the SBConfig jar into the sbconsole and change the value in the JCA file
    or
    Re: Customizing JCA FTP Adapter properties in OSB

  • OSB error while generating business service for FTP adapter Sync Get File

    Hi All
    I am trying to generate a business service from SOA Suite JCA FTP adapter Sync Get File, but i am getting this exception for no reasons (Rest operations list file, get file and put file are working)
    Invalid JCA transport endpoint configuration, exception: java.lang.NullPointerException     Unknown ALSB Conflict.
    Is this a bug in eclipse, can any body help me. Thanks
    Sorry Forgot to mention eclipse version...
    Eclipse Platform
    Version: 3.6.2
    Build id: M20110210-1200

    Ok,
    bcoz of this issue, i had to code the entire interface in OSB console. It runs fine in OSB console (i was able to test it successfully).
    Is this a bug in eclipse or only i am facing this issue? Has anybody tried to create a business service from JCA FTP Get Synchronous jca file?
    <adapter-config name="FTPReadMOMFileOnRMSDB" adapter="FTP Adapter"
         wsdlLocation="../wsdl/FTPReadMOMFileOnRMSDB.wsdl"
         xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
         <connection-factory location="eis/ftp/RMSDBFtpAdapter" />
         <endpoint-interaction portType="SynchRead_ptt"
              operation="SynchRead">
              <interaction-spec
                   className="oracle.tip.adapter.ftp.outbound.FTPReadInteractionSpec">
                   <property name="DeleteFile" value="true" />
                   <property name="PhysicalDirectory" value="/MOMFiles/output" />
                   <property name="FileName" value="*" />
                   <property name="FileType" value="binary" />
              </interaction-spec>
         </endpoint-interaction>
    </adapter-config>
    One more doubt? The PhysicalArchiveDirectory path can be on the FTP server something like: /MOMFiles/archive. Or do i have to use the Put operation to move it to /MOMFiles/archive directory. Currently OSB console and eclipse do not accept FTP path for this parameter and want me to specify a local directory on server. Thanks

  • Using JCA FTP and File Adapters to transfer files as attachments

    I am trying to develop a flow that picks a file up using the JCA FTP adapter and writes it using the JCA File Adapter. I can get this to work using opaqeElement but the issue I have is that the files that will be transferred are regularly very large > 1 GB and using the opaqueElement simply results in a OutOfMemoryException.
    Reading the Adapter documentation it seems that Reading/Writing file as an attachment may be an answer. I therefore did the following.
    . Created FTP Read and File Write adapters in JDeveloper
    . Inmported this in to OEPE
    . Created Proxy Service and Business Service and wired them together
    The problem i am having is that even though there is no error and the file is being read on the FTP server, the resulting file only contains that attachment details, the file is not a copy of the file that was picked up from the ftp server.
    I am assuming that this behaviour is not correct and that the file should be transferred in its entirity. Unfortunatly the documentation is not very detailed and I cannot find any examples on the internet.
    Can anyone offer any advice or even better suggest where I can find an example.
    Regards
    My JCA adapters are as follows:
    FileWriteAsAttachmentAdapter_file
    <adapter-config name="FileWriteAsAttachmentAdapter" adapter="File Adapter"
         wsdlLocation="FileWriteAsAttachmentAdapter.wsdl"
         xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/HAFileAdapter"/>
    <endpoint-interaction portType="Write_ptt" operation="Write">
    <interaction-spec className="oracle.tip.adapter.file.outbound.FileInteractionSpec">
    <property name="PhysicalDirectory" value="C:\fileserver\download\toprocess"/>
    <property name="Append" value="false"/>
    <property name="FileNamingConvention" value="attachment_%SEQ%.csv"/>
    <property name="NumberMessages" value="1"/>
    </interaction-spec>
    </endpoint-interaction>
    </adapter-config>
    FileWriteAsAttachmentAdapter.wsdl
    <wsdl:definitions
    name="FileWriteAsAttachmentAdapter"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/AtatchmentApp/Project1/FileWriteAsAttachmentAdapter"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/file/AtatchmentApp/Project1/FileWriteAsAttachmentAdapter"
    xmlns:imp1="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    >
    <plt:partnerLinkType name="Write_plt" >
    <plt:role name="Write_role" >
    <plt:portType name="tns:Write_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    <wsdl:types>
    <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/" xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" >
    <element name="attachmentElement" >
    <complexType>
    <attribute name="href" type="string" />
    </complexType>
    </element>
    </schema>
    </wsdl:types>
    <wsdl:message name="Write_msg">
    <wsdl:part name="body" element="imp1:attachmentElement"/>
    </wsdl:message>
    <wsdl:portType name="Write_ptt">
    <wsdl:operation name="Write">
    <wsdl:input message="tns:Write_msg"/>
    </wsdl:operation>
    </wsdl:portType>
    </wsdl:definitions>
    FtpGetAsAttachmentAdapter_ftp.jca
    <adapter-config name="FtpGetAsAttachmentAdapter" adapter="FTP Adapter"
         wsdlLocation="FtpGetAsAttachmentAdapter.wsdl"
         xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/ftp/TlmsHAFtpAdapter"/>
    <endpoint-activation portType="Get_ptt" operation="Get">
    <activation-spec className="oracle.tip.adapter.ftp.inbound.FTPActivationSpec">
    <property name="AsAttachment" value="true"/>
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="300"/>
    <property name="PhysicalDirectory" value="/ftp/tlms2atas"/>
    <property name="Recursive" value="false"/>
    <property name="FileModificationTime" value="FileSystem"/>
    <property name="PollingFrequency" value="60"/>
    <property name="FileType" value="ascii"/>
    <property name="IncludeFiles" value=".*[_][0-9][0-9][-][0-9][0-9][-][0-9][0-9][_].*\.csv"/>
    <property name="UseHeaders" value="false"/>
    <property name="ModificationTimeFormat" value="dd/MM/yyyy HH:mm"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    FtpGetAsAttachmentAdapter.wsdl
    <wsdl:definitions
    name="FtpGetAsAttachmentAdapter"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/AtatchmentApp/Project1/FtpGetAsAttachmentAdapter"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/ftp/AtatchmentApp/Project1/FtpGetAsAttachmentAdapter"
    xmlns:attach="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/"
    xmlns:pc="http://xmlns.oracle.com/pcbpel/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    >
    <plt:partnerLinkType name="Get_plt" >
    <plt:role name="Get_role" >
    <plt:portType name="tns:Get_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    <wsdl:types>
    <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/" xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" >
    <element name="attachmentElement" >
    <complexType>
    <attribute name="href" type="string" />
    </complexType>
    </element>
    </schema>
    </wsdl:types>
    <wsdl:message name="Get_msg">
    <wsdl:part name="attach" element="attach:attachmentElement"/>
    </wsdl:message>
    <wsdl:portType name="Get_ptt">
    <wsdl:operation name="Get">
    <wsdl:input message="tns:Get_msg"/>
    </wsdl:operation>
    </wsdl:portType>
    </wsdl:definitions>

    System resources are finite and have a threshold limit for processing. The Oracle SOA Suite, dependent on system resources, also has certain size limitations, largely due to the underlying resources beyond which the system cannot process incoming requests.
    For example, Oracle JCA Adapters can process large payloads but the Oracle BPEL PM consumes huge memory when processing large payloads, which can cause OutOfMemory conditions and affect the whole system.
    You can try File ChunkedRead option.This will read your large CSV file in chunks so chances of memory out will be less. You can define your own chunk size.
    This is a feature of Oracle File and FTP Adapters that uses an invoke activity within a while loop to process the target file. This feature enables you to process arbitrarily
    large files. See below link's section "4.5.5 Oracle File Adapter ChunkedRead"
    http://www.orastudy.com/oradoc/selfstu/fusion/integration.1111/e10231/adptr_file.htm#BABDIABG
    Thanks,
    Ashu

  • JCA Binding error with FTP Adapter on put operation

    Hi
    I am facing a problem with put operation with ftp adapter. my soa service will get file from the 1st ftp server (Unix) as attachment and is putting the file on another ftp serve(Unix)r. the put operation is failing with the below error:-
    Non Recoverable System Fault :
    <bpelFault><faultType>0</faultType><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Put' failed due to: Error sending file to FTP Server. Error sending file to FTP Server. Unable to send file to server. Please ensure 1. Specified remote output Dir has write permission 2. Output filename has not exceeded the max chararters allowed by the OS and 3. Remote File System has enough space. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary></part><part name="detail"><detail>Unexpected termination: Socket closed</detail></part><part name="code"><code>null</code></part></remoteFault></bpelFault>
    this is a SFTP server and the corressponding property is set to true on the configuration. I had also recreated the jndi again & also increased the max connections to 700, but still facing the same issue. Also i am able to ftp the files to this location through filezilla. Also i continously getting the below errors in soa_server1.out:-
    <Jul 24, 2012 7:25:11 AM CDT> <Error> <oracle.soa.bpel.engine> <BEA-000000> <Unhandled exception for ComponentDN=default/NShoreAccrualConcService!1.0*soa_9113be23-2e93-4e54-9987-2e8ae5a4b2e6/ProcessNShoreAccurals CompositeInstanceId=330020 ComponentInstanceId=330018>
    <Jul 24, 2012 7:25:11 AM CDT> <Error> <oracle.soa.bpel.engine> <BEA-000000> <This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope. Root cause :
    com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{
    summary=<summary>Exception occured when binding was invoked.
    Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Put' failed due to: Error sending file to FTP Server.
    Error sending file to FTP Server.
    Unable to send file to server.
    Please ensure 1. Specified remote output Dir has write permission 2. Output filename has not exceeded the max chararters allowed by the OS and 3. Remote File System has enough space.
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
    </summary>
    ,detail=<detail>Unexpected termination: Socket closed</detail>
    ,code=<code>null</code>}
         at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:338)
         at com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke(InvokeHandler.java:1059)
         at com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalInvoke(InvokeHandler.java:586)
         at com.collaxa.cube.engine.ext.common.InvokeHandler.handle(InvokeHandler.java:130)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:74)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:158)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2543)
         at com.collaxa.cube.engine.CubeEngine._handleWorkItem(CubeEngine.java:1165)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1071)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:73)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:328)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4430)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4361)
         at com.collaxa.cube.engine.CubeEngine._createAndInvoke(CubeEngine.java:698)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:555)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:673)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:293)
         at sun.reflect.GeneratedMethodAccessor1687.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.jee.intercept.MethodInvocationInvocationContext.proceed(MethodInvocationInvocationContext.java:104)
         at oracle.security.jps.ee.ejb.JpsAbsInterceptor$1.run(JpsAbsInterceptor.java:94)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.ejb.JpsAbsInterceptor.runJaasMode(JpsAbsInterceptor.java:81)
         at oracle.security.jps.ee.ejb.JpsAbsInterceptor.intercept(JpsAbsInterceptor.java:112)
         at oracle.security.jps.ee.ejb.JpsInterceptor.intercept(JpsInterceptor.java:105)
         at sun.reflect.GeneratedMethodAccessor1119.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.jee.intercept.JeeInterceptorInterceptor.invoke(JeeInterceptorInterceptor.java:69)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy277.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.__WL_invoke(Unknown Source)
         at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:39)
         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:35)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:140)
         at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatchTask.java:88)
         at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:64)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
         at java.lang.Thread.run(Thread.java:662)
    >
    <Jul 24, 2012 7:25:11 AM CDT> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-000000> <failed to handle message
    com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{
    summary=<summary>Exception occured when binding was invoked.
    Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Put' failed due to: Error sending file to FTP Server.
    Error sending file to FTP Server.
    Unable to send file to server.
    Please ensure 1. Specified remote output Dir has write permission 2. Output filename has not exceeded the max chararters allowed by the OS and 3. Remote File System has enough space.
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
    </summary>

    Error itself indicates the potential issues -
    Please ensure
    1. Specified remote output Dir has write permission
    2. Output filename has not exceeded the max chararters allowed by the OS and
    3. Remote File System has enough spaceRegards,
    Anuj

  • Does Interconnect FTP Adapter support SFTP/SSH?

    Does Interconnect FTP Adapter support SFTP/SSH?
    Thanks!
    -mb

    No it doesn't!
    Actually, FTP adapter in BPEL support secure FTP (FTPS, FTP over SSL), but only on Solaris platform if believe documentation.
    You can try to connect BPEL FTP adapter to InterConnect using new JCA adapter (in IC 10.1.2.0.2), but I'm not sure wether BPEL FTP adapter is JCA-compatable or not (since it is not in Oracle AS adapters package but inside BPEL)...

  • FTP Adapter - Dynamic JCA properties.

    Hi All,
    I have a requirement to dynamically assign few jca properties in FTP Adapter as listed below,
    FileName
    JNDI name
    PhysicalDirectory
    AchiveDirectory
    DeleteFile
    UseRemoteArchive
    Out of these, i am able to dynamically set the values for Source/Target fileName, JNDIName and Source/Target directory.
    <bpelx:inputProperty name="jca.ftp.FileName" variable="SOURCE_FILENAME"/>
    <bpelx:inputProperty name="jca.jndi" variable="SOURCE_JNDI"/>
    <bpelx:inputProperty name="jca.ftp.Directory" variable="SOURCE_DIRECTORY"/>
    Can anyone let me know what values can be used for other properties as well? I tried using the below values, but the values are not changed dynamically.
    <bpelx:inputProperty name="jca.ftp.FileArchiveDirectory" variable="SOURCE_ARCHIVE_DIRECTORY"/>
    <bpelx:inputProperty name="jca.DeleteFile" variable="DELETE_SOURCE_FILE"/> and <bpelx:inputProperty name="jca.ftp.DeleteFile" variable="DELETE_SOURCE_FILE"/>
    <bpelx:inputProperty name="jca.ftp.UseRemoteArchive" variable="ARCHIVE_REQD"/>
    Thanks,
    Mukesh

    Check if this blog is of help to you -
    SOA and Oracle Fusion Middleware Blog: Dynamically Set Archive Drectory Location for FTP Transfer

  • Dynamic JNDI in FTP Adapter | jca.jndi property not picked by Adapter

    Hi,
    I am trying to pass jndi dynamically to FTP adapter using the steps mentioned in http://blogs.oracle.com/adapters/entry/changing_the_connection_factory_jndi_dynamically_in_ftp_adapter.
    I have configured FTP jndi(eis/Ftp/SoaFtpAdapter) at app server.
    And included the following property in the invoke activity that calls the FTP adapter
    <bpelx:inputProperty name="jca.jndi" variable="jndiLocation"/>
    Invoke activity definition looks as following
        <invoke name="Invoke1"
                partnerLink="FTPFileListAdap" portType="ns3:FileListing_ptt"
                operation="FileListing"
                inputVariable="Invoke1_FileListing_InputVariable"
                outputVariable="Invoke1_FileListing_OutputVariable"
                bpelx:invokeAsDetail="no">
          <bpelx:inputProperty name="jca.jndi" variable="jndiLocation"/>
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.ftp.Directory" variable="directoryName"/>
          </bpelx:toProperties>   
        </invoke>FTP Adapter jca configuration is as following
    <adapter-config name="FTPFileListAdap" adapter="FTP Adapter" wsdlLocation="FTPFileListAdap.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
      <connection-factory location="eis/Ftp/SoaFtpAdapter12" UIincludeWildcard="*.txt"/>
      <endpoint-interaction portType="FileListing_ptt" operation="FileListing">
        <interaction-spec className="oracle.tip.adapter.ftp.outbound.FTPListInteractionSpec">
          <property name="PhysicalDirectory" value="/in/dev"/>
          <property name="Recursive" value="true"/>
          <property name="IncludeFiles" value=".*\.txt"/>
        </interaction-spec>
      </endpoint-interaction>
    </adapter-config>While calling the BPEL i am passing two parameters
    jndiLocation = eis/Ftp/SoaFtpAdapter
    and
    directoryName = /in/dev
    Following is the fault that I am getting while executing the BPEL.
    <fault>
    <bpelFault>
    <faultType>0</faultType>
    <bindingFault>
    <part  name="summary">
    <summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'FileListing' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. RunTimeConfigFTP:FTPFileListAdap [ FileListing_ptt::FileListing(Empty,filelist) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/Ftp/SoaFtpAdapter12'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/Ftp/SoaFtpAdapter12. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
    </part>
    <part  name="detail">
    <detail>JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/Ftp/SoaFtpAdapter12'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/Ftp/SoaFtpAdapter12. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server </detail>
    </part>
    <part  name="code">
    <code>12510</code>
    </part>
    </bindingFault>
    </bpelFault>
    </fault>It seems that FTP Adapter is not picking up the value from jca.jndi property.
    How to handle this situation.
    Thanks
    Ajay

    Hi,
    Since I am working on BPEL 2.0
    Following changes solved my problem.
    In the invoke activity, I replaced the following xml tag
          <bpelx:inputProperty name="jca.jndi" variable="jndiLocation"/>with following
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.jndi" variable="jndiLocation"/>
          </bpelx:toProperties> And now my invoke activity looks as follow.
        <invoke name="Invoke1"
                partnerLink="FTPFileListAdap" portType="ns3:FileListing_ptt"
                operation="FileListing"
                inputVariable="Invoke1_FileListing_InputVariable"
                outputVariable="Invoke1_FileListing_OutputVariable"
                bpelx:invokeAsDetail="no">
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.ftp.Directory" variable="directoryName"/>
          </bpelx:toProperties>   
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.jndi" variable="jndiLocation"/>
          </bpelx:toProperties>      
        </invoke>Thanks
    Ajay

  • How to change the JCA JNDI dynamically using FTP Adapter

    We have 5 FTP Servers, each having a directory to poll. We have created 5 CCI instances for these FTP Adapters in the FTPAdapter deployment. We created a BPEL process and using FTP Adapter to connect to above mentioned servers.
    Question: Customer's requirement is to use a single BPEL process to poll all these FTP Servers at a specified date and time. How can we connect dynamically to each FTP server at specified time.
    (OR)
    Is there any way to change the JCAJNDI dynamically in a FTP Adapter configuration ?
    I have seen that FTP Adapter POLL doesnt take any JCA JNDI/hostname/un/pwd/date/time dynamically.
    Regards
    Pavan

    Hi Pavan,
    It's possible to change the JNDI dynamically but only when you use put operation where you can control the JNDI name at the time of invoking the FTP Adapter as described in below link.
    Dynamic JNDI in FTP Adapter | jca.jndi property not picked by Adapter
    However, can you consider using BPEL process with SyncRead (and read files through all the JNDIs in a loop) and scheduling this BPEL process to a desired frequency?
    Regards,
    Neeraj Sehgal

Maybe you are looking for