Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
HttpSys and CGIRunner
#1
Has anyone else experienced a strange and frustrating issue with HttpSys / CGIRunner?

The setup (on Windows Server 2008 R2) is, in simple terms, the following:

ServerA calls CGIRunnerA when requested to produce a client/user's report.
ServerB calls CGIRunnerB when requested to produce a client/user's report.

Different exes. Different folders. Both running as services on port 80 using HttpSys.

Both run happily for days depending on the load. Then suddenly they both stop calling the respective CGIRunner exe. As far as I can tell it isn't a memory or CPU issue. If I watch Task Manger, I seems the exe isn't called / loaded. Stopping / starting just one of the servers fixes the issue for both.

The issue is most notable when the ServerB / CGIRunnerB combination is "live". The reason being that, even though ServerB may only have 20+ users, the reports being produced can be very big. Initially it seemed like an issue with ServerB but then by chance just as I got a client email about it not producing a report, I got a notification email about the same issue on ServerA. Stop / start only ServerB, and ServerA also came right! It is consistent. Nothing else on the Servers stop functioning. They remain fully responsive, except for this one function!

And yes... I am creating and freeing the CGIRunner (similar to the demos). I have tried with LogCommand enabled - no errors. Can't reproduce on my test environment - even with four different browsers open, simultaneously producing big reports. So not sure where to go from here.


Any ideas?
Reply
#2
So, CGIRunnerA is on ServerA as I understand it. I also understand you as saying both quit at the same time.

Are you using the server IP address, or as localhost (explicit 127.0.0.1)?

By the way, don't confuse me with someone who knows the answer to your question! I'm just starting to use CGIRunner myself, but I was thinking localhost could keep some of the network gizmos out of the equation. Not the same as here but I have seen long standing TCP links get knocked around by routers in the past. These links definitely won't be long standing but my natural tendency is to knock things out of the path to make finding problems easier.

Dan
Reply
#3
Hi Dan

Sorry for not making myself clear! The Intraweb server and CGIRunner applications (A & B) are all on the same physical box.

More detail ... both Intrawweb servers handle project funding applications, but for different projects with different requirements. But their basic functions are similar ... applicants log in, input data to a number of forms and upload a number of pdfs to support their application. When the applicant clicks the Print/Preview button the CGIRunner is called (with parameters). It creates a series of report pages as pdfs plus gets the uploaded pdf documents and "stitches" them all together to produce the application document. It is saved to the user's cache folder and the CGIRunner terminates. The Intraweb server then displays the pdf. When it works it works great.

The final pdf documents being produced by A average about 30 pages. Those produced by B can be as big as 1,100 pages. So the issue shows up pretty quickly when B is live. The Print/Preview stops working on ServerB. And when it does the Print/Preview on ServerA also stops. If only ServerA is live then the issue takes much longer to eventuate. So my inclination is that it is some sort of "resource" issue. The difficulty is trying to figure out what that "resource" is, since when it is exhausted it affects both Intraweb servers ability to call their CGIRuner applications.
Reply
#4
I'd bet that the "resource" issue is caused by the report generation tool, whatever that tool is.

Most of them are known by not playing well in anything other than a desktop application with a single user and the whole system at its disposal...

What's the report tool you are using?

When the CGIRunner fails to execute, did you check the ErrorCode and ErrorMessage properties? If execution failed, they should contain system error message (Windows executes the CGI Module and when it fails, the OS knows why)
Reply
#5
IIRC it is the second issue you mention regarding one Http.sys application interfering with the other. Can you please share any details about the URLs you are using for each one of them? Feel free to e-mail me if you don't want to share this information publicly (alexandre at atozed dot com)

Cheers
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)