Outbound FTP Dropping
Hi Folks,
We're experiencing an issue in Azure that has only appeared in the past month. We have a number of reasonably sized FTP uploads that previously completed without error and now fail. I've enabled Remote Desktop on one of our VMs and installed Filezilla to
do a little bit of testing and have found...
Transfer < 60s does not fail
Transfer > 60s fails consistently
From what I can tell Azure seems to be dropping the control connection. I understood that this was the case with inbound connections to the load balancer, but this behaviour now seems to be replicated for outbound connections too. This was not the case a
month ago! Any insight as to what or why this is no longer working would be greatly appreciated.
Under the hood we're using FtpWebRequest and have little influence over the control connection it uses (so we can't, for example, send keep alive or NOOP requests over it). This'll also play havoc with any connection pooling that might be going on under
the hood. It should be noted that outside of Azure we can transfer the files just fine.
Thanks in advance for any advice.
Dean
Hi Ming,
We've had to re-deploy the service numerous times in order to develop a bugfix that works in the Azure environment and we can repeatedly reproduce this issue. In addition this was working reliably for 6 months without any code changes at all - it's only
broken in the past month. I can't be more exact because we only noticed the issue 2 weeks ago and the previous upload was 2 weeks before that.
Our server-side code effectively does this:
Uri uri = new Uri("ftp://server/uploads/test.pdf");
FtpWebRequest webRequest = (FtpWebRequest)WebRequest.Create(uri);
webRequest.ConnectionGroupName = uri.DnsSafeHost;
webRequest.KeepAlive = true;
webRequest.Method = WebRequestMethods.Ftp.UploadFile;
webRequest.Credentials = new NetworkCredential("username", "password");
using (Stream destinationStream = webRequest.GetRequestStream())
sourceStream.CopyTo(destinationStream, 0x100000);
using (webRequest.GetResponse())
The code throws a WebException after the end brace for the request stream using block but only after hanging waiting for the control connection to time out (usually 60 seconds). The WebException simply states that the connection was closed. When this occurs
the file has been successfully uploaded. Right now our workaround is to re-establish a connection and check the file size - if it is what we expect we assume the upload succeeded. Flaky code at best!
I can reproduce this using Filezilla repeatedly by performing the following steps:
1) Generate a file that takes < 60 secs to upload to the destination server. We use...
fsutil file createnew D:\Test.pdf <size in bytes>
Obviously the size will vary depending on the bandwidth you have out to the destination server.
2) Upload the file. Filezilla will not timeout.
Repeat this with a file that takes just over 60 secs and Filezilla hangs and then asks to overwrite the file again - it never got confirmation that the upload completed because the control connection dropped. In Filezilla this can be mitigated by
sending keep alive messages (NOOP) over the control connection. Sadly this isn't easily doable using FtpWebRequest...
Thanks & Regards,
Dean
Similar Messages
-
ESB: inbound file and outbound ftp adapter with multiple directories
Basically I want to scan directories and write new files ftp directories. I could figure out how to do that for one directory. However I need to scan multiple directories and ftp upload files contained in those directories to corresponding ftp directories. Number of directories and their names are only known at run time. All directories are under one parent directory, both locally and the remote ftp site. We can assume all ftp directories exist.
I could not figure out how to this. Is this possible at all? Directory names seem to be only specified at design time, for both inbound file adapters and outbound ftp adapters.
PranabChris, I am not really sure this is the right place to ask this question. But hopefully you might have something in your armour to help me out.
My requirement is to configure an inbound File/FTP adapter to read from a Directory which can be known only at runtime. A webservice call returns the file name and network path of the file to be read, but that happens only during the run time. I guess one way possible is, you configure a File/FTP Adapter with a logical name for directory and set the physical directory path using the endpoint property. But in that case, I should know the Physical directory @ deployment time.
I would like to know whether it is possible to manipulate the Endpoint property of an ESB Service (SOAP Service/Routing Service/Adapter Service) during runtime.
So is there any way to get the enpoint property configured during runtime??? Otherwise dO you recommend some other solution for this use case???
Any help would be appreciated.
-Sudheer -
Outbound FTP adapter directory dynamic path
Hi,
I tried creating FTP adapter with logical directory names.
When I create inbound FTP adapter (get activity) and provide logical directory path, it creates activation agent and on deployment it works fine. However when I try to create FTP adapter for outbound FTP adapter (put activity) and provide logical directory path, it could not create activation agent for the same….When I add activation agent manually, I am able to compile the service locally on J Developer, but could not deploy the service into SOA Instance.
Please update me, if anybody has made outbound FTP adapter directory dynamic path.
Best Regards,
Dhaval KhamarDipal's note is correct for setting the output directroy dynamically, but I just want to clarify the steps you are taking.
You say that you create the activation agent manually for the put FTP adatper. This is not required, the activation agent is used to poll locations to invoke a process. The put activity is invoked from the BPEL process and not required.
If you are using logical directorys you partner link should look like this in the bpel.xml
<partnerLinkBinding name="writeFile">
<property name="wsdlLocation">writeFile.wsdl</property>
<property name="OutboundDir">/app01/oracle/outbound</property>
<property name="retryInterval">60</property>
</partnerLinkBinding>
The nasty thing about BPEL is that if you edit this manually and you make chnages BPEL will over write this. To avoid this create a property in the partner link. Right-Click the partner link select property tab, enter the logical directory name, e.g. OutboundDir and provide a value.
If you want to chnage this location dynamically during runtime follow Dipal's note.
cheers
James -
How to get outbound ftp adapter file name
All,
I am writing an ftp adapter sending out files. The file name is defined as po_%yyyyMMDD%.xml format. However, I need to save the filename into a database after each file is sent out. How could I get the filename after invoking this service? It is on soa 10.1.3.3.
I tried to create a filename variable based on outbound message type and pass that long in the invoke header. But cannot get the name back. Any idea?Hi,
Go thro' the URL:
http://abhishek-soablog.blogspot.com
Cheers,
Abhi... -
Specifying the filename for outbound FTP transport in OSB
I want an OSB based service that will send via FTP a file with a specific name to a remote ftp location.
It appears OSB can't do this because the FTP transport on a business service only allows you to specify the prefix and suffix and then generates a big long file name for the midlle parts.
Does someone know how to override this and specify the name that you want teh remote file name to be called?mdsrobbins wrote:
Your response was helpful but being new to OSB I'm still not quite there because I want to pass a "variable" to the file name. Now given I want to ftp a CSV file I've specified a proxy messaging service in an MFL format behind a jms queue. The business service underlying this is the ftp service again using the MFL format. This all works but in the message flow I for the proxy I can't seem to get access to a user defined property which contains the filename which I could then pull out and stuff into the "filename" header as suggested above.
Doe anyone have any ideas how I can get access to a filename property from a JMS message?From what i understand
JMSQ--- JMS PRoxy (MFL)----Pipeline ----->BS (MFL/FTP)---FTP server
So you would like to set the filename that is contained the JMS message custom headers?. While creating your JMS Proxy you have to follow these steps
1) While creating JMS Proxy in Transport Configuration page select Get All Headers =Yes
2) If file name is set as user defined property in JMS message then use $Header in you pipeline/message flow. This variable will hold your user defined properties. If the user defined property is part of JMS message then use $body.
thanks
Manoj -
Yes, it is linked to DW - I can't upload any files from DW
(or any other FTP
program).
Background: Server 2003 Standard, running IIS 6.0.
I've set up a website, and copied a few test files to it over
the LAN;
everything works fine, and if I access the server via it's
internet address
it all still works (tested by a colleague in the US).
I want to set up FTP so I can upload files remotely using
Dreamweaver.
The files are setup as follows;
FTP Sites
--> Test Site
Properties:
IP Address: (All Unassigned)
TCP Port: 2101
Anonymous connections is Unchecked
Home Directory is located on this computer, at 'E:\test'
Permissions Read, Write and Log Visits are all checked.
Directory Security: all computers will be granted access.
When I look at the Permissions tab, the user (testadmin) is
shown as having
Full Control. This user is also a member of the computers
Administrators
group.
When I FTP using Dreamweaver, I just get the error message
'index.htm - an
error occurred - cannot put index.htm. Access Denied. The
file may not
exist, or there could be a permission problem.'
If I FTP from the command line, it shows the correct banner
text for this
ftp , then when I enter the password it gives me the error
'530: user
testadmin cannot log in, home directory inaccessible. Login
failed'
I can *get* files through FTP, I just can't put them. :-/
I'm stuck now. I don't know if I'm an inch away from a
solution, or several
miles away and travelling in the wrong direction. All I want
to do is upload
my files to the server...
Regards,
Pete.
Peter Connolly
http://www.acutecomputing.co.uk
UK"PeteC" <[email protected]> wrote in
message
news:[email protected]...
> I've set up a website, and copied a few test files to it
over the LAN;
> everything works fine, and if I access the server via
it's internet
> address
> it all still works (tested by a colleague in the US).
>
> I want to set up FTP so I can upload files remotely
using Dreamweaver.
just a suggestions, you might want to restrict access to the
FTP site except
when coming from specific IP addresses.
>
> The files are setup as follows;
>
> FTP Sites
> --> Test Site
>
> Properties:
> IP Address: (All Unassigned)
no, you should have this set to only the IP address of the
site. This would
be using the internal IP you've set the website to - i.e., if
your external
domain name maps out to 255.123.456.789, this is not what you
would enter
in. There has to be an internal IP, it could be something
like 172.16.13.1
or 192.168.1.5 - it should be in the drop down list in IIS.
This is
definitely mandatory if you're hosting more than one site on
that box.
> TCP Port: 2101
> Anonymous connections is Unchecked
> Home Directory is located on this computer, at 'E:\test'
> Permissions Read, Write and Log Visits are all checked.
> Directory Security: all computers will be granted
access.
no - do not allow all computers. You really should lock this
down to
specific IP addresses. If your site is in a DMZ, find out
what IP you
connect via (you should be able to look that up in Event
Viewer - look for
when you logged in and it should give you the IP) and add
that to the list.
If you connect from home, hopefully you've got a fixed IP
address you can
use in here. If it's set to "all access" you're gonna have
people trying to
break in all the time.
> When I FTP using Dreamweaver, I just get the error
message 'index.htm - an
> error occurred - cannot put index.htm. Access Denied.
The file may not
> exist, or there could be a permission problem.'
Is your company using an ISA server? If so, check to make
sure that outbound
FTP access is not set to read-only. If it's your company's
policy to make
all FTP read-only, you're gonna have to get them to create an
exception rule
in the ISA server for you.
Also make sure that your FTP host line in DW lists the
*internal* IP address
of the site followed by the port number you're using (since
it's a
nonstandard port).. i.e., like this: 172.16.1.1:2101
> If I FTP from the command line, it shows the correct
banner text for this
> ftp , then when I enter the password it gives me the
error '530: user
> testadmin cannot log in, home directory inaccessible.
Login failed'
>
> I can *get* files through FTP, I just can't put them.
sounds like what i've mentioned above - a Proxy or ISA server
rule is making
outbound FTP read-only. -
Cisco CSS not NATing FTP 'data' connection
I have a CSS11501 that load balances traffic to 4 FTP servers.
2 of the 4 servers also initiate outbound FTP connections (Active mode) to other servers on the internet.
(When I talk about these 2 servers initiating a FTP session from behind a CSS I will refer them as 'client' to avoid confusion.)
Inbound FTP traffic to all the servers work fine. The outbound Active mode FTP traffic from the 2 client is failing (passive FTP works).
I have defined both the 'content rules' and 'groups' (source groups) for these connections.
But what I see on the PIX is this:
PIX515-active %PIX-4-406002: FTP port command different address: 10.1.1.15(10.1.1.16) to xx.xx.xx.70 on interface inside
I believe this dropped packet on the PIX is the acknowledgement 'ACK' packet from the client(sitting behind the CSS) to the connection attempt from the server (on the internet) for the 'data' connection. And basically the CSS is not translating the source address of the client from 10.1.1.16 -->10.1.1.15(VIP) for this acknowledgement 'ACK' packet.
Here is the relevant config:
For inbound FTP:
service ftp1
ip address 10.x.x.10
active
service ftp2
ip address 10.x.x.11
active
content ftp
application ftp-control
add service ftp1
add service ftp2
vip address 10.x.x.21
active
group ftp
add service ftp1
add service ftp2
vip address 10.x.x.21
active
For FTP servers that initiate FTP traffic and receive FTP request as well (i.e. inbound/outbound FTP)
service fftp1
ip address 10.x.x.16
active
service fftp01
ip address 10.x.x.17
active
content Fftp1 --> this does not have VIP but I tried adding a VIP same as the source group but to no avail.
application ftp-control
add service fftp1
protocol tcp
port 2021
add service fftp01
active
group fget
vip address 10.x.x.15
add service fftp1
add service fftp01
active
Inbound FTP works fine without any issues. Even outbound FTP (passive mode) works fine.
However active mode FTP fails and I see this error on the PIX:
PIX515-active %PIX-4-406002: FTP port command different address: 10.1.1.15(10.1.1.16) to xx.xx.xx.70 on interface inside
What am I missing here to get active mode connections to work with the CSS so that machines sitting behind the CSS can initiate active mode FTP connections? Do I need a content rule for the "data" connection as well???For active FTP to work, the CSS need to inspect the FTP control connection and nat the PORT command.
The CSS is told to do ftp inspection when you configure the 'application ftp' command.
But for connections initiated by the servers, the traffic does not hit any rule and no inspection is to be done.
Therefore the CSS will only nat the ip header.
You could try to configure an ftp content rule with no vip address - to catch all ftp traffic and use a service pointing to your default gateway in transparent mode.
Then configure 'application ftp' to force ftp inspection.
It may work.
Haven't tested so.
Gilles. -
Unable to retrieve inbound EDI X12 transactions from VAN using FTPS connect
When out B2B process is polling we do not seeing any attempts to connect to the ftp site. We have no problems putting EDI outbound transactions to the VAN with the same connection, but never see an attempt to get transactions. We enabled the transport trace logging, but are not seeing any connection information in this log file nor in the b2b.log file. Why would we be able to put files to the VAN but not pick up files with the same connection information?
If you enable the transport trace in tip.properties, you will see a log similar to the following:
TransportProperties.TransportProperties():http.receiver.instance_name=IP;PROTOCOL_ENDPOINT=null;file.receiver.password=******;file.receiver.wallet_location=C:\temp/ewallet.p12;file.receiver.user=ekhor;file.receiver.polling_interval=60;polling_interval=60;file.receiver.channel_mask=None;smtp.receiver.protocol=imap;file.sender.channel_mask=None;http.receiver.registry_port=5110;
TransportProperties.TransportProperties():http.receiver.registry_port=5110;port=1688;smtp.receiver.protocol=imap;PROTOCOL_ENDPOINT=null;http.receiver.instance_name=IP;
FileReceiver.init() started ....
FileReceiver.init() completed.
[IPT_HttpRecRegisterBegin] HTTPReceiver.init(): Registering HTTP Receiver ...
RMIResponsePort = null
Host name is 'dlsun1317'.
low port = 5110
high port = 5110
Host dlsun1317 FTP command: USER ekhor
FTP Command: USER, reply:
331 Password required for ekhor.
Host dlsun1317 FTP command: PASS
FTP Command: PASS, reply:
230 User ekhor logged in.
Host dlsun1317 FTP command: PASV
FTP Command: PASV, reply:
227 Entering Passive Mode (144,25,141,108,194,80)
Passive: ip = 144.25.141.108, port = 49744
Connecting to dlsun1317.us.oracle.com:49744
Host dlsun1317 FTP command: NLST //private/ekhor/Acme_endpoint
FTP Command: NLST, reply:
150 ASCII data connection for /bin/ls (144.25.142.57,3110) (0 bytes).
Disconnecting from dlsun1317
Host dlsun1317 disconnected.
Started Receiver at rmi port 5110.
[IPT_HttpRecRegisterCompleted] HTTPReceiver.init(): Completed registering HTTP Receiver.
FileSourceMonitor.prepareShutdown()
FileSourceMonitor.prepareShutdown() - done
The following flag needs to set in tip.properties:
oracle.tip.adapter.b2b.transportTrace=/tmp/transport.log
If you also want to display the password in transport.log (masked by ****** above)
you need to also set
oracle.tip.adapter.b2b.passwordTrace = true
It is possible to have the outbound FTP/S working while the inbound FTP/S is not. The reason is due to different configuration of delivery channels. In the outbound case, B2B uses the remote trading partner delivery channel information to login and to drop the file whereas B2B uses the host delivery channel information to login and to poll whether there are any files in the FTP/S server.
Please verify again that your host delivery channel and tip.properties settings are correct.
Thanks,
Eng -
Files with .a extension using ftp transport
Hi.
Am using ftp adapter in osb to read .txt files(e.g. abcd.txt) from ftp location, process the body/text() in OSB and then place the incoming file to an outbound folder.
the flow is like ftp-> Proxy Service->Business Service->outbound ftp
the service works fine where then is less load or the no. of incoming files is less.
However,sometimes the outbound folder contains the files with .a extension at the end.(e.g. abcd.txt.a)
Can someone tell me the rootcause of these .a file creation and the scenarios in which the .a files are created.
Also,please tell me what are these .a files meant for?
How,can I eliminate this while configuring the services using ftp transport.
Thanks in adavanceI had this recently with a variety of FTP servers, FileZilla, Microsoft etc.
For me, it happened when the file already exists in the destination and I was expecting the destination file to be overwritten. My application would generate the same filename, say FileA.txt and expect that to be overwritten, but with OSB 10gR3 I would get files with .a stuck on the end.
This functionality changed between ALSB and OSB and I had a patch developed to restore the ALSB functionality.
I spent ages looking at it, and debugging FTP commands and going from memory, I'm pretty certain that the FTP adapter doesn't implement the correct FTP spec for the RNFR command according to the RFC in the case where a file already exists - it doesn't handle overwrite.
Hope that may help.
Pete -
I am using Oracle AS 10.1.3.1 on windows. My FTP server is also on Windows. But during invoke of outbound FTP adapter i am getting following error
I am able to do FTP from AS machine to FTP server (Window) through command prompt and it is working fine.
Error message
<bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>550</code>
</part><part name="summary"><summary>file:/D:/product/10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_ProfileProcesTest_1.3_42d6d84ceee8de6430d37dfbfaa14936.tmp/FTP_To_OUT.wsdl Put_ptt::Put(Root-Element) - WSIF JCA Execute of operation 'Put' failed due to: Error sending file to FTP Server.
Unable to send file to server.
; nested exception is:
ORABPEL-11429
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.
</summary>
</part><part name="detail"><detail>550 /FTPFolders/CUST_081210184025.txt: The system cannot find the path specified. </detail>
</part></bindingFault>
Defination of FTP Adapter is
<definitions
name="FTP_To_OUT"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/FTP_To_OUT/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/ftp/FTP_To_OUT/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
xmlns:imp1="http://TargetNamespace.com/Read"
xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/ftp/"
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/" location="ftpAdapterOutboundHeader.wsdl"/>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" >
<import namespace="http://TargetNamespace.com/Read" schemaLocation="CUST_2007330181610_1.xsd" />
</schema>
</types>
<message name="Root-Element_msg">
<part name="Root-Element" element="imp1:Root-Element"/>
</message>
<portType name="Put_ptt">
<operation name="Put">
<input message="tns:Root-Element_msg"/>
</operation>
</portType>
<binding name="Put_binding" type="tns:Put_ptt">
<jca:binding />
<operation name="Put">
<jca:operation
FileType="binary"
PhysicalDirectory="FTPFolders"
InteractionSpec="oracle.tip.adapter.ftp.outbound.FTPInteractionSpec"
FileNamingConvention="CUST_%yyMMddHHmmss%.txt"
NumberMessages="1"
OpaqueSchema="false" >
</jca:operation>
<input>
<jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
</input>
</operation>
</binding>
<service name="FTP_To_OUT">
<port name="Put_pt" binding="tns:Put_binding">
<jca:address location="eis/Ftp/FtpAdapter" />
</port>
</service>
<plt:partnerLinkType name="Put_plt" >
<plt:role name="Put_role" >
<plt:portType name="tns:Put_ptt" />
</plt:role>
</plt:partnerLinkType>
</definitions>
Defination of OC4j-ra.xml is
<?xml version="1.0"?>
<oc4j-connector-factories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.oracle.com/technology/oracleas/schema/oc4j-connector-factories-10_0.xsd" schema-major-version="10" schema-minor-version="0" >
<imported-shared-libraries>
<import-shared-library name="oracle.bpel.common"/>
<import-shared-library name="oracle.xml"/>
</imported-shared-libraries>
<connector-factory location="eis/Ftp/FtpAdapter" connector-name="Ftp Adapter">
<config-property name="host" value="10.zzz.yy.xxx"/>
<config-property name="port" value="21"/>
<config-property name="username" value="xxx"/>
<config-property name="password" value="yyy"/>
<config-property name="keepConnections" value="true"/>
<config-property name="serverType" value="win"/>
<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="C:\wallet\ewallet.p12"/>
<config-property name="walletPassword" value="welcome1"/>
<config-property name="channelMask" value="both"/>
<config-property name="securePort" value="990"/>
<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="diffie-hellman-group1-sha1"/>
<config-property name="preferredCompressionAlgorithm" value="none"/>
<config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
<config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
<config-property name="privateKeyFile" value=""/>
<config-property name="preferredCipherSuite" value="blowfish-cbc"/>
<config-property name="transportProvider" value="socket"/>
<connection-pooling use="none">
</connection-pooling>
<security-config use="none">
</security-config>
</connector-factory>
</oc4j-connector-factories
Edited by: user6408601 on Dec 10, 2008 6:03 AMProbably the Windows FTP server chokes on the path "/FTPFolders/CUST_081210184025.txt" as it uses Unix separators. You may need to use "\FTPFolders\CUST_081210184025.txt". I can't see the properties in the XML you have given, but when you configure the FTP adapter in the application server console there should be one field for the separator and one for the root folder. Both should be "\" rather than "/" on Windows. The default is "/".
Good luck! -
FTP Adapter Sync Read in SOA Suite cluster giving issues
Hello All ,
I am trying to use a FTP Adapter in sync read mode in bpel in clustered environment.
FTP Adapter has to sync read a file from a remote unix server. And during this the error that comes is file not found.
ORABPEL-11007
No Data to process.
File /o31364629.pdf to be processed was not found or not available or has no content
Whereas FILE IS THERE IN THE DIRECTORY.
This issue is coming intermittent . I do have some successful BPEL instances coming up.
But majorly its failing.
Now turnign the logs in DEBUG mode said its trying to create some temp file which is unable.
Caused by: ORABPEL-11440
Error in writing temp file after getting content.
Error in writing temp file after getting content for file: o31364629.pdf
Please ensure 1. the local filesystem has write permission 2. local file system is not full.
Please see below full log.
<2009-12-16 10:47:30,970> <INFO> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTPInteraction Created
<2009-12-16 10:47:30,971> <DEBUG> <LiebertServices.collaxa.cube.ws> <AdapterFramework::Outbound> file:/apps/erikap1/aerikap1/erikap1_SoaSuite/bpel/domains/LiebertServices/tmp/.bpel_Test_FTP_1.0_c904a18cefb4038ec3b754d37b34d2d1.tmp/New_FTP_adap.wsdl [ SynchRead_ptt::SynchRead(Empty,opaque) ] - Starting JCA LocalTransaction
<2009-12-16 10:47:30,971> <DEBUG> <LiebertServices.collaxa.cube.ws> <AdapterFramework::Outbound> file:/apps/erikap1/aerikap1/erikap1_SoaSuite/bpel/domains/LiebertServices/tmp/.bpel_Test_FTP_1.0_c904a18cefb4038ec3b754d37b34d2d1.tmp/New_FTP_adap.wsdl [ SynchRead_ptt::SynchRead(Empty,opaque) ] - Invoking JCA Outbound Interaction
<2009-12-16 10:47:30,971> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP outbound adapter interaction invoked : oracle.tip.adapter.ftp.outbound.FTPReadInteractionSpec@17b7cfb
<2009-12-16 10:47:30,971> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FileInteraction::PROPS ====>{}
<2009-12-16 10:47:30,972> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> Considering header for filename, output filename from header: o31364629.pdf
<2009-12-16 10:47:30,972> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> Not Considering header for directory as it is blank
<2009-12-16 10:47:30,972> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP Agent Determined
<2009-12-16 10:47:30,972> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTPSource::Local Temp Directory is /ftpdata/elshap1/reach/fileftp/temp_ftp/localhost_LiebertServices_Test_FTP~1.0_/outbound
<2009-12-16 10:47:30,972> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP Host: dianadb.emrsn.com
<2009-12-16 10:47:30,972> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP Post: 21
<2009-12-16 10:47:30,973> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP Username: elsha_p
<2009-12-16 10:47:30,973> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP Keep Connections: true
<2009-12-16 10:47:30,973> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> FTP outbound adapter read file interaction invoked.
<2009-12-16 10:47:30,973> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> Outbound File Adapter received request to read file with parameters: { Directory=, FileName=o31364629.pdf, DeleteFile=false}, headers=[_directory=[], _filename=[o31364629.pdf], _props=[{}]]
<2009-12-16 10:47:30,974> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> Creating Temp File iwCmE1Jr7hUYMdXRISl0OA== Local Path: /ftpdata/elshap1/reach/fileftp/temp_ftp/localhost_LiebertServices_Test_FTP~1.0_/outbound Remote Dir:
<2009-12-16 10:47:30,976> <DEBUG> <LiebertServices.collaxa.cube.ws> <File Adapter::Outbound> Calling getContentsAsStream() on FTPAgent: dianadb.emrsn.com: type = FTP, host = dianadb.emrsn.com:21, username = elsha_p
directory = null, mode = STREAM, fileType = ASCII, maxRetries = 0 Localfile: o31364629.pdf Path: /ftpdata/elshap1/reach/fileftp/temp_ftp/localhost_LiebertServices_Test_FTP~1.0_/outbound/iwCmE1Jr7hUYMdXRISl0OA== Remote Dir:_
<2009-12-16 10:47:30,982> <ERROR> <LiebertServices.collaxa.cube.ws> <AdapterFramework::Outbound> file:/apps/erikap1/aerikap1/erikap1_SoaSuite/bpel/domains/LiebertServices/tmp/.bpel_Test_FTP_1.0_c904a18cefb4038ec3b754d37b34d2d1.tmp/New_FTP_adap.wsdl [ SynchRead_ptt::SynchRead(Empty,opaque) ] - Could not invoke operation 'SynchRead' against the 'FTP Adapter' due to:
ORABPEL-11007
No Data to process.
File /o31364629.pdf to be processed was not found or not available or has no content
Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
at oracle.tip.adapter.file.outbound.FileReader.readFile(FileReader.java:253)
at oracle.tip.adapter.file.outbound.FileReader.executeFileRead(FileReader.java:168)
at oracle.tip.adapter.file.outbound.FileInteraction.executeFileRead(FileInteraction.java:248)
at oracle.tip.adapter.ftp.outbound.FTPInteraction.execute(FTPInteraction.java:172)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:486)
at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:479)
at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:528)
at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:285)
at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:829)
at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:412)
at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3714)
at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1657)
at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:317)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5787)
at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1089)
at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:589)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:421)
at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
at com.evermind.server.ThreadState.runAs(ThreadState.java:693)
at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: ORABPEL-11440
Error in writing temp file after getting content.
Error in writing temp file after getting content for file: o31364629.pdf
Please ensure 1. the local filesystem has write permission 2. local file system is not full.
at oracle.tip.adapter.ftp.inbound.FTPSource.getContents(FTPSource.java:883)
at oracle.tip.adapter.ftp.inbound.FTPSource.getFileFromSource(FTPSource.java:799)
at oracle.tip.adapter.file.outbound.FileReader.readFile(FileReader.java:250)
... 43 more
I am using the setting for file adapter to avoid race condition in HA environment.
Set oracle.tip.adapter.file.controldirpath=/ftpdata/elshap1/reach in pc.properties file
This is shared folder accesible from both nodes & is given 777 full permission till the folder outbound where the temp fiel is getting created.
Please let me know if you have any idea on this.
This is a severe prodcution issue for us.
thanks in advance.
--ShivaniJust want to highlight the below portion in the log listed.
Caused by: ORABPEL-11440
Error in writing temp file after getting content.
Error in writing temp file after getting content for file: o31364629.pdf
Please ensure 1. the local filesystem has write permission 2. local file system is not full.
at oracle.tip.adapter.ftp.inbound.FTPSource.getContents(FTPSource.java:883)
at oracle.tip.adapter.ftp.inbound.FTPSource.getFileFromSource(FTPSource.java:799)
at oracle.tip.adapter.file.outbound.FileReader.readFile(FileReader.java:250)
... 43 more
Thanks Shivani -
Can I dynamically select the FTP account and destination?
I have a situation where, dependent, on a field in the contents of a CSV file I need to FTP it to a certain location.
Now there are over 40 cases and I'd rather not set up 40 outbound FTP services, each with their own account but would rather have just one and dynamically set the account information from a configuration available from within the pipeline (i.e. via some user defined properties).
Is there a way of doing this?
regardsI've made some progress on this. The XQuery function:
fn-bea:lookupBasicCredentials
can be used to get service account information at run time so now all I need is to be able to override some header values so that the FTP transport uses them instead but also need a means to change the FTP URL.
Surely someone has come across this problem before and solved it? -
Hi,
I am using a ftp adapter to transfer files. I am placing a 9kb file but after the transfer at the destination I find the file transferred but the file size is 2.8kb. Please do suggest me the possible solution and the reason for this issue
ThanksWhat 10g version do you have?
Try adding the following property to your outbound ftp wsdl file:
<partnerLinkBinding name="xxxxx">
*<property name="control.read.timeout">10000</property>*
</partnerLinkBinding>
(it's in milliseconds)
Arik -
FTP Issues - AirPort Extreme 802.11 AC
Starting a few weeks ago, I have not been able to connect to any of my outbound FTP servers from any device on my AirPort network. I have verified with my ISP, Comcast that they are not blocking port 21 now. I can access these servers perfectly fine on any other network. The Extreme has software version 7.7.1, my cable modem is the Motorola SB6141 and I am using FileZilla on Windows 8. Help would be greatly appreciated.
Your experience tells you Apple have no idea what they are doing.
1. They have not released an update to windows for ages.. even with Win8 now out for more than a year.
2. Apple do not use FTP.. FTP is not a supported protocol on the TC or AE.. therefore it is out of sight and out of mind. It is also not a secure protocol so to some extent they are justified.
3. They provide one method of remote access which is propriety.. which requires you to sign into the Apple world. And use iCloud and BTMM ensuring you remain in the Apple camp.
I've spent 400 on Apple AirPorts over time and feel like Apple should fix this issue, considering how even the cheapest routers support FTP and it is a well used protocol.
I am sure they will fix it.. when is the problem.. since it is not a protocol Apple needs or uses.. they don't mind and you don't mattter.
Buy a alternative router.. bridge the AE and it can do all your wireless and become a shiny white switch with the ports orientated the wrong way.. at least until the next firmware comes out and you can give that one a try. -
Ftp/xml: @ character at the end
I receive a file from an AS/400 machine. The process is as follows: AS/400 generates an xml file. It ftps the file to a folder location. Biztalk uses the file adapter to pick this up.
The weird thing that's happening is that the AS/400 generates a proper xml file. But when the AS/400 ftps this file to a Windows, it appends a bunch of @ characters at the end. Does somebody have an explanation? Additionally, can I workaround with this in
Biztalk?Never seen a case when files from AS/400 had ‘@’ in it. Even you have secured ftp (FTP-S), the chances for some character to be appended at the
end is less. I have seen BOM (Byter Order Marks) which appear at the beginning of the file content as opposed to end of the file content. Just to remove the probability of this problem due
to “secured” part of ftp, drop (or ask the hosting team) the file manually at the ftp folder and see what comes to BizTalk. Just remove AS/400 from the picture and drop the file manually to see whether is it due to the end
system (AS/400) to due to any process in the transportation (network infrastructure) add this extra character at the end of the file.
If it’s the problem due to the source system (AS/400) or infrastructure, try to resolve the problem at their end, if not only solution is to use the custom receive pipeline component to remove the any additional characters from
the file.
If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.
Maybe you are looking for
-
Move Time Capsule and Laptop to New Network
I have been searching the forums it haven't found a clear answer to this question. I have been backing up my laptop using Time Machine and Time Capsule on one wireless network (TC has joined the wireless network, it does not serve as the router for
-
Lucida Grande Font Not Displaying in DW correctly
Hi all, I am having problems with specifying "Lucida Grande" font in DW CS6 (Mac). This only happens in CS6 not CS4. Wonder if anyone else has similar problems? Below is how it appears in Dreamweaver CS6 Page displays perfectly in CS4. I have taken o
-
Lightroom 4 would not import images from my camera
I have been importing and editing photos from a Canon Powershot S3-IS and never had a problem until today. This is the first time I've tried it with the latest upgrade to lightroom. I first tried importing from my camera memory card slot. Lightroom f
-
Portal Stylesheet in RenderListForm-based content
Hi, I have just created an XML forms editor project, where for example I have, In the Edit form, an HTML editor control In the RenderListForm and ShowForm, labels that would display whatever is entered into the HTML Editor in the Edit Form At t
-
Crashes during the save process
Okay, so now that we've determined that I DO have the PrE 8.0.1 update/patch- I need to figure out why I am unable to save the video I've spent days working on. As I stated in the last discussion concerning the update, I am in possession of a fairly