Welcome to the SRP Forum! Please refer to the SRP Forum FAQ post if you have any questions regarding how the forum works.
eserver_SystemMonitor_1.err
I am getting a "Invalid request for input during phantom processing" in this file when starting a Service
(I have the eserver System Monitor set to start a procedure when the service starts. )
I guess my basic question is does anyone have an idea what this signifies?
This System Monitor procedure requires no input and runs 100% successfully from the SRP Editor.
(I have the eserver System Monitor set to start a procedure when the service starts. )
I guess my basic question is does anyone have an idea what this signifies?
This System Monitor procedure requires no input and runs 100% successfully from the SRP Editor.
Comments
Its in Local.
We are not appending the application name but it is passed through via the eserver config naturally I beleive.
The Eserver entry is ProcName,AppName,UserName,Password. I can try your suggestion.
I should take a step back though.
I actually have a Sub that is called from ProcName. This Sub doesnt need any input variables (it checks and assigns defaults if nothing is passed) and doesnt need to return anything. It works 100% fine when run on its own.
ProcName actually works and runs fine. One of the steps in ProcName is to call Sub. Like I noted, Sub runs OK via TCL. (For testing I have made sure calling Sub is the ONLY thing ProcName does for now. The rest of ProcName doesnt appear to be an issue...)
I put a 'process log' into Sub. Basically I output to an OS file a line entry before EVERY step so I cna see where it stopped working from the service. If I dont get an end marker I know the process didnt complete and I should be able to see where it stopped.
So Sub does stop from the service, seemingly in a couple of different places according to my line markers.
I noted the error above in the eserver log. Maybe I am trying to connect dots that are not there.
I figured if I attended to that I could figure why my Sub hangs from a Service.
Subroutine being called.
Is this just your own logging routine or are you using something built into OI?
This seems to me that your called subroutine is executing but it stops somewhere afterwards. Is this correct? Are you unable to pinpoint the line that that causes everything to stop working or are you saying it is inconsistent?
You might try creating an OEngine log and see what it records. Just put oengine.log into your OI folder before launching any engine processes. Nothing will happen to this file itself. Another log file will be created. When you are done then remove oengine.log so no new log files will be created for you or other users.
Well it a little inconsistent but it never gets past a certain point. Sometimes it doesnt seem to run at all. Sometimes it gets to Step3 or 4. Never past that....
I created an oengine.log but nothing seemed to happen? No other files created/updated (sorting by date) except the EServer-Monitor files I previously noted.
BTW, running the Service in Debug mode shows the 'Phantom' error I noted at the top, its not just in Eserver logs.
I noted some identifiable things but honestly nothing that stood out at me in my ignorance and fried brain!
I think the main line that is causing grief is a Delete_Index line, Delete_Index("MYTABLENAME", "", 1).
It seems when it is an active line I get the message noted at the top. I comment it out, the message stops.
While this might be the only blocker in my subroutine-from-a-service (like I said, my process log seems to stop at different spots), it does appear to be the cause of this message of "Invalid request for input "
I am surpsied because there is not much to go wrong there.
This subroutine also does things like attach & detach tables and even a delete_table without generating the same message, so that 'system level' stuff doesnt seem a problem.
Don't put too much stock in my next comment, but there might be a conflict between the messaging feature of Delete_Index and the OEngineServer. I'm rather certain Delete_Index uses a low-level message solution, like Send_Info() or Send_Dyn(). These will get picked up by the engine and possibly passed back to the OEngineServer. The reason I am bringing this up is because we have discovered that certain SSPs which were brought forward from AREV (thus they are meant for AREV32 but can also be used by OI) will send information to the engine, corrupting the HTTP response, and thus kill the API response that goes back to the browser.
MessageTxt = "Start Delete Index.." GoSub LogProcess Set_Status(False$) Delete_Index(TableToClear, "", 1) If Get_Status(status_code) Then Swap @VM with ": " in status_code MessageTxt = "Error deleting Index for Table " : TableToClear : ". " : status_code GoSub LogProcess HasErrors = True$ end MessageTxt = "Index removed." GoSub LogProcess
It hits the Start. Never hits the Error or Removed marker.
Messaging conflicts! It doesn't sound like I can do much about that.
That is at least a plasible explanation. I might have to go back to the drawing board :(
I bet there is some sort of GUI confirm msg which would explain your issue.
Update:
Looks like it is a progress message
Ooops, OK I see that Don was alluding to that, which would definitely crash/halt the execution.
I ran from test sub.
Yeah, my test table has 7 columns with BTREE. I was trying to wipe them all.
I can run all of this fine from a test sub. Having that test sub start via the SystemMonitor from a OEngine Service is where my problem lies....
I know it works, was just seeing there was msg flash up to prove the issue.
On the schedule for 2024.