Question

Handling FME Service call failure


Hi,

I have published a workbench to FME server(2016) as job submitter service.This service will be called from an oracle table trigger (using utl_http.write_text(req, message)) and then the FME webservice will call the workbench(2016) in which i am sending a message to another webservice using HTTPCaller transformer's Post method.

Now the question is:

1.How to handle in case my FME call from the oracle trigger was failed for any reason like the FME server down or something else?

2.How to handle if the HTTPCaller to the webservice from the workbench is failed for some reason?

Is there a proper way to handle this issues? Any help would be much appreciated.

Thanks,

Mari...


3 replies

Userlevel 4

For question 1 you will have to look into exception handling in your PL/SQL code, I think.

Regarding the HTTPCaller, there are two strategies to detect problems:

  1. You should intercept the <Rejected> port. Features output here usually means that the URL was invalid or that the server did not reply within the timout delay.
  2. For the Output port, you should check the value of the _http_status_code attribute. A number in the 2xx range signals a success in most cases, but check the documentation for your specific webservice.

If you detect an issue you could e.g. fire of a notification using the FMEServerNotifier and then configure a suitable subscription service to handle the notification.

For question 1 you will have to look into exception handling in your PL/SQL code, I think.

Regarding the HTTPCaller, there are two strategies to detect problems:

  1. You should intercept the <Rejected> port. Features output here usually means that the URL was invalid or that the server did not reply within the timout delay.
  2. For the Output port, you should check the value of the _http_status_code attribute. A number in the 2xx range signals a success in most cases, but check the documentation for your specific webservice.

If you detect an issue you could e.g. fire of a notification using the FMEServerNotifier and then configure a suitable subscription service to handle the notification.

Hi David,

 

Thanks for your response.I am literally trying to figure out a way to resend the messages which are failed due to a failure occurred for any reason.

 

Is there a way i could send the messages through message queue within FME? Doing so,the messages will be queued up and they would be processed from the queue when the called webservice would be available.If so what is the best Message Queue i could use?

 

Thanks,

 

Mari...

 

Userlevel 4

There are several ways of sending messages to FME Server using the built-in notification mechanism, it all depends on your infrastructure and your requirements. For example it is possible to use Amazon SNS to pass messages from your own application to FME Server.

Here's an overview of the different subscription protocols available in FME Server today (2017.0):

http://docs.safe.com/fme/html/FME_Server_Documentation/Content/ReferenceManual/Subscribers.htm

Reply