Skip to Content
avatar image
Former Member

SMQ1 QRFC issue

Hi All, There are few RFC that we called from one of the system for eg:

1 call RFC in update task --> Standard RFC

2 call RFC in update task --> Standard RFC

3 call RFC in update task-->standard RFC (there is a commit work here)

4 call RFC in update task -- > Custom RFC

this all are lined up in QRFC(SMQ1) in sequence and are executing the same in sequence upto 3rd RFC where commit works. Now the issue is , once it trigger Commit it is executing in sequence upto 3rd RFC but 4RFC is also executing before 3rd RFC. what could be the possible reason for this even though all are set in sequence ?? Also i want 4th RFC to get Execute only after the 1st three has completed.

Thanks.

Rakesh

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • Best Answer
    avatar image
    Former Member
    Aug 29, 2017 at 08:27 AM

    Solve by myself

    Add comment
    10|10000 characters needed characters exceeded

  • Aug 14, 2017 at 01:17 PM

    If you do a commit, the queue is complete and gets executed. From what you have explained, RFC4 will create a new LUW in a new queue, and if that runs faster it's well possible to complete before the other three. If you need to preserve the sequence they need to be in the same LUW.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Yaah mike ,

      But the problem here is RFC3 is called in a standard program/Class and it passes commit = 'X' inside the RFC. And if there is no commit in RFC3 then it wont create open item .which is required by RFC4.

      Also, if RFC4 is in queue before RFC3, then RFC4 will not execute and throw the error as RFC4 looks for the open item created by RFC 3.

      Thanks,

      Rakesh

  • Aug 15, 2017 at 07:52 PM

    OK, I have not explained all the possibilities here, it can get a bit lengthy. The most likely scenario is the first one I explained. In more detail:

    RFC1-3 go into LUW1, gets placed on queue. Commit. LUW gets processed by queue manager. RFC4 goes into LUW2. If there is any reason for delays beyond the queue (such as a V2 update or follow-on activities), then LUW2 can now overtake whatever process LUW1 is doing.

    Most important question: are you using the same queue name?

    Check the timing of your RFC calls. Try (for test purposes) to put a delay in your code before submitting RFC4. Are you sure the business transaction is really complete, not just from the RFC/LUW point of view?

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi Mike,

      yes i lined up the RFC4 with the same queue name and it show in sequence in SMQ1 as well.

      i did tried putting the wait statement before RFC4 call as commit trigger at RFC3. but output is not consistent.

      Thanks

      Rakesh

  • avatar image
    Former Member
    Aug 18, 2017 at 09:27 AM

    Hi All,

    Any input on the above requirement ???

    Thanks

    Rakesh

    Add comment
    10|10000 characters needed characters exceeded