Rocket jBASE

 View Only
  • 1.  Issue with the same couple subroutines breaking for some unknown reason

    Posted 04-07-2023 09:28
    Edited by Greg Motter 04-07-2023 09:32

    I'm seeing something strange and I'm not sure what to check next. We have 2 subroutines that work fine (both are called hundreds of times a day), but then on a certain date, both start throwing this message. The error looks like this:

    I've changed the sub names and parameter names.

    Unable to perform CALL to subroutine SUBROUTINE.ONE , Line    81 , Source CALLING.PROGRAM
    Press C to continue or Q to quit                                                
    Trap from an error message, error message name = SUBROUTINE_CALL_FAIL           
    Source changed to /data/app/path1/path2/program_dir/CALLING.PROGRAM
    0081 CALL SUBROUTINE.ONE(PARAM1,PARAM2,FILE1,FILE2,PARAM1,FILE3,FILE4,PARAM2)  

    This happened first back on 10/20/22. To fix I simply recompiled the subroutine, in this case SUBROUTINE.ONE and it worked fine until this week and it happened again.

    What is odd is another sub started throwing the same error on the same day and recompiling fixed that one also. That one also broke again at the same time again this week.

    What is also weird is they actually broke twice this week, once Monday, and then again Thursday. In both cases compiling fixed them for now.

    Jbase version is 5.6.6.

    So what should I check? What types of events could cause this? 



    ------------------------------
    Greg Motter
    Rocket Forum Shared Account
    ------------------------------



  • 2.  RE: Issue with the same couple subroutines breaking for some unknown reason

    ROCKETEER
    Posted 04-11-2023 06:56

    Greg,
    It is likely that the index for your shared object library has become corrupt.

    You can use "jshow -c SUBROUTINE.ONE" to find out in which shared object the subroutine resides.

    You can then use "jshow -a " plus the absolute address of the shared object library to see a list of the subroutines it contains.

    When the SUBROUTINE_CALL_FAIL error occurs, the two above results may not match, thus the error.

    In such cases, it may be necessary to delete and rebuild the shared libraries at a convenient point-in-time.

    For reasons such as this, and the need for users to "compile on-the-fly", jBASE 5.8 introduced Single Objects:

    Single Object Build (rocketsoftware.com)

    As you might be running on AIX, this feature should be available in the upcoming jBASE 5.9/6.1 releases.

    Mike



    ------------------------------
    Mike Street
    Technical Support Engineer
    Rocket Internal - All Brands
    ------------------------------