OEPAS: the calculation of the maximum number of users

Posted by Andriy Mishin on 07-Dec-2016 08:35

Hello Community,

I'm trying to understand this parameters for PASOE:

Specifically:

  • Maximum number of agents
  • Maximum connections per agent
  • Maximum ABL sessions per agent

In the picture above it is default values.

The questions is: Whats means "agents"? whats means "connections per agent" and "ABL sessions per agent"?

For example, I expect that to my application will connect up to 1,000 concurrent users.

Then I leave the value of  "Maximum number of agents" as it is (10) аnd sets a new value for "Maximum connections per agent" parameter to 100.

10 x 100 = 1000 concurrent users, which can be simultaneously work on this instance, true? or not?

But what is "Maximum ABL sessions per agent" in this case? 

And why the default values for the "Maximum number of agents" is 10 and for the "Maximum connections per agent" is 16, that is 10 x 16 = 160 , but value for "Maximum ABL sessions per agent" is 200?

I suspect that I have finally got confused with this... (

All Replies

Posted by David Cleary on 07-Dec-2016 08:50

Number of Agents specifies the number of agent processes you want running.
 
Number of sessions is the number of sessions a single agent process can support.
 
Number of connections specifies the number of concurrent request an agent process can handle. This can be less than the number of sessions as requests will be queued in the session manager awaiting an available connection.
 
Depending on the operating system and your application, you can probably decrease the number of agents and increase the number of sessions. I would go with 4 agents and 250 sessions as a start. Ideally, you want to have fewer agent processes.
 
Dave
 

Posted by Roy Ellis on 07-Dec-2016 08:54

You understand most of it, let me explain the rest.

1) Agents - these are multi-session agents, like our classic AppServer agents except they can handle multiple ABL sessions concurrently (the executable is _mproapsv(.exe)).

2) Maximum ABL Sessions is the total number of sessions that Agent can handle

3) Maximum connections per agent is the total number of "CONCURRENT" connects per Agent

So in your example, 10 Agents X 100 Maximum ABL sessions per agent, then you would have 1000 total sessions, however, only 160 concurrent sessions, the remainder of the sessions would have to wait for a busy session to become available.

So if you want 1000 concurrent connections total, the your settings would be something like:

Maximum number of agents = 10

Maximum connections per agent = 100

Maximum ABL session per agent = 100

Also you will need to increase the Tomcat concurrent threads value (the default is 300)

tcman config psc.as.executor.maxthreads

      This will show you the current setting

tcman config psc.as.executor.maxthreads=1000

      This will change the value to 1000

tcman config psc.as.executor.maxthreads

      This will show you the new setting

Then you will have to restart your PASOE instance for the change to take affect.

Let me know if you have further questions, Roy

Posted by Andriy Mishin on 08-Dec-2016 01:29

Thank tou for the detailed answer, Roy!

Can I ask the last, I think, the question on this topic?

It is about the licenses.

>So in your example, 10 Agents X 100 Maximum ABL sessions per agent, then you would have 1000 total sessions,

>however, only 160 concurrent sessions, the remainder of the sessions would have to wait for a busy session to become

>available.

In this example, if I have only 160 concurrent sessions then it is enough 160 licenses for PAS for OpenEdge? Or it needed 1000 licenses for all 1000 total sessions ?

Posted by Andriy Mishin on 08-Dec-2016 01:34

Or maybe I can purchase 10 licenses "Access Agent"  for "Maximum number of agents" and that will be enough?

Posted by gus bjorklund on 09-Dec-2016 08:20

> On Dec 7, 2016, at 9:37 AM, Andriy Mishin wrote:

>

> Whats means "agents"? whats means "connections per agent" and "ABL sessions per agent"?

An “agent" is a process that executes your 4GL code. It can operate on behalf of one or more clients. Think of it as a worker that runs code when people ask it to do so. The agent process is running in the tomcat environment but executes 4GL code for you. Tomcat itself is a (huge) java program.

"Connections per agent" is the maximum number of network connections (i.e. sockets) that the agent process can have open at the same time. The connection is used to receive a client’s request and transmit a response back.

A “session" is an active 4GL instance in the agent. Similar to when you run a program with the command “pro foo.p”. That is one session. The maximum number of sessions determines how many programs can be active at the same time in one agent. While I say the program is “active", it may not actually be doing anything as it may be waiting for a request to come in. Similar to when you interactive session is waiting for keyboard input.

HTH

This thread is closed