I have found on occasion that the restart functionality on a Object doesn't always really help. Occasionally I noticed that sequence in Stopping an object, then immediately Starting the object back up doesn't give the system significant time to fully drop the connection of the Object restarting. I have seen this with EnsLib.JavaGateway.Service and HL7 TCP operations as well. Looking at the code for EnsLib.JavaGateway.Service and the Heartbeat Failure functionality the Stop of the Java Gateway Service is not synchronis as it does not wait till the tSC is returned before it tries to Start the service back up. When this happens we get a "Failure to restart". With TCP connections, there needs to be some kind of verification that the Disconnect was sent across the port before trying to restart, or else you have to have the end point system restart their side as it never received the full disconnect before IRIS immediately brought the connection back up.
While there are ways around this by writing your own functions to put a sleep/pause in-between when the EnableConfigItem is ran to disable and enable, it still would be nice if we didn't have to do it.
}
Thank you for submitting the idea. The status has been changed to "Future consideration".
Stay tuned!
Scott, I am forwarding a clarifying question from product managers:
"Question: Have you only noticed this with TCP connections or also with other connectivity options?"
Please answer this question to help your idea's promotion. Thank you in advance.
Hi Scott!
Thank you for posting your idea on the InterSystems Ideas portal.
If you submitted this idea for the 2nd Idea-A-Thon contest could you please add a clear explanation of why the idea fits the contest topic "Run solutions fast, safe, and green with InterSystems IRIS"?
If this idea is not for the contest, sorry to bother you, and thanks again for your idea.
Heartbeat Failure Action.jpg - I have highlighted where the Object is stopped but then immediately started without checking the tSC before the start command is ran.
StopStartFunction.jpg shows how we put a HANG statementment between the Disable of the EnableConfigItem and the Enable of the EnableConfigItem.