Webservice reliable delivery

Hi,

I’m having an issue with webservice delivery.

First here is my configuration :

  • a document type is created in TN with option to save document to database
  • a partner profile is created in TN with a webservice delivery method
  • a service triggerService routes a bizdoc to TN with call to wm.tn.route:routeBizDoc
  • the processing rule is triggered and calls an IS service deliverService
  • this deliverService calls wn.tn.delivery:deliver to execute the webservice delivery method that calls an external webservice ExtWS

Second here is the tests I’ve done and the results :

  • if I execute triggerService when ExtWS is running, everything works fine. A transaction is created in TN, and it contains a task
  • if I execute triggerService when ExtWS is not running, triggerService still terminates after routing the document. A transaction is created, it has status DONE. The task is created with status PENDING. When I start ExtWS again, the task finishes. The retries count of the task remains at 0
  • if I change my configuration so that the document type is not saved in database and executes triggerService with ExtWS running, ExtWS is called and triggerService terminates. No transaction is created in TN.
  • f I change my configuration so that the document type is not saved in database and executes triggerService with ExtWS not running, triggerService waits at the routeBizDoc step. When I start ExtWS again, triggerService continues. No transaction is created in TN

I’m new to TN and I have trouble understanding these results. Could someone explain to me ?

What I would like to see is when ExtWS is not running is :

  • triggerService waits at the routeBizDoc step, until it gets a response (either because ExtWS has been restarted, or because the retry count has reached the maximum defined in the delivery method)
  • a transaction is created in TN with a task with a number of retries.

Am I doing something wrong ?

Thanks for your help!