cancel
Showing results for 
Search instead for 
Did you mean: 

Parallel Processing of messages in AIF using Runtime Configuration group

Former Member
0 Kudos

Hello All,

I am trying to group messages and do parallel processing of messages in AIF, by using Runtime Configuration group. But I am not sure what am I missing here or my understanding on this configuration is incorrect. It is not working as expected.

Scenario:

Say, I have 20 messages to be processed in AIF. I would like to collect these 20 messages in a run and execute it via 2 background jobs asynchronously. So I created a configuration like below.

20 messages in a single run, and 2 packages to create create 2 background jobs with 10 messages in each. But always I could see that the number of jobs created is equal to twice the number of messages. Say if 20 messages are to be processed, then 40 jobs are created ( 2 per message - 1 Run, 1 Package).

Could you please provide your thoughts on this.

Thank you in advance.

Regards,

Raja

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello All,

Implementation of below OSS notes solved the issue.

#2254516

#2215829

#2207854


Regards,

Raja

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Christoph,

I unchecked the „Runtime Cfg Active“-checkbox. Now messages are getting queued up in a run. But the problem is, run is not changing it status to 'Ready'(Table /AIF/PERS_RUN) even though the max. number of messages limit has reached.


Now, the number of messages in queue is 8 with status 'New' in table /AIF/PERS_QMSG.


My Runtime Configuration settings is as below. Since the limit 6 is crossed, I expected that run status will change to ready automatically.


Messages Per Package 2

Messages Per Run     6

Could you please help. Thanks.


Regards,

Raja

Former Member
0 Kudos

Hi Raja,

while transferring the message to AIF, have you provided the runtime configuration queue namespace and name? We use METHOD /aif/cl_enabler_xml=>transfer_to_aif and fill the parameters as follows:

CALL METHOD /aif/cl_enabler_xml=>transfer_to_aif
     EXPORTING
       i_any_structure       =   <inbound raw data structure>
       i_queue_ns            =   <namespace of AIF runtime configuration>

        i_queue_name          = <name of AIF runtime configuration>
       i_process_immediately = ' ' "Switch: 'X' start background processing instantly, ' ' queue for report start of background processing

David summarized this in

Best regards

Christoph

Former Member
0 Kudos

Hello Christoph,

Thanks for your inputs. I went through David's blog before implementing, but not sure what am I missing.

I am also using the same method as you suggested. But I see one difference in the code you shared, the parameter ' i_process_immediately' does not exists in this method.

*         Transfer the messages to AIF

           CALL METHOD /aif/cl_enabler_xml=>transfer_to_aif

             EXPORTING

               is_any_structure   = f_data

               iv_queue_ns         = 'NS'

               iv_queue_name    = 'RCE'.


I could see the same namespace and queue name getting stored in table /AIF/PERS_QMSG.


Am I missing something else here.

Regards,

Raja