on ‎2010 Sep 09 1:33 AM
hi experts,
I have some Business Logic that takes approximately 180ms to execute. This is basically a SQL qry and runs at its best when executed with no other conditions in Main BLS. However if I include a switch case with two match values and if the first match value has a call to another BLS which in turn calls number of trx and perhaps could say its very large and complex one. On the right hand side of the BLS I use the same SQL query which took 180 ms to execute when running as stand alone one. Now I execute the Main BLS directly using URL with Illuminator service, the execution should take the right hand path i.e SQL query execution. This time it takes around 900 ms to give the result.
Almost certainly it has to do with the calls to other transactions. Also when loading the TRX it takes more than 10 secs. My question is although while execution, the path followed by the TRX is to the SQL query that is match value 2 but still it takes so long to give the result set.
In short if number of calls made to other transaction are more although its not a part of execution the BLS as a whole takes much more time. We are on 12.0 and cannot use the Dynamic Transaction Call to load other BLS. Since we cannot call Xacute queries in action call I had tried using a XML Query loader and then call the xacute query but it never loads.
Is there any other way we can replace the Transaction Call Action in 12.0 to load other trx's in much more efficient way...!
Appreciate ur inputs..!
Gilmour
Request clarification before answering.
Gilmour,
we also faced this performance issue when changing from MII 11.5 to 12.0. From 12.0 on, the MII sources (like transactions, queries, displays) are stored as xml in the MII internal database. When a transaction calls another transaction, MII will have some overhead that slows the performance.
There are some points you can improve:
- clear the sample data. The smaller a transaction, the faster it will be loaded
- optimize a transaction. Use XPath to speed up the tran
- keep transactions as small as possible
- if you have some time critical processes, it may be better to build one transaction instead of transactions that call other transactions
As an alternative to using the transaction action in the link editor, you may call a transaction using the Runner service:
http://server:port/XMII/Runner?Transaction=Project/folder/transactioname&inputname=value&OutputParameter=outputname
As you described, you can use this URL in a XML query that is used in the transaction. But I doubt that you will get faster results. I found the best way to improve the performance by not using too many sub calls to transactions inside a transaction.
Hope this helps.
Michael
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Gilmour,
In addition to Mike's comments, please find the below link on MII communications:
May be helpful.
Best Regards,
Kedar
| User | Count |
|---|---|
| 3 | |
| 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.