Receive Timeout error



I have a MLLP Receive (request response) port accepting messages from
an outside interface. When the Receive timeout is set to the default
(60000), the other interface is getting log messages every 60 seconds
like the following:

>
> 05/13/2005 09:03:54
> [pdl :PDL :ERR /0:poseidon_out_s] read returned error 0 (No error)
> 05/13/2005 09:03:54
> [pdl :PDL :ERR /0:poseidon_out_s] PDL signaled exception: code 1,
msg device error (remote side probably shut down)
> Engine idle -- 05/13/2005 09:04:10
>

This is consistent with what BizTalk documentation states for the
Receive Timeout:

>
> On an MLLP receive port, the MLLP Transport Receive Timeout property
closes an inactive socket after a specific amount of time based on its
value. If no activity is detected on the socket during this time-out
value, the receive MLLP socket will close. This occurs to free up
resources and to free a BizTalk thread. The port continues to listen
for connections and will reopen the port when a new connection is
requested.
>

When I set the Receive timeout property to 0 (no timeout), messages
are not processed correctly and I get BAM Event Bus errors:

>
> Unhandled exception caught, exception details:
System.NullReferenceException: Object reference not set to an
instance of an object.
> at
Microsoft.Solutions.BTAHL7.MLLP.ReceiveSession.AsyncSender_SendCompleted(Object
sender, SendCompletionEventArgs status)
> at
Microsoft.Solutions.BTAHL7.MLLP.AsyncStreamSender.WriteCallback(Object
state, Boolean timeout).
>

I believe the BAM event bus event fails when trying to copy the
message over to the tracking database.

Is there a way to not have my Receive Port timeout when the property
is set to 0?

.



Relevant Pages