Topic
2 replies Latest Post - ‏2010-11-15T03:02:39Z by Maura.Ball
sidinsd
sidinsd
2 Posts
ACCEPTED ANSWER

Pinned topic Some development questions

‏2010-08-01T04:42:36Z |
I am a developer writing an application on an MVS system that uses PC routines to provide XCF services to my clients.

I am running into two very puzzling problems that I cannot solve and I would love to hear from someone who might possibly be able to help me.

The first has nothing to do with XCF, but with PC routines. I am using stacking PC routines that are non-space switching. I am loading them into common memory using the LOAD GLOBAL=YES macro. My puzzling problem is this, I know that PC routines cannot issue SVCs, so I am trying to code into my PC routines some WTOs that use LINKAGE=BRANCH,ROUTCDE=11, but these WTOs never get to my JESMSGLG or JESYSMSG datasets. I have a debugger that allows me to step through my PC routines and the really puzzling thing is that there is no bad return code from the WTO macro, the message just never appears. Anybody have any ideas for me as to why this would occur?

The second puzzling thing is with XCF. I am trying to test sending an XCF broadcast message to all members of my XCF group. Currently, all those members (there are only two) exist on the same machine, but that machine is running XCF in non-local mode, as if there were other LPARS or machines connected to it. I do an IXCMSGO macro specifying SENDTO=GROUP and MEMBERS=OTHER and again I get all zero return codes from the IXCMSGO macro, but the message exit routine that I have set up in the other group member never gets control. I also did an IXCMSGC macro after the IXCMSGO macro and it indicated to me that I had no COMPLETE or INCOMPLETE messages. This is all very puzzling and it would be very nice if someone with some insight into these issues could help me. Thank you very much.
Updated on 2010-11-15T03:02:39Z at 2010-11-15T03:02:39Z by Maura.Ball
  • sidinsd
    sidinsd
    2 Posts
    ACCEPTED ANSWER

    Re: Some development questions

    ‏2010-08-03T05:36:26Z  in response to sidinsd
    Well, I figured out these puzzling things on my own, Thank you very much.

    The message exit was actually getting control, but because the WTOs weren't working, I had no way of knowing that, as my debugger cannot debug SRB mode code.

    The reason the WTOs weren't working is kind of strange, but I have a workaround for it so I guess I don't mind that I really don't understand it. In the assembler listing of the expansion of the WTO MF=E macro it shows a load of register one with the WTO MF=L list area but no subsequent population of that list area. This causes problems in rentrant code because I am depending on the WTO macro to populate the list area for me. I solved this by just using the standard form of the WTO macro, which if you look in the assembler listing at the expansion of the macro, it turns out it is reentrant since it never writes anything into the parameter list. I can't understand why IBM would publish these macros with list and execute forms if the standard form is already reentrant, but they've done other things in the past that I didn't understand either, so I guess I'll just live with this. I hope it doesn't come to bite me on the backside in the future.
  • Maura.Ball
    Maura.Ball
    1 Post
    ACCEPTED ANSWER

    Re: Some development questions

    ‏2010-11-15T03:02:39Z  in response to sidinsd
    sidinsd wrote:
    Well, I figured out these puzzling things on my own, Thank you very much.

    The message exit was actually getting control, but because the WTOs weren't working, I had no way of knowing that, as my debugger cannot debug SRB mode code.

    The reason the WTOs weren't working is kind of strange, but I have a workaround for it so I guess I don't mind that I really don't understand it. In the assembler listing of the expansion of the WTO MF=E macro it shows a load of register one with the WTO MF=L list area but no subsequent population of that list area. This causes problems in rentrant code because I am depending on the WTO macro to populate the list area for me. I solved this by just using the standard form of the WTO macro, which if you look in the assembler listing at the expansion of the macro, it turns out it is reentrant since it never writes anything into the parameter list. I can't understand why IBM would publish these macros with list and execute forms if the standard form is already reentrant, but they've done other things in the past that I didn't understand either, so I guess I'll just live with this. I hope it doesn't come to bite me on the backside in the future.

    Thanks for your instruction! I understand this part, It's quite useful.