cancel
Showing results for 
Search instead for 
Did you mean: 

Issue during Multiple calls of BLS within milliseconds via runner URL from PI

Former Member
0 Kudos

Hi,

I am working on SAP MII 12.1.5 build99.

Facing issue when PI system will trigger multiple BLS transaction (PT1) calls within milliseconds through runner URL.

Background:

Transaction     Description                                                                                          Approx. Execution Time

PT1                    Parent Transaction (write payload from PI to MII queue)          200-500ms

CT1                    Child transaction (Decide something),                                        100-300 ms

SCT1                 Sub Child transaction (Insert Records in DB)                             200-xxxx ms depends on no of  records

PT1 having one child Transaction CT1 and again CT1 is having child transaction SCT1.

below are issues and observations.

  1. Few calls of PT1 will not happen.
  2. PT1 is called but CT1 and SCT1 is not called
  3. all transaction called but SCT1 is in running mode for long times.

Query: when PI trigger transaction multiple times via runner URL from PI is it create multiple threads or process synchronously or terminate call if it is already running.

Assumption: multiple threads

since we are having lot of interfaces in production server, so we can not upgrade MII version.

Please provide your suggestions and resolutions, any help is highly appreciated.

Thanks & Regards

Manoj Bilthare

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I appologize if my answers are a little vauge, I switched jobs 3 weeks ago and no longer work with MII. So I am working from memory and I have no test system I can check settings or build test transactions.

I didn't realize you did you did that many transactions all at once. We did a lot of sub transaction calls where 1 transaction would spawn 10 - 20 child transactions. In your case the transactions could be stepping on themselves.

Check a couple things; number of transactions allowed in a pool, and the number of JDBC connections allowed in a pool. Not sure where these settings are look through the configuration settings.

If the SCT1 transaction executes and there is no threads left for a connection to the database you might get this effect where it will error out and not write anything to the database. Try putting a check after the database action on the DatabaseAction.success property and output the DatabaseAction.lastErrorMessage property to a different database or a log file.

Also at the PT1 if there is no threads left for executing CT1s they might get tossed aside. Again check CT1.success property and log CT1.lastErrorMessage somewhere you can access and read.

Answers (3)

Answers (3)

former_member185280
Active Contributor
0 Kudos

If you have gone thru all the SAP notes for MII and Netweaver and haven't found anything related then in addition to checking the connection pools like Jasper suggested I would look into tuning the server, starting with the ICM.

http://help.sap.com/saphelp_nw04s/helpdata/en/0a/a7903febb15a7be10000000a11405a/content.htm

http://help.sap.com/saphelp_nw04s/helpdata/en/56/2e453cabf4ef6fe10000000a114084/content.htm

If you are just queuing up the payloads and don't have a requirement to synchronously pass any data back to PI I would try switching over the the Message Listener interface. That interface provides much better visibility into what is happening/failing + more control over resource consumption.

Tuning Netweaver can be a bit of an art and risky so if possible get an experienced resource to help out or do a lot of research before tweaking configuration settings.

Former Member
0 Kudos

Thanks Jasper and Christian,

I will check these settings and update you if any luck.

Thanks again!!

Regards,

Manoj Bilthare

Former Member
0 Kudos

In my experience when a transaction is called many many times, and I called the same transactions many many times, I never got any transactions stepping on themselves. In the very begininng I saw that the local variable properties were populated with values from previously ran transactions so I made a note of clearing them at the begining.

Typically I found if a transaction was taking a long time it was my fault, I put in an endless loop or something like that. Check your logic and make sure ct1 is supposed to execute from pt1 in those cases. For sct1 when it's taking a long time, get your dba to see if there is a problem with your insert statement. Database triggers could cause the insert statement to hang. Also check sct1 for endless loops or any logic that might make it take a long time.

Former Member
0 Kudos

Thank you vary much Jasper for your reply.

For your information:

We are using Reset State = true to ensure vaiabe values reset on each new call.

logic looks fine because above scenario happen sometimes not everytime.

child transaction execution will depends on no of records in XML.

Let me provide more details.

  • Suppose PI triggered 200 messages to MII Transaction through Runner URL than sometimes we recieve all 200 messages but sometimes we recieves only 190-199 messages.

  • Again suppose we recieved 190 to 200 messeges sometimes few of them (1-5) not get procesed through child transactions (SCT1)

I am not able to find out who is the culprit for these issues.

Please provide some inputs any help is highly appriciated!!

Thanks & Regards,

Manoj Bilthare

Former Member
0 Kudos

Hi,

Please provide some help, Thanks in advance.

Let me know if more details required.

Regards,

Manoj Bilthare