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

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.

  • 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 ..

  • 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

  • FTP Adapter in OSB

    Hi Guys,
    I have used an FTP adapter in OSB and it is working fine. What I want to do is to override the Delete File setting for the adapter.
    I don't want to delete(or archive) the file/s (scenario e.g. is that I have to send the same file over and over again).
    Please suggest. Thanks in advance.

    Hi,
    You can overide the Delete File setting by using a logical name instead of a physical path to the folder.
    When you use logical names for the file read and archive locations, two properties are added to the service/reference binding with the name you have given them in the wizard.
    The value between the tags can be overwritten. Initials they''re blank/empty.
    <property name="fileDelLoc" type="xs:string" many="false" override="may">c:\temp\out</property>
    <property name="fileLoc" type="xs:string" many="false" override="may">c:\temp\in</property>
    These properties can be changed on deployment time with a configuration plan or on runtime via the EM in the settings page of the service binding.
    <service name="ReadFileService">
      <property name="fileDelLoc">
         <replace></replace>
       </property>
       <property name="fileLoc">
         <replace></replace>
       </property>
       <binding type="jca"/>
    </service>
    Cheers,
    Robert van Mölken
    Senior Oracle Integration Specialist

  • Need to Pass filename for archived file to FTP adapter using SynchRead

    Hi
    I am archiving the source file which i am reading using an FTP adapter, Operation- SynchRead.
    In my case as the source filename is dynamic( abc_<timestamp>.xml) hence before the SynchRead, I am using a FTP List adapter to get the filename.
    Currently,the archived file is getting name in pattern: encryptedToken_yyyymmdd_hhmmss.(e.g. wQ2c3w7Cj7Y6irWnRKqEu77_jD7kLtj6Uc0QCZIyjC4=_20121122_012453_0305)
    I need to pass the sourceFilename(which i am getting from FTPList adapter) for the archived file also.
    Thanks in advance for the help!
    Regards,
    Achal

    Hi Neeraj,
    While trying the above alternative, i am facing an issue when my source file is a .csv file. The file is getting recreated with the original filename and file content but without header.
    As per the requirement i need the original file to be recreated. The header of .csv file has the field names.
    Please let me know how should i configure my FTP adapter to read the header of the .csv file as well.
    Thanks,
    Achal

  • Singleton JCA DB Adapter in OSB

    Hi,
    I am planning to use the JCA DB Adapter for polling insert/update events in a database in OSB 11g. Basically I am creating the jca adapter in JDeveloper, then generate the proxy service from OEP Eclipse and import the project into OSB. The Proxy is working fine by polling the events, but it needs to run in cluster and so I want to know how to make the adapter as a singleton ?
    Any thoughts are really appreciated.
    Thanks!

    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

  • Passing file name dynamically in Synchronous read operation of FTP adapter in OSB

    Hi,
    We are implementing the integration in OSB 11g and using FTP JCA adapters to check if the file exists in the FTP location or not. We are using Synchronous read operation of FTP adapters. We need to pass the file name dynamically at run time. In the JCA file we can hard code the file name. How that file name can be taken dynamically using OSB.
    Regards,
    Sharmistha

    Hi Sandeep,
    This is possible.
    For creating filenames dynamically for your sender, you will have to crate a variable name ( eg: %VAR%) as you file name and then you will have to give the name of your file under variable substitution. Just check this link for more info,
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    In the case of receiver file adapaters, you have 5 options for file creation like,
    1.Create
    2.Append
    3. Add time stamp
    4.Add Counter
    5. Add Message ID
    You can choose any of these options or you can do it dynamically from you payload. Just check out this help link for more info,
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    Hope this helps

  • Regd file content conversion in receiver FTP adapter

    Hi All,
    I m trying to do FCC at receiver, i have to convert Idocxml in to a flat file.
    Input structure is smthing like this:
    MT_source
       <Header>
             <ZXw>test1<ZXw>
              <ZYe>test2<ZYe>
              <ZZR>test2<ZZR>
       </Header>
    <ZJDU>
             <ZXd>xyz<ZXd>
              <ZYE>wer<ZYE>
              <ZZw>wer<ZZw>
       </ZJDU>
    I have to get the output as:
    test1test2test2xyzwerwer..etc i mean to say i have not feildseparator and i have to revome all the tages in in put file and paste the only values in the output.Its like getting all the things in the same line.
    it tried giving  like . header.feildSeperater    ""
                                  ZJDU.feildseperater  ""
    I am very new to this,searched .. bt didnt get what to write  when there is no  feild seperator  and i have to paste complete file in text format.
    thanks
    Anika

    > it tried giving  like . header.feildSeperater    ""
    >                               ZJDU.feildseperater  ""
    >
    I could see spelling mistate in the above line.....  fieldSeparator
    if the above setting didn't work. did u try with the running scripts after the adapter has finished it's job.  You can replace the fieldSepartor with "" empty string.

  • 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.

  • 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

  • DB Adapter in OSB

    I have configured a JCA DB Adapter in OSB with a custom SQL query which is
    INSERT INTO "SYSTEM"."LOG_DETAIL" (LOG_ID, LOG_MESSAGE) VALUES (#logID, #logMessage)
    I created a business service (using WSDL of the DB Adapter). I am calling this business service from my proxy service using the 'Publish' activity. In the request action of the publish activity I have assigned $body values to logID, logMessage. But this is not working and the adapter errors out.
    I want to insert the data from $body to my table. Any suggestions?

    AFAIK, there is a defined structure of body for DB operations and for insert, it looks like below -
    <dat:TableNameCollection xmlns:dat="http://xmlns.oracle.com/pcbpel/adapter/db/top/DatabaseOutbound">
    <!--Zero or more repetitions:-->
    <dat:TableName>
    <dat:C1>value</dat:C1>
    <dat:C2>value</dat:C2>
    <dat:Cn>value</dat:Cn>
    </dat:TableName>
    </dat:TableNameCollection>
    You may like to use x-query to prepare this structure using inputs from the $body of incoming request, and then you need to replace the current $body content with the content prepared by X-query and then you may successfully call BS.
    Regards,
    Anuj

  • 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

  • Passing parameters dynamically to an FTP adapter

    Hi All
    We have a requirement to pass the FTP location to the FTP adapter dynamically based on a small check condition.
    We have used the following XML fragment to pass the ftp location from the assign statement instead of specifying it in the FTP adapter
    *<EndpointReference xmlns="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">*
    *<Address> FTP Address </Address>*
    *</EndpointReference>*
    In the "Assign" activity this is mapped to the respective partner link, which is the ftp adapter
    The "FTP address" gives the address to which the file has to be put into.
    Can this FTP address be provided to this "Assign" activity dynamically or is there any other method for the same?
    The solution must be such that further addition of conditions and mainly FTP locations must be easy.

    http://darwin-it.blogspot.com/2008/03/configuration-of-ftp-synchronous-get.html can help you. You can't change the jca:address="<ftp_conn_factory>" but you can change few parameters like host, port, username and password.
    If you just want to change the directory details or so, such feature has been introduced in 10.1.3.4. Please visit http://download.oracle.com/docs/cd/E12524_01/relnotes.1013/e12523/adapters.htm#BCFJAGIF, refer to section 11.4.2.1. You can define header variable for Adapter invocation in Invoke Activity. Hope this will help you.

Maybe you are looking for