Forum Stats

  • 3,769,604 Users
  • 2,252,991 Discussions
  • 7,875,117 Comments

Discussions

SOA FTP Adapter - nothing happens !!

user9514124
user9514124 Member Posts: 148
edited Oct 6, 2008 7:08PM in SOA Suite Discusssions
I created a simple scenario to pick up XML files from a remote unix server, similar to the examples provided under bpel/samples. I created a new FTP connection factory and provided the ftp server info. A simple BPEL process which contains a ftp get partner link, which has logical directory names. I provided the real directory names in bpel.xml, polling frequency 1 min. Added an assign step that just plucks out a few value from the incoming xml. I am able to deploy the process, but when I place a file in the input directory, nothing happens. I cant seem to find any error in the opmn.logs or j2ee logs. Whats going on ? How can I troubleshoot this ?
Tagged:
«1

Answers

  • If you can deploy this is a good thing as it means that the BPEL process is able to see the remote server and directory. The issue now is to confirm that you are putting the file in the location it is expecting. If you are getting no messages in the log this would suggest that there are no files that conform to the selection criteria.

    Things to think about to troubleshoot.

    * Does the JNDI name specified in JDev design time match the JNDI name connection configured on the server

    * Is the directory in the same case on the server and the design time specification

    * In the JNDI name server configuration you specify a root directory. Make sure that the path specified in the design time is relative to this, e.g. if the root directory is / and the design time specification is /tmp then the location SOA will poll is /tmp, but if the root is /usr the polling location is /usr/tmp. This can become more confusing in some situations (depending on the unix profile) as SOA will start looking in the home directory of the profile (/home/oracle) and start from there.

    * Does the file you want to upload conform to your selection criteria, e.g. *.txt and is it in the right case.

    * Can you FTP from the location manually using the same account, e.g. do you have the right permissions.

    Can you increase the logging to see if any errors are happening, this might be the simplest way to diagnose.

    Cheers
    James
  • user9514124
    user9514124 Member Posts: 148
    can you elaborate how to increase and what facility to increase for getting the right log ?
  • user9514124
    user9514124 Member Posts: 148
    * Does the JNDI name specified in JDev design time match the JNDI name connection configured on the server
    <Reply> Yes the names match </Reply>


    * Is the directory in the same case on the server and the design time specification
    <Reply> Directory path and name matches. Case matches too </Reply>


    * In the JNDI name server configuration you specify a root directory. Make sure that the path specified in the design time is relative to this, e.g. if the root directory is / and the design time specification is /tmp then the location SOA will poll is /tmp, but if the root is /usr the polling location is /usr/tmp. This can become more confusing in some situations (depending on the unix profile) as SOA will start looking in the home directory of the profile (/home/oracle) and start from there.
    <Reply> I dont see any parameter in the ftp connection factory page for entering root directory. </Reply>

    * Does the file you want to upload conform to your selection criteria, e.g. *.txt and is it in the right case.
    <Reply> The file name confirms to the filter i mentioned. I even tried using *.xml just to be sure </Reply>

    * Can you FTP from the location manually using the same account, e.g. do you have the right permissions.
    <Reply> I can ftp from my windows fto client using the same credentials. </Reply>

    Can you increase the logging to see if any errors are happening, this might be the simplest way to diagnose.
    <Reply> What facility should i increase the logging ? </Reply>
  • Sorry, I was a bit vauge about the root parameter, the parameter for this is ftpAbsolutePathBegin.

    to increase logging

    BPEL

    * Login to the BPEL console.
    * If 10.1.3.x On the top Right there is something like BPEL Admin, select this and you will be prompted again (I'm on 10.1.3.4 so this is from memory but the basic is right). If 10.1.3.4 select configuration tab on the right
    * Select logging
    * Choose debug for the default.collaxa.cube.activation
    * now look at the domain.log when you post a file, this is found in the following location
    $SOA_HOME/bpel/domains/default/logs/domain.log

    ESB
    * Login to Enterprsise Manager
    * select oc4j_soa (Advanced install) or home (Basic install)
    * Select Administration tab
    * Select Logger Configuration link
    * search on esb there is no need to provide wildcards
    * Update the following to debug oracle.tip.esb.server.service


    Just thought of another way to try and debug this, is to create another process that writes a file to this location. This way we can double check the path is correct.

    cheers
    James
  • user9514124
    user9514124 Member Posts: 148
    edited Sep 24, 2008 1:53PM
    I increased all logs under BPEL Domain to "ALL", but it doesnt say much in the logs.

    In the oc4j-ra.xml, I dont see ftpAbsolutePathBegin as a parameter. I am providing the complete path from the root directory ex. /home/user/soa/inbound

    Here is the entries in the domain.log

    <2008-09-24 09:56:35,904> <INFO> <default.collaxa.cube.compiler> validating "...10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_CustomerOut_1.0_eded5c53492ee149ac2b4a1528647546.tmp/CustomerOut.bpel" ...
    <2008-09-24 09:56:37,609> <INFO> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>

    Process "CustomerOut" (revision "1.0") successfully compiled.
    <2008-09-24 09:56:37,662> <INFO> <default.collaxa.cube.engine.deployment> Process "CustomerOut" (revision "1.0") successfully loaded.
    <2008-09-24 09:57:37,824> <INFO> <default.collaxa.cube.compiler> validating "...10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_CustomerOut_1.0_eded5c53492ee149ac2b4a1528647546.tmp/CustomerOut.bpel" ...
    <2008-09-24 09:57:39,320> <INFO> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>

    Process "CustomerOut" (revision "1.0") successfully compiled.
    <2008-09-24 09:57:39,364> <INFO> <default.collaxa.cube.engine.deployment> Process "FDM8CustomerOut" (revision "1.0") successfully loaded.

    in the opmn.logs

    <2008-09-24 09:56:35,904> <INFO> <default.collaxa.cube.compiler> validating ".../10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_CustomerOut_1.0_eded5c53492ee149ac2b4a1528647546.tmp/FDM8CustomerOut.bpel" ...
    <2008-09-24 09:56:37,609> <INFO> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>

    Process "CustomerOut" (revision "1.0") successfully compiled.
    <2008-09-24 09:56:37,662> <INFO> <default.collaxa.cube.engine.deployment> Process "CustomerOut" (revision "1.0") successfully loaded.
    Sep 24, 2008 9:56:47 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: Recoverable exception caught when processing request
    08/09/24 09:56:49 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> PROCESS GUID = MD5{a4e40d14b389e6b854b58f1b5cd9d9ca}
    08/09/24 09:56:49 >>>>>>>>>>>>>>>>>>>>>>>>>>>> SUITCASE ID = CustomerOut_1.0_eded5c53492ee149ac2b4a1528647546
    <2008-09-24 09:57:37,824> <INFO> <default.collaxa.cube.compiler> validating ".../10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_CustomerOut_1.0_eded5c53492ee149ac2b4a1528647546.tmp/CustomerOut.bpel" ...
    <2008-09-24 09:57:39,320> <INFO> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>

    Process "CustomerOut" (revision "1.0") successfully compiled.
    <2008-09-24 09:57:39,364> <INFO> <default.collaxa.cube.engine.deployment> Process "CustomerOut" (revision "1.0") successfully loaded.
    Sep 24, 2008 9:57:49 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: Recoverable exception caught when processing request
    08/09/24 09:57:50 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> PROCESS GUID = MD5{9cb1d6fd401292544aada1b0fe9c5abc}
    08/09/24 09:57:50 >>>>>>>>>>>>>>>>>>>>>>>>>>>> SUITCASE ID = CustomerOut_1.0_eded5c53492ee149ac2b4a1528647546

    Edited by: user9514124 on Sep 24, 2008 10:52 AM
  • user9514124
    user9514124 Member Posts: 148
    i created a separate put process and it executes successfully but nothing gets written to the file system. but no errors or exceptions in the log. Is there any other log facility I can turn on ?
  • user9514124
    user9514124 Member Posts: 148
    here is my oc4j-ra.xml entry

    <connector-factory location="eis/Ftp/SYS80" connector-name="FtpAdapter">
    <config-property name="host" value="server1.company1.com"/>
    <config-property name="port" value="21"/>
    <config-property name="username" value="admin"/>
    <config-property name="password" value="wh1+Ley$"/>
    <config-property name="keepConnections" value="true"/>
    <config-property name="serverType" value="unix"/>
    <config-property name="serverLocaleLanguage" value=""/>
    <config-property name="serverLocaleCountry" value=""/>
    <config-property name="serverLocaleVariant" value=""/>
    <config-property name="serverEncoding" value=""/>
    <config-property name="useFtps" value="false"/>
    <config-property name="walletLocation" value=""/>
    <config-property name="walletPassword" value=""/>
    <config-property name="channelMask" value=""/>
    <config-property name="securePort" value=""/>
    <config-property name="keyStoreProviderName" value=""/>
    <config-property name="keystoreType" value=""/>
    <config-property name="keystoreAlgorithm" value=""/>
    <config-property name="enableCipherSuits" value=""/>
    <config-property name="proxyHost" value=""/>
    <config-property name="proxyPort" value=""/>
    <config-property name="proxyUsername" value=""/>
    <config-property name="proxyPassword" value=""/>
    <config-property name="proxyType" value=""/>
    <config-property name="proxyDefinitionFile" value=""/>
    <config-property name="useProxy" value="false"/>
    <config-property name="useSftp" value="false"/>
    <config-property name="authenticationType" value="password"/>
    <config-property name="preferredKeyExchangeAlgorithm" value=""/>
    <config-property name="preferredCompressionAlgorithm" value=""/>
    <config-property name="preferredDataIntegrityAlgorithm" value=""/>
    <config-property name="preferredPKIAlgorithm" value=""/>
    <config-property name="privateKeyFile" value=""/>
    <config-property name="preferredCipherSuite" value=""/>
    <config-property name="transportProvider" value="socket"/>
    <connection-pooling use="none">
    </connection-pooling>
    <security-config use="none">
    </security-config>
    <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
    </connector-factory>
  • Hmmm,

    Mystery although the test you performed was the result I was expecting. I believe the process is working as expected, I think it is just looking in a different location to what you expect. Have you done a search on the filename?

    When you test this manually are you testing from the BPEL server or from your local machine. You need to test via the BPEL server. When you login as the admin user what is the directroy you start in?

    For arguement askes assume it is /home/admin What happens if you go to the directory /home/admin/home/user/soa/inbound, does this directory exist and does the file exist that you tested in the write example?

    The paramater ftpAbsolutePathBegin is an option available in the em configuration. This is usually where I make the chnages, not directly in the oc4j-ra.xml file.

    The logs should produce more info than this. Have you turned debugging on all services, or just the activation agent? When you test the write example you should see the log say that it is writing.

    cheers
    James
  • user9514124
    user9514124 Member Posts: 148
    ok..some headway...

    got the put to work. dont know how.

    yes, my home landing is /home/admin, there is no /home under it. i tested from both my local xp desktop and from the soa server.

    I had turned on all the facilities to 'ALL' under bpela dmin before, but that didnt mean much, so i changed all to 'DEBUG' and that is spitting some log entries now.

    I dont see the ftpAbsolutePathBegins in my em configuration. my version is 10.1.3.1 does that make any difference ? also since the write is working correctly, i am assuming that the parameter is not important.

    no luck on the get process, the file just sits there and i dont see anything meaningful in the domain log for the get process.
  • Haven't seen 10.1.3.1 for a long time so I can't comment on the ftpAbsolutePathBegins parameter sorry.

    Just for interest sake what JDev are you using, if you are on 10.1.3.1 SOA Suite you must use 10.1.3.1 JDeveloper, not 10.1.3.3 or 10.1.3.4. Your JDev and SOA Suite should be in sync. This could be the issue.

    cheers
    James
This discussion has been closed.