Welcome to the SRP Forum! Please refer to the SRP Forum FAQ post if you have any questions regarding how the forum works.

OEngine - REVCMD_LISTENER

I am going to ask a question I have wanted to ask for a while but didnt want to look silly.
Now, I am going to ask anyway.

How do I do a deep dive into some core OI procedures? Until now I have just considered them a 'Black Box'.

The reason I am asking is I am trying to start a procedure via eserver.cfg. I have done this successfully many times without issue in our various 'Opto' systems. We are trying to do this in one of our 'iTMS' systems (still OI 9.4.x at the end of the day).

However, we are getting the following error.


At first I thought it was failing on trying to open a table in our procedure but that procedure now does nothing more than a straight return.

So, since REVCMD_LISTENER is what is setup as PROCEDURE_1 in eserver.cfg, I am wanting to try and trace through to try and identify what it is complaining about.

Any tips on how to do this would be appreciated.




Comments

  • I will further add I just tested this setup locally on a different 'iTMS' system and it worked OK.
    The only (that I *think* is relevant) differnce between the two is the remote OI is 9.4.2. Local is 9.4.6.

  • I'm inclined to just advise you to upgrade to OI 9.4.6. If the problem is rooted in OI 9.4.2, then I doubt you'll be able to resolve the matter without upgrading or perhaps updating the relevant entities in OI 9.4.2 from OI 9.4.6 (such as moving over $REVCMD_LISTENER). However, if you are itching to do a little detective work then I'm the last person to stand in your way. I live for this kind of action.

    Because we only have the compiled versions of most system stored procedures, we can't debug them directly. However, you do have a couple of tools in your arsenal that can help.

    First, you can create a hook as described in this article. This will allow you to monitor calls in and out of your target routine, the main benefit is being able to see the values of arguments going into the procedure and the values of the arguments as they come back.

    Second, you can create a profile log as described in the comments to this article. This will create a rather lengthy and cryptic log of all engine activity. You'll have to sift through a lot of unrelated calls looking for your needle in a haystack. However, you should be able to search for REVCMD_LISTENER first and then look beyond to see what it calls. You won't get arguments but you'll see the dependencies and hopefully figure out where the error occurs. You can the repeat this with your 9.4.6 local system and do a comparison to see where the point of departure exists.

    Happy hunting!
  • Thanks @DonBakke!

    Looks like I have some reading to do!

    Sounds like I will do both. OI 9.4.6 to try and fix the site problem as it is a reasonable next step.

    I might also use this example to try out these new tools. Even if it doesn't help, having them in the toolbox I suspect will prove useful in the future.

    I think you mentioned hooking and profiling to me a while back but I honestly was a bit lost. I am glad I finally asked the question.
  • Unfortunately, upgrading to 9.4.6 did not alleviate my issue for this instance.

    Looks Like I need to put on my best Sherlock Holmes cap.
    The hunt is afoot!

Sign In or Register to comment.