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.

Comments

  • I'm not familiar with this so I'm throwing darts at the board here. Is your procedure in SYPROG or a local application? If a local application, are you specifying the name of the procedure by appending the application name to it, similar to how we have to identify a local MFS? (e.g., ProcName*AppName).
  • Thanks @DonBakke
    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.
  • What does "Sub" mean in your context? A Gosub label in your main procedure or a subroutine you call from your main procedure?
  • Ahh. Fair point. Not a mind reader ;-)
    Subroutine being called.
  • Thanks. You did say "called", but I wanted to be certain before commenting further.
    I put a 'process log' into Sub.

    Is this just your own logging routine or are you using something built into OI?
    So Sub does stop from the service, seemingly in a couple of different places according to my line markers.

    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.
  • My own simple logging routine. I set a message to identify every step and then I GoSub to write out the message to OS file.

    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.
  • @Opto_Will - My bad and my apologies. The file should be oeprofile.log.
  • now THAT creates a file. A rather big file!!.....
  • Yes, it can get rather big so the trick is to close your session ASAP.
  • Ok, that was a lot of info to parse through.
    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.


  • Are you checking for system errors after calling SSPs like Delete_Index? For that matter, are you clearing system errors before calling SSPs?

    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.
  • I am indeed checking. My full code for that step is:

    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 :(
  • edited November 2023
    >>Delete_Index(TableToClear, "", 1)

    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.
  • So why would I not see that if I just run a delete_index from TCL? Is that being supressed in a way the OEngine doesn't?
  • edited November 2023
    Did the table have a btree index. No msg if no index.

    I ran from test sub.
  • @BarryStevens

    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 can run all of this fine from a test sub.

    I know it works, was just seeing there was msg flash up to prove the issue.
  • Have you done any sort of test in OI10 to see if maybe they have improved by checking if run in event context before doing any GUI stuff.
  • No. We aren't OI10ing yet :(

    On the schedule for 2024.
Sign In or Register to comment.