IBM i Global

 View Only
  • 1.  Performance degradation on system while webservice calls

    Posted Wed March 27, 2024 10:05 PM

    Hello,

    We are calling SOAP Webservice deployed on the server from Azure using azure function. When there are too many requests received from azure to system, we are facing performance degradation and error received is 'Client connection was closed unexpectedly'. Then all other services which are deployed on that Application server in WebSphere also impacted and stopped responding.

    Can you please let me know how to handle such thing in IBM i. Is there any way to handle large number of requests simultaneously. 

    Thank you!  



    ------------------------------
    Ujwala Kavathekar
    ------------------------------


  • 2.  RE: Performance degradation on system while webservice calls

    Posted Thu March 28, 2024 04:04 AM

    Hi there,

     

    I am not sure if I am right but as far as I understand your situation, you are calling SOAP Webservices running on IBM I and you host them with the IBM IWS – right?

    In this case you will have performance impact and the more you scale the more it will be because there is a Websphere Application Server working inside and everything works via Java which needs much more resources than IBM I ILE programs.

    As long as users only run a few requests, the IBM IWS is fine on "normal" systems. But the more you scale, the worse it gets.

     

    Therefore you have multiple options:

    1. Analyze the Services and see if we can optimize them somehow
    2. Put more resources in your machine
    3. Use IceBreak instead. IceBreak is the only ILE Web- and Application Server on IBM I and is much faster than IWS and needs only a little resources because it works in IBM ILE environment. It is written in ILE C and ILE RPG and has a great SOAP and Json Framework called noxDB (which is also an open Source project in the meantime you can also use without IceBreak).

     

    I am working with Webservices on IBM I since 2003 and this is my experience.

    With IceBreak we are even able to run RPG Microservice Architecture on "normal" IBM I partitions without putting a lot of RAM or CPU power to it.


    If you need further information about the different options please contact me or write here.

    I hope that helps.

     

    Kind regards

    Markus

     

     

    Mit freundlichen Grüßen aus der Südwestpfalz

     

    Markus A. Litters

    edvberatung.litters

     

    www.mlitters.de

     

    +49 6331 5000 432






  • 3.  RE: Performance degradation on system while webservice calls

    Posted 30 days ago

    IWS can handle heavy workloads and is a good option.  Yes, it is Java-based application server so you have to take that into account.  Please look at "Chapter 10 - Performance Tuning" of the Integrated Web Services Server Administration and Programming Guide for some helpful hints.

    We have customer runs hundreds of web services in an application server.  If you have a lot of services, Java does need memory so you may need to look at the properties. 



    ------------------------------
    Nadir K Amra
    ------------------------------



  • 4.  RE: Performance degradation on system while webservice calls

    Posted 29 days ago

    >>>> If you have a lot of services, Java does need memory so you may need to look at the properties.  <<<<

    IBM i PDI charts on Java Memory Overview and Java Memory By Job are good ones to look at to see if the heap memory needed to be increased or not.  They helped me solve customers' Java workload performance issue.



    ------------------------------
    Satid S
    ------------------------------



  • 5.  RE: Performance degradation on system while webservice calls

    Posted Thu March 28, 2024 06:47 AM
    Edited by Satid S Thu March 28, 2024 07:25 AM

    Dear Ujwala

    Is Azure running on Intel/Windows server?  If so, in such a multi-tier workload environment, you need first to check HW resource utilization and wait time accounting on both intel/Windows and IBM i.  For the latter, use Performance Data Investigator (PDI) tool and focus on the charts named Wait Overview and Wait by Generic Job or Task and Wait by Subsystem to check if there is any prominent wait time during the time frame the problem happens and, if so, address that wait issue. (Post the charts here if you can.)      You need to also analyse this performance data on Windows server as well but I have no suggestion on how to do it.

    Here are also additional performance factors I learned from my past experience for such similar cases to be important in alleviating the seriousness of the issue you are facing.  The following TCP/IP factors need to be adjusted and impolemented :

    1) On both Intel/Windows and IBM i servers, set TCP/IP Send and Receive Buffer size (TCPRCVBUF and TCPSNDBUF) at around 300 KB with CHGTCPA command. IBM i default size of 64 KB is too small for high workload period.   On Windows side, you need to find someone who knows how to change these parameters.   Keep in mind that this change takes effect ONLY FOR new TCPIP connections that come up  AFTER the change. If all you connections are in persistent connection pool, you need to restart the entire connection pool for the new buffer size to take effect.


    2. I assume Azure on Windows server always initiates connection to IBM i. If this is the case, you should tell Windows expert to implement a "persistent connection pool" from Azure to IBM i and also set TCPIP Keep Alive timer (say, at 10 minutes) in Windows server.  (This part is done on Intel server only. Nothing to do on IBM i side.)  Not using persistent connection pool incurs excessive TCPIP connection workload due to repetitive connect+disconnect for all transaction between Windows and IBM i servers. Persistent connection pool can dramatically reduce this excessive communication overhead at peak workload when there are peak numbers of connection and you need someone with experience to help you implement the connection pool.


    Please read this article of mine that discusses this same recommendation:  IBM i Experience Sharing, Case 3 – When Performance Issues Come From Without (read the 2nd case on the latter half of the article - beginning at the sentence "Here is one more case study of external source of performance problem in a complex IT universe.")   at  https://www.itjungle.com/author/satid-singkorapoom/

    Let me know when you have further question. 



    ------------------------------
    Satid S
    ------------------------------