I am not aware of a solution that would allow you to continue execution immediately and still monitor the HTTP request for failure. Your best bet would be to make the HTTP request and wait for a reply before continuing execution. Once the HTTP request is completed, your CF script could check for a success string in the output of your FoxWeb script (e.g. "Script Execution Successful"). If it does not find this string, it can log the error and continue execution as necessary.
Sent by Jim Weesies on 08/01/2003 10:57:38 AM:
We have a Foxweb script that we wrote a few years ago to work with a script hosted on another web server outside of our company. The remote script would issue a form post to our script and then continue execution. Our script would receive the form vars, run some code, and then output a blank html page which the user never saw, since execution continued on the remote script.
Recently, the host web script was moved to a new vendor. The new vendor used Cold Fusion to write the script to perform the same process that the old hosting company used. The actual command in Cold Fusion to issue the form post is "<cfhttp>", and it passes the URL and a few properties (method=post, resolveurl=no, redirect=yes). The script then continues execution, which logs some info to a database and displays html to the user.
Since the switch from the old hosting company to the new company, we began to have cases where not every attempt to call our script was successful, but the execution of the host script did not stop, so the information was never transferred and we never know about it. I ran some tests with the host company where they sent me a log of all post attempts made to our server. Our script, running in Foxweb under Win NT, would write data to a table with the system date/time at the very beginning of the code and again at the very end of the code. I compared this data with the Windows NT server log (c:\winnt\system32\logfiles\w3svc1\ex(date).log for a particular date. The server log file matches what our script recorded in the table at both the beginning and ending of the script. This was different from the post attempts that were sent to us from the host company as we were missing about 30% of all post attempts.
If anybody out there has some experience with Cold Fusion, or another development language that can do a post like this and continue execution, is there anyway to ensure the post is successful? The developer on the other end claims this <cfhttp> would error out if so, and blames the problem on us. Last week, our server got into a rare situation where all channels were hung and no Foxweb scripts could be served, but his script attempted to call our script over 50 times and never errored out on his end.
Sorry for the long post. Any help would be greatly appreciated.