Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Intraweb ISAPI Monitoring ??
#1
Howdy!

My IW app is deployed as an ISAPI.dll and for some unknown reason, it quits responding after a lot of activity (not sure why).

Has any one implemented a way of monitoring the module to see if it is still running? And if not, how to restart it in ISAPI?

I guess I could write a service that does a rest call to the IW app every 15 to 30 seconds to see if it responds.

If I can't figure out how to restart it, I guess I could text message or e-mail an administrator.

Any how, open to ideas.

Happy New Year!

Shane
Reply
#2
We run very large applications under ISAPI. Our network guys are using an Azure tool to monitor them to make sure that they are up and responding.

We setup our IIS apppool to recycle at 3 am everyday.

As far as lockups go, do you have the IWRtlFix in your project uses clause? (I think it is still needed but may no longer be needed in the later versions.) Without iwrtlfix under a heavy load it would lockup.

Hopefully that helps.
Reply
#3
Howdy Joel,

First thanks for answering.

I am using C++ Builder so I will have to check on if I link in IWRTFix.obj.

I wish I could have gotten my users over the years to host on AWS / AZure, but they all run my ISAPI dll on their own server (and they are old servers ~2014).

The best solution probably would be for me to have compile to 64 bit but C++ Builder didn't have decent WIN64 compilers until 10.4.x and my application is based on 10.2.3 and I just found out it is being supported for one more season....

I guess I will need to write a pinging service.

All the best,

Shane

Howdy Joel,

First thanks for answering.

I am using C++ Builder so I will have to check on if I link in IWRTFix.obj.

I wish I could have gotten my users over the years to host on AWS / AZure, but they all run my ISAPI dll on their own server (and they are old servers ~2014).

The best solution probably would be for me to have compile to 64 bit but C++ Builder didn't have decent WIN64 compilers until 10.4.x and my application is based on 10.2.3 and I just found out it is being supported for one more season....

I guess I will need to write a pinging service.

All the best,

Shane
Reply
#4
(01-06-2022, 04:36 AM)ShaneStump Wrote: I guess I will need to write a pinging service.

I think that's a good idea on any app.   I have a fairly simple one as a web service (custom handler), responds with basic info but you can get it to send you whatever you want (memory, users, etc).   I'd suggest some encryption and access security (don't respond to random users).

Dan
Reply
#5
As Joel mentioned, IWRtlFix is *really* necessary and if you don't have it included in your project, I strongly suggest that you do so. It fixes some issues in RTL which may cause application to hang or even crash.

Other than that, we are building a new module (internally named IWServerManager) which will allow IntraWeb applications to be monitored externally (with real-time notifications via e-mail, Telegram, etc.). I will still take a few weeks to have it 100% ready, though.
Reply
#6
(01-10-2022, 04:08 AM)Alexandre Machado Wrote: As Joel mentioned, IWRtlFix is *really* necessary and if you don't have it included in your project, I strongly suggest that you do so. It fixes some issues in RTL which may cause application to hang or even crash.

Other than that, we are building a new module (internally named IWServerManager) which will allow IntraWeb applications to be monitored externally (with real-time notifications via e-mail, Telegram, etc.). I will still take a few weeks to have it 100% ready, though.

I had included the UWRtlFix.hpp, but I can't see if it included any linkage so I just added the #pragma link "IWRtlFix" to my main module.

Looking forward to the IWServerManager class....

All the best,

Shane
Reply
#7
(01-10-2022, 04:08 AM)Alexandre Machado Wrote: As Joel mentioned, IWRtlFix is *really* necessary and if you don't have it included in your project, I strongly suggest that you do so. It fixes some issues in RTL which may cause application to hang or even crash.

Other than that, we are building a new module (internally named IWServerManager) which will allow IntraWeb applications to be monitored externally (with real-time notifications via e-mail, Telegram, etc.). I will still take a few weeks to have it 100% ready, though.

Alexandre,

This is going to be TWO components, right? One running on the server and one that will be compiled into a client app?

All the best,

Shane
Reply
#8
Hi Shane,

Yes, you are basically right, although they are not deployed as components.
One is going to be a service application which monitors one or more IW applications on the same machine. This application is able to query the status of the IW app and notify endpoints using different channels.
Reply
#9
(01-12-2022, 12:55 AM)Alexandre Machado Wrote: Hi Shane,

Yes, you are basically right, although they are not deployed as components.
One is going to be a service application which monitors one or more IW applications on the same machine. This application is able to query the status of the IW app and notify endpoints using different channels.

This is basically what I do, but it's also a logging server.   I set up to send a log stream via tcp, either on the same machine or another, which unloads the app from writing the log.   Later I added pieces to query/trigger status and event info from custom content service.  It can monitor several apps.   A status panel for each app shows various health, usage and connection info.

My implementation is pretty ugly internally since it was built piecewise as I needed something (vs an actual design).

The concept works well so what you are discussing should be very useful.

Dan
Reply
#10
(01-12-2022, 08:30 AM)DanBarclay Wrote:
(01-12-2022, 12:55 AM)Alexandre Machado Wrote: Hi Shane,

Yes, you are basically right, although they are not deployed as components.
One is going to be a service application which monitors one or more IW applications on the same machine. This application is able to query the status of the IW app and notify endpoints using different channels.

This is basically what I do, but it's also a logging server.   I set up to send a log stream via tcp, either on the same machine or another, which unloads the app from writing the log.   Later I added pieces to query/trigger status and event info from custom content service.  It can monitor several apps.   A status panel for each app shows various health, usage and connection info.

My implementation is pretty ugly internally since it was built piecewise as I needed something (vs an actual design).

The concept works well so what you are discussing should be very useful.

Dan

I think I found a beta tester  Big Grin
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)