外部 Web サービスを呼び出す従来の ASP ページがあります。これが実際のプロセスの仕組みです。
'[Part0 : Call the external webservice]
wsResponse = setConfirmation(...)
' [PART1: external webservice is responding]
if not wsResponse is Nothing then
'....Process the response from the webservice according to wsResponse
code =wsResponse.getCode
if code = 'C' then
'We confirm the transaction and call a storedprocedure in SqlServer
else
'if code is different from C, we assume, the transaction status is 'not confirmed' or 'cancelled'
'[PART2: no answer from external webservice]
Else
'so wsReponse is nothing..We don't get any answer from the external webservice
'transaction is not confirmed
'the transaction status is set to 'not confirmed' in database
だから私がしたいのは、PART2 (外部 Web サービスから応答がない場合) で、30 秒待ってからデータベースで「未確認」ステータスを送信することです。したがって、もう一度 PART0 を実行したいと思います。つまり、外部 Web サービスを少なくとも 10 回呼び出して、応答するかどうかを確認します。一種の再帰的プロセス。だから私はこれを行う2つの方法を考えていました:
PART2でASPを30秒スリープさせて再度PART0へ(Webサービスを呼び出し)、それでも無反応ならDBに書き込み、トランザクション未確認、反応があればPART1を実行。
PART2では、PART0を10回以上呼び出し、10回試行しても応答が無ければDBに書き込み、取引未確定。
だから私の質問は次のとおりです。これを行うためのより良い方法はありますか、またはどちらか1つまたは2つがより良いでしょうか? また、1 については、dotnet や PHP のように ASP をスリープ状態にする方法を教えてください。
回答ありがとうございます。
よろしく