Persistent Programs on Appserver

Posted by claudemir_santos on 13-Jan-2017 10:19

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

Posted by Anil Kumar on 13-Jan-2017 10:34

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.
 

Posted by mopfer on 13-Jan-2017 10:38

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.

Posted by Vaibhav Parab on 13-Jan-2017 12:05

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

Posted by claudemir_santos on 13-Jan-2017 12:16

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.

 

Posted by Peter Judge on 13-Jan-2017 12:18

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.
 
 
 

Posted by Matt Baker on 13-Jan-2017 14:48

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
 

This thread is closed