BizTalk Gurus

Routing Binary Data

rated by 0 users
Answered (Verified) This post has 1 verified answer | 4 Replies | 2 Followers

Top 75 Contributor
23 Posts
sbrown63 posted on Wed, Dec 16 2009 8:57 AM

My understanding of the PassThruReceive and Send pipelines is that they don't examine the message data ... so picking up a .zip file (via FTP) and delivering it to a known location should be easy - A recieve location using PassThruReceive and a Send port to subscribe to the message set up using the PassThruTransmit pipeline. I am having difficulty in configuring the SEnd Port. The message appears to make it to the Message Box for routing, but I continue to get the "The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure. "

I have checked the context of the message and all appears in order. Are there any known issues with this that may not be obvious?

Answered (Verified) Verified Answer

Top 75 Contributor
23 Posts
Verified by sbrown63

The problem was very simple ... the string expression on the sendport should not contain quotes or double quotes.  Its a little bit differnet than filter expressions on receive shapes within orchetsrations (i.e. BTS.ReceivePortName == ' MyRecPort ' should be BTS.ReceivePortName ==  MyRecPort. Who woulda thot!  

All Replies

Top 10 Contributor
241 Posts
xman71 replied on Wed, Dec 16 2009 9:14 AM

Hi,

 

   In your Send Port, configure the Filters tab to select the property BTS.ReceivePortName and assign it the value of your Receive port, using the "==" operator. You are getting the error message because your send port is not subscribing to any message, so you want it to subscribe to your receive port in this case.

 

   Daniel.

 

"Google skills are more important than your coding skills."

Top 75 Contributor
23 Posts

Yes, I've tried this. I've also tried using the BTS.ReceivePortID as a filter. Nothing seems to work. I've also made sure that the Send Handler associated with the FTP Adapter Target File Name is set to %MessageID%.zip

I'm baffled.  

Top 10 Contributor
241 Posts
xman71 replied on Wed, Dec 16 2009 9:46 AM

Hi,

 

  This could be due to the fact that you are using a FTP adapter on your Receive port, as there are known issues associated with the FTP adapter in BizTalk. Here is a snippet of documentation on how to troubleshoot and configure FTP adapter properly, hopefully that will help you:

 

General Troubleshooting Questions and Answers

This section contains a set of questions and answers designed to help you resolve issues with the FTP adapter.

How do I enable logging?

You can enable and configure logging by using the Log folder option in the FTP Transport Properties dialog box when configuring a receive location or send port with the FTP transport type.

Depending upon your FTP server software, you may be able to configure logging for the FTP servers connected to by the BizTalk FTP adapter. Check the documentation for your server to assess your options.

Why does the FTP adapter duplicate or lose data?

If the FTP adapter retrieves a document from the FTP server that is still being written to by the host application, the retrieved document will be incomplete. If the FTP adapter retrieves an incomplete copy of the original document, data duplication or data loss may occur in the following scenarios:

    · If the original document is still being written to the FTP server by the host application, the FTP adapter cannot delete the document and will retrieve another copy of the document at the next polling interval that is configured for the receive location. This behavior causes document duplication to occur.

    · If the host application has finished writing the document to the FTP server, the document will be deleted. This behavior will cause data loss to occur.

To avoid this behavior, use one of the following methods:

    · Configure the host application to write to a temporary folder on the same hard disk as the public FTP folder and to periodically move the contents of the temporary folder to the FTP folder. The temporary folder should be on the same hard disk as the public FTP folder to make sure that the move operation is atomic. An atomic operation is an operation that is functionally indivisible. If you write data to the public FTP folder by using the BizTalk Server 2006 FTP adapter, you can do this by specifying a Temporary Folder property in the FTP Transport Properties dialog box when you configure a send port.

    · Configure the FTP receive location to operate within a service window when the host application is not writing data to the FTP server. You can specify the service window when you configure the receive location properties.

Common Errors

You receive a "Failure occurred in parsing the remote folder listing" error message when you try to retrieve documents from or send documents to an FTP server

Problem

When you try to retrieve documents from or send documents to an FTP server by using the Microsoft BizTalk Server 2006 FTP adapter, you receive an error message that is similar to the following:

A failure occurred in parsing the remote folder listing.

Cause

You may receive this error message if the following conditions are true:

    · The receive handler or the send handler for the BizTalk Server 2006 FTP adapter is configured to use a firewall mode of Passive.

    · The target FTP server does not permit passive connections.

Resolution

To resolve this behavior, use one of the following methods:

    · Configure the receive handler or the send handler, or both, for the BizTalk Server 2006 FTP adapter to use a firewall mode of Active.

    · Configure the target FTP server to permit passive connections.

The FTP adapter can be used to connect to FTP servers on systems ranging from Solaris and Linux to AS/400. For more information about connecting to legacy systems, see Configuring an FTP Adapter to Work with Legacy Hosts.

FTP receive adapter fails to publish message if receive pipeline processing time exceeds server time-out

Problem

A message received via the FTP adapter is not published to the MessageBox database. You may see errors similar to the following in the Application log for the BizTalk Server computer:

Event Type:Error

Event Source:BizTalk Server 2006

Event Category:BizTalk Server 2006

Event ID:5719

Date:6/30/2006

Time:12:08:55 PM

User:N/A

Computer:BIZTALKSERVER

Description:

There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.PassThruReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "Pipeline " Receive Port: "ReceivePort1" URI: "ftp://FTPSERVER:21/*.txt" Reason: Unable to receive the file "file.txt   " from the FTP server.

 

and

Event Type:Warning

Event Source:BizTalk Server 2006

Event Category:BizTalk Server 2006

Event ID:5740

Date:6/30/2006

Time:12:08:56 PM

User:N/A

Computer:BIZTALKSERVER

Description:

The adapter "FTP" raised an error message. Details "Unable to receive the file "file.txt   " from the FTP server. ".

Cause

The time taken to complete pipeline processing exceeds the FTP connection time-out.

Resolution

Use one of the following methods to mitigate this problem:

    · Increase the connection time-out value. Set the idle time-out value on the FTP server to be at least the amount of the time it takes to process the file.

    · Use the Temporary Folder feature on the receive location. In this case, the FTP adapter copies the file to the temporary folder (typically the local disk). It typically takes less time to copy the file to the local disk than to run the message through the pipeline and persist it to the MessageBox database, which effectively reduces the idle time.

"Google skills are more important than your coding skills."

Top 75 Contributor
23 Posts
Verified by sbrown63

The problem was very simple ... the string expression on the sendport should not contain quotes or double quotes.  Its a little bit differnet than filter expressions on receive shapes within orchetsrations (i.e. BTS.ReceivePortName == ' MyRecPort ' should be BTS.ReceivePortName ==  MyRecPort. Who woulda thot!  

Page 1 of 1 (5 items) | RSS