Appserver Active Clients - Forum - OpenEdge General - Progress Community
 Forum

Appserver Active Clients

This question has suggested answer(s)

Hi, I am using OE11.63, over AIX plataform, we have a appserver with a lot of request, but our problem is "Active Clients"

We see that the number of clients is growing as the day progresses until it reaches its maximum and blocks the service.

The current value for maximum clients is 1024, and I don´t want to keep growing it.

There is a way to free the appserver? this is a programming issue? 

All Replies
  • Hi Carlos,
     
    If you don’t actually have that many physical users then this is most likely an application coding issue where the code is not disconnecting from the appserver and/or the client is not deleting persistent procedures it ran on the appserver.
     
    Brian

  • Hi Brian, thanks for your  answer, but, apart of  

    h_app:disconnect()

    delete object h_app.

    There is any thing else to do it?

    Regards

  • What is appserver operating mode?
     
     

  • This si the app server status, the mode is Stateless.

    asbman -i soiw -q

    OpenEdge Release 11.6.3 as of Thu Sep  8 19:00:46 EDT 2016

    Connecting to Progress AdminServer using rmi://localhost:20931/Chimera (8280)

    Searching for soiw (8288)

    Connecting to soiw  (8276)

    Broker Name                    : soiw

    Operating Mode                 : Stateless

    Broker Status                  :  ACTIVE

    Broker Port                    : 3995

    Broker PID                     : 13763050

    Active Servers                 : 10

    Busy Servers                   : 1

    Locked Servers                 : 0

    Available Servers              : 9

    Active Clients (now, peak)     : (1, 7)

    Client Queue Depth (cur, max)  : (0, 0)

    Total Requests                 : 7590

    Rq Wait (max, avg)             : (1 ms, 0 ms)

    Rq Duration (max, avg)         : (17448 ms, 82 ms)

    PID   State     Port  nRq    nRcvd  nSent  Started          Last Change      

    14877282 AVAILABLE 02707 000752 000752 000756 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    15466592 AVAILABLE 02708 000758 000758 000758 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    15073384 AVAILABLE 02709 000772 000772 000773 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    14418184 AVAILABLE 02710 000763 000763 000765 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    13566458 AVAILABLE 02711 000753 000753 000755 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    13238372 AVAILABLE 02712 000749 000749 000752 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    14353336 RUNNING   02713 000763 000763 000764 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    7471450 AVAILABLE 02714 000749 000749 000750 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    14025082 AVAILABLE 02715 000767 000767 000767 Nov 16, 2017 07:52 Nov 16, 2017 10:55

    14287100 AVAILABLE 02716 000765 000765 000767 Nov 16, 2017 07:52 Nov 16, 2017 10:55

  • You are running stateless operating mode.  Check any program that runs something on this appserver and ensure that you disconnect (like you are doing) and also you do a delete procedure <blah> against any procedure you ran persistently on the appserver from the client, for example...
     
    run bubba.p on server hAppServer persistent set hProc.
     
     

  • We don´t run any persistent programs.  This appserver is the back end for a REST application, have a lot of calls, but shorts ones.

    Running  the same  programs all day long, but as the number of request grow, fail to free the client.

    Here is a example of code that we are using.

       114     CREATE SERVER h_app.

       115     msino = h_app:CONNECT ("-AppService soiw -S 5162 -H " +

       115     mServer) NO-ERROR.

       116

       117   1     IF NOT msino THEN DO:

       118   1         CREATE estatus.

       119   1         estatus.codigo  = "500".

       120   1         estatus.mensaje = "Sin conexion para crear Venta".

       121   1         RETURN.

       122         END.

       123

       124         RUN soi/crea_t_pagos_3.p ON h_app ( TABLE sesion,

       125                                             ticket.origen,

       126                                             ticket.ticket,

       127                                             INPUT TABLE pago,

       128                                             INPUT TABLE opcionales,

       129                                             OUTPUT TABLE venta,

       130                                             OUTPUT TABLE estatus

       131                                           ).

       132

       133     h_app:DISCONNECT ().

       134     DELETE OBJECT h_app.

  • Carlos,
     
    If that is all the code does then I don’t have an answer.  Please open a support case so we can investigate this in more detail.
     
    Thanks, Brian

  • Thanks Brian, I already did it. But I am looking everywhere for help...Some times over here is faster than support..  

  • Hello Carlos,

    at line 121 you leave your program without deleting object h_app.

    The persistent procedure does still persistently on the appserver from the client.

    I think that, if you delete object h_pp before the RETURN, your problem maybe is solved.

    Kind regards,

    Richard Zwart

  • I agree with and adding to what he suggested. Delete "object h_app" inside the FINALLY block. This will make sure that object is deleted even when there are abrupt/unhandled exceptions in the code.