Persistent Programs on Appserver - Forum - OpenEdge Development - Progress Community
 Forum

Persistent Programs on Appserver

This question is not answered

Good afternoon.
I have an application runnign programs on appserver.

I wonder if there is a way to run a program on all agents that shows persistent running programs.

I have cases that the programs are running persistent until the agent is finished

All Replies
  • Hi Claudemir,
     
    Following Knowledge base article demonstrates on the ways to determine which persistent procedures are currently running on client and server side.
     
     
    Hope this helps.
     
    Thanks and Regards,
    Anil Kumar.
     
  • If you are running a fairly recent version of OpenEdge, you can use the -agentdetail option of ASBMAN to show that information.  That option is available in 11.0, not sure if it was available before that.

  • Not sure if this helps. In ProTools, you can configure your AppServer within the 'Service Parameter Maintenance'. Once configured, it connects to the appserver and gets its details. You can then view the information in 'AppServer Information' tool. Within this tool, you should also be able to see the persistent procedures active along with the appserver propath, connected databases and other appserver details.

    This is available with my current OpenEdge 10.2B installation. Haven't tried it with other versions yet.

    Please do let me know if this solves your problem.

    Regards,

    Vaibhav

  • Tks, vaibhav_parab
    It´s work, but for  one at a time, i have more then 50 agents running.
     
     
     
    De: vaibhav_parab [mailto:bounce-vaibhav_parab@community.progress.com]
    Enviada em: sexta-feira, 13 de janeiro de 2017 16:07
    Para: TU.OE.Development@community.progress.com
    Assunto: RE: [Technical Users - OE Development] Persistent Programs on Appserver: Suggested Answer
     
    Update from Progress Community

    RE: Persistent Programs on Appserver

     

    Not sure if this helps. In ProTools, you can configure your AppServer within the 'Service Parameter Maintenance'. Once configured, it connects to the appserver and gets its details. You can then view the information in 'AppServer Information' tool. Within this tool, you should also be able to see the persistent procedures active along with the appserver propath, connected databases and other appserver details.

    This is available with my current OpenEdge 10.2B installation. Haven't tried it with other versions yet.

    Please do let me know if this solves your problem.

    Regards,

    Vaibhav


    Did this answer your question?

    Verify it as the answer or Reject it as the answer

    View online

     

    You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

    Flag this post as spam/abuse.

     
  • That tool ultimately calls adecomm/as_read.p :
     
        File        : adecomm/_asread.p
        Purpose     : AppServer session information reader for the
                      ASInfo PRO*Tool
     
    You should be able to call it and have the source code too (I’m fairly sure). Though all the program does is what’s below. Look at the SESSION handle for stuff that’s interesting. You can furthermore does this sort of stuff in a DEACTIVATE event procedure (which is available in all appservers) and which will run after every request.
     
    /* Read SESSION data */
    ASSIGN
      connid   = SESSION:SERVER-CONNECTION-ID
      opmode   = SESSION:SERVER-OPERATING-MODE
      connreq  = SESSION:SERVER-CONNECTION-BOUND-REQUEST
      connbnd  = SESSION:SERVER-CONNECTION-BOUND
      connctxt = SESSION:SERVER-CONNECTION-CONTEXT
      ASppath  = PROPATH
      .
     
    /* Generate list of connected databases */
    IF NUM-DBS > 0 THEN
    DO i = 1 TO NUM-DBS:
      ASSIGN conndbs = conndbs + (IF conndbs NE "" THEN ",":U ELSE "") + LDBNAME(i) + " (":U + PDBNAME(i) + ")":U.
    END.
     
    /* Generate a list of running persistent procedures */
    hAS = SESSION:FIRST-PROCEDURE.
    DO WHILE hAS <> ?:
      IF hAS:PERSISTENT THEN
        ASSIGN connpps = connpps + (IF connpps NE "" THEN ",":U ELSE "") + hAS:FILE-NAME.
      hAS = hAS:NEXT-SIBLING.
    END.
     
    /*MESSAGE
    *   connid skip opmode skip connreq skip connbnd skip connctxt skip asppath skip
    *   conndbs skip connpps
     *   VIEW-AS ALERT-BOX.*/
     
    RETURN.
     
     
     
  • The problem with using this is that you get a random agent.  You have no guarantee of hitting all of them if you call this 50 times in a row.  And if any of them  are in use you’ll never get that agent
     
    You need to use progetstack which dumps a file for the given PID.
     
    mattB