on 10-03-2012 6:36 AM
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.
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
Hi,
Please provide some help, Thanks in advance.
Let me know if more details required.
Regards,
Manoj Bilthare
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
5 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.