I am creating a Biztalk dynamic port WCF-WebHttp.
When I get a response back in the form of a HTTP 404, the port suspends the following error is shown
System.Net.WebException: There was no endpoint listening at https://test.xxx.com/xxxx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
{"type":"availability.not_found","message":"No availability was found for the properties requested."}
I have tried to add an exception handler to the BizTalk orchestration. It handles the error but I still see a suspended instance.
I wish to handle the 404 error and to stop the port from suspending.
In Transport Advance Options on your Send Port Properties, switch on Enable routing for failed messages.
Have something subscribing to the Error Report from that send port, e.g. we use a custom Null Adapter with the rule ErrorReport.SendPortName == NameOfSendPort
There's a few things you have to setup around this for it to work 'as expected'.
This article: BizTalk Server: Suspend and Resume an Orchestration on Two Way Port Error
...describes how to setup the Orchestration, the Port and handling the failure notifications.
Related
I am trying to handle exceptions that are resulting from a amq.rabbitmq.reply-to queue specificially things like: "org.springframework.amqp.AmqpRejectAndDontRequeueException: Reply received after timeout". How can I configure something so I can handle these exceptions? I have tried setting the setErrorHandler properity, but it appears to do nothing. If I get an error on my input queue the handler works, but not with the RPC response queue. Any ideas?
Thanks in advance,
Brian
As discussed in Spring AMQP RabbitMQ RPC - Handle response exceptions you need an explicit reply container to handle replies with more sophistication; you can wire an error handler into that container.
There is currently no support for adding an error handler to the built-in direct reply-to container.
Consider opening a new feature issue.
This would be a rather trivial enhancement.
Using NServiceBus 4.4.2.
When sending to a local recipient and before the Recipient got a chance to run (meaning queues are not there yet) I get a nice exception 'The destination queue "xyz" could not be found'. However, when sending to a recipient on another machine, and Remote recipient hasn't run yet (remote queues are not there yet), there is no exception thrown, no error anywhere on the sender and message is nowhere to be found.
Am I missing something?
The message is in the "Outgoing Queues"
MSMQ uses store-and-forward to reliably send messages to remote queues.
In this case because the remote queue is not available yet, the message will stay in the outgoing queue till either expires or the remote queue becomes available.
As I asked here, I have an orchestration that is started by a public port published as a web service. Everytime this service is called the orchestration starts
I need to start the orchestration every 30 minutes too.
I ended up using the Scheduled Task Adapter to call my own port. I created a scheduled receive port that creates messages every given time, and a send port that with a filter, receives messages from the port and send them to the web service port
Orchestation starts correctly, but there is an error:
System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.
After researching, I found out that Biztalk doesn't like one-way web services (even if this web-service was generated by "Biztalk Web Service Publishing Wizard")
I found solutions like a WCF-proxy, but I was wondering if I could just configure the orchestration webservice to be two-way (in the wizard you can force it) and then call it the way i'm doing now. I'm trying but still receiving similar errors
Anyone had a similar issue?
Thanks
Add a Listen shape to the start of your Orchestration, you can then have 2 (or more) parallel Activating Receive shapes.
Connect the secondary Receive shape to a new one-way logical port (Specify-later)
Once deployed, hook your Scheduled Task Adapter up to the one-way port, so it receives the regularly scheduled message.
As always with BizTalk, there is more than one way to de-fur a feline, but this was the first to come to mind.
I have a .NET assembly performing a transformation on a GeneralJournal import file in MS Dynamics AX 2012
Occaisionally I'm getting an error reported relating to a timeout (Looks like a WCF error)
I cannot see in the port setup where to configure any timeout settings.
Anyone know?
The request failed with the following error:
This request operation sent to net.tcp://SERVERNAME/DynamicsAx/Services/GeneralJournalPayroll
did not receive a reply within the configured timeout (00:05:00).
The time allotted to this operation may have been a portion of a longer timeout.
This may be because the service is still processing the operation or because the service
was unable to send a reply message. Please consider increasing the operation timeout
(by casting the channel/proxy to IContextChannel and setting the OperationTimeout property)
and ensure that the service is able to connect to the client.
To edit the WCF configuration of a port go to System administration > Setup > Services and Application Integration Framework > Inbound Ports.
Select your port - it has to be deactivated to be able to edit the configuration.
Then click Configure > go to Bindings > set timeout values.
We are trying to call a one way PeopleSoft service that does not return any response from BizTalk 2010 with WCF-BasicHttp binding and one-way send port.
We are getting the following error.
System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.
I have read several articles regarding this issue. This one says due to reliable delivery feature one way messages are not supported by BizTalk
social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/3a55a044-0a07-416c-9931-1dd6bdeb717a
This one says I need to create WCF proxy that will call a one way web service and return an empty message to BizTalk so the messaging process doesn’t timeout waiting for an answer. (I would like to avoid this if possible)
www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/
At the end of this thread Rajesh says they used SOAP adapter for the same problem. (SOAP Adapter is deprecated)
http://social.msdn.microsoft.com/Forums/en/biztalkgeneral/thread/3b58e83a-3b69-40a2-941c-ff2d9a77ccc6
In another thread Rajesh says
As Steef mentioned earlier, a strict one way WCF-Send port is not supported in BizTalk. So you could try changing one-way send port to two-way send port and then you can ignore the response message in your orchestration if you dont need it
I tried changing the one-way send port to two way send port. I'm still getting the same error.
So my question is:
Is it possible to call a service that does not return any response from BizTalk 2010 without writing additional WCF proxies? If yes, can you provide a step-by-step example?
Thanks for your patience with my long post.
Alper
In this situation I believe your going to have to write a proxy for it. BizTalk is all about request / response and one-way is not really one way as people have found out. Take a look at this article here as it sheds some light on a similar topic.