System or server has no more resources.

Posted by durgaprasad m on 14-Aug-2017 12:23

We had issue with our Mfg/pro application "server has no more resources" .Database is up and running fine but application we are not able to connect.

Some times user able to connect to application for 5 mins after that user facing same issue.
In promon it shows user 108 users.

Promon > 5:Activity> 25 Servers, 108 Users (1 Local, 107 Remote, 1 Batch),4 Apws

.pf file 

-n 1050 # Number of users
-Ma 20 # Maximum Clients per Server
-Mn 50 # Maximum servers
-Mi 5 # Min processes on a client server

Progress verison : 9.1E
Unix O/S: Aix 5.3

In database log file we found below error.

10:44:19 BROKER 0: No servers are available. Try again later. (1154)
10:44:36 BROKER 0: No servers are available. Try again later. (1154)
10:44:59 BROKER 0: No servers are available. Try again later. (1154)

I would like to know whether we need to Change -Ma -Mn and -Mpb parameter values?

proserve .../prd/db1 -m3 -Mi 3 -Ma 15 -Mn 20 -Mpb 4 -S prdreyoi -ServerType SQL

Are we good with these values?



upload_2017-8-10_23-2-20.png

All Replies

Posted by Valeriy Bashkatov on 15-Aug-2017 02:19

>>proserve .../prd/db1 -m3 -Mi 3 -Ma 15 -Mn 20 -Mpb 4 -S prdreyoi -ServerType SQL

Through this secondary broker to the database can be a maximum of 60 SQL-connections. (-Mpb * -Ma).

You should also check the values of the -minport / -maxport parameters. The range of port numbers defined by the -maxport and -minport parameters provides client access to an OpenEdge server.

By default, -minport = 1025, -maxport = 2000.These ports should be free and open in a firewall. Otherwise, you must specify a different range.

The number of available servers and the number of current users on these servers can be viewed in promon -> R&D -> 1. Status Displays -> 3. Servers

Posted by durgaprasad m on 15-Aug-2017 09:18

I not able to understand in our setup 1000 connection can connect to database but during this errors only 108 user connected.What went wrong here?

Posted by Valeriy Bashkatov on 15-Aug-2017 09:31

1. Provide all the start commands that you use for database startup.

2. If the primary broker is used only for connecting ABL clients, and the number of remote client servers is not limited to the primary broker (-Mpb), then eventually all servers can be occupied for processing only ABL clients and only a small part of the servers could be allocated to SQL clients. A single server can process only one type of client. So for the new SQL-connections simply no room.

I recommend you review this article and check the correctness of your startup parameters for the primary and secondary database brokers for your database:

knowledgebase.progress.com/.../How-to-set-up-a-secondary-login-broker-for-SQL-92-connections-for-Progress-OpenEdge-database

Posted by Mark Pasternak on 23-Aug-2017 09:14

Usually when this error is encountered it's because the database is unable to spawn additional servers.

Check your port range. And verify that there are no other applications that are using ports in that range. In addition, you must ensure that you are picking a port range that does not have entries in your services file. The database engine will not start any servers on ports that have service entries, even if nothing is currently using those service ports.

Posted by durgaprasad m on 29-Aug-2017 13:26

HI Mark,

Sorry for delay response, to resolve this issue we restarted database.

Fyi......... once again we faced this issue "server has no more resources"  on production database.

All Databases up and running fine but application we not able to access.

Progress version : 9.1e

Os version : Aix 5.3

uptime:

 01:06AM   up 2 days,  23:03,  95 users,  load average: 0.52, 1.66, 1.68

Promon details :

35 Servers, 41 Users (4 Local, 37 Remote, 4 Batch),4 Apws

RETURN - show remaining, U - continue uninterrupted, Q - quit:

                            Broker status: Executing

                         BI Writer status: Executing

                         AI Writer status: Executing

                          Watchdog status: Executing

                   Number of page writers: 4

             Number of self-service users: 4

                   Number of remote users: 34

                        Number of servers: 35

                     Number of shut-downs: 0

                       Number of monitors: 1

Active transactions:               1

Lock table entries in use:         103 of 1024000

Lock table high water mark:        2193

Number of servers:                 34 (36 allocated)

Total users:                       38 (1000 allocated)

  Self-service:                   4

  Remote:                         34

  Batch:                          4

And also as you mentioned regarding Minport and max port values please find the values for below

crn.pf

minport        13100       # Min Port Number

-maxport        14999       # Max Port Number

Both for production and test server has same port number are assigned but they assigned in two different server.Is their any conflict.

cat /etc/services

prod server

crn          13033/tcp               # MFG/PRO N9

cat /etc/services

test server

crn          13033/tcp               # MFG/PRO N9

Fyi,,, whenever we are facing this issue we seen connection timed out errors in all database log file for both test and prod servers.

18:41:29 SRV    31: Connection timed out on socket=115 for usernum 1, attempt disconnect. (1280)

18:41:30 SRV    31: Error reading socket=115 ret=-1 errno=22. (795)

18:41:30 SRV    31: Error reading socket=115 ret=-1 errno=22. (795)

18:41:48 SRV    18: Login usernum 970, userid areyes2, on mhlctxqad07a. (742)

18:42:20 SQLSRV2 3: SYSTEM ERROR: Memory violation. (49)

18:42:20 SQLSRV2 4: SYSTEM ERROR: Memory violation. (49)

18:42:50 BROKER  0: Disconnecting dead server 3. (2525)

18:42:50 BROKER  0: Disconnecting dead server 4. (2525)

18:44:24 SRV    10: Logout usernum 1009, userid bjenson, on mhlctxqad07a. (739)

18:44:55 SRV    31: Connection timed out on socket=115 for usernum 1, attempt disconnect. (1280)

18:45:00 SRV    10: Login usernum 1009, userid pgresdba, on p5lp5 batch. (742)

18:45:01 SRV    31: Error reading socket=123 ret=-1 errno=22. (795)

18:45:03 SRV    10: Logout usernum 1009, userid pgresdba, on p5lp5 batch. (739)

18:45:32 SRV    31: Connection timed out on socket=115 for usernum 1, attempt disconnect. (1280)

18:45:37 SRV    31: Error reading socket=117 ret=-1 errno=22. (795)

18:45:37 SRV    31: Error reading socket=123 ret=-1 errno=22. (795)

18:46:07 SRV    31: Connection timed out on socket=115 for usernum 1, attempt disconnect. (1280)

18:46:12 SRV    10: Login usernum 1009, userid marceo, on mhlctxqad07a. (742)

18:46:15 SRV    18: Login usernum 969, userid marceo, on mhlctxqad07a. (742)

18:46:23 SRV    31: Error reading socket=115 ret=-1 errno=22. (795)

18:46:53 SRV    31: Connection timed out on socket=115 for usernum 1, attempt disconnect. (1280)

18:47:23 SRV    31: Connection timed out on socket=115 for usernum 1, attempt disconnect. (1280)

Posted by durgaprasad m on 29-Aug-2017 13:28

crn.pf

-B                 70000   # Number of Blocks in database buffer

-bibufs              200   # Number of before-image buffers

-aibufs              300   # Number of after-image buffers

#-Mi                   2   # Min processes on a client server

-Ma                   15   # Max number of REMOTE clients per db server

-Mn                   35   # Max number of REMOTE client servers

-n                  1000   # Max number users.

-Mxs               32768   # Shared memory overflow size (override)

-spin              12000   # Number of spin lock retries

-L               1024000   # Lock Table entries

Posted by George Potemkin on 30-Aug-2017 13:21

"Status: Servers" screen (promon/R&D/1/3) is a must if you're getting the "server has no more resources".

You can get the same data from a full db log but you need a program to process the log.

You should use the -Mpb parameter to start a primary login broker. You're using the -Mpb to start only a secondary login broker (-m3 -Mpb 4 -ServerType SQL).

There was at least 31 servers for 4GL clients ("SRV    31"). You allows to start 4 servers for SQL clients (-Mpb 4). But you allocate only 36 slots (-Mn + 1) used by the servers as well as by two login brokers. Hence the remote client servers of both types can use only 34 slots (= 36 - 2). It's not enough. Either increase the -Mn or better set -Mpb 30 to start the primary login broker.

Posted by durgaprasad m on 30-Aug-2017 14:04

HI George,

Thanks for suggestion.

Yes we are using -Mpb to start secondary login broker process.

proserve /progdata/prd/crndb1/prdcrn    -m3 -Mi 3 -Ma 5 -Mpb 4 -S prdcrnoi -ServerType SQL

Actually we have provided 650 remote connections.

-Ma                   15   # Max number of REMOTE clients per db server

-Mn                   35   # Max number of REMOTE client servers

How much -Mpb i need to set for primary login broker to start ?

Posted by George Potemkin on 30-Aug-2017 14:08

"set -Mpb 30 to start the primary login broker."

Posted by durgaprasad m on 31-Aug-2017 12:44

Thanks George i will do that.

Any thing i need to update these below values also?

crn.pf

minport        13100       # Min Port Number

-maxport        14999       # Max Port Number

Posted by George Potemkin on 31-Aug-2017 13:33

I'd suggest to double the value of the -Mn parameter and to use a login boker for 4GL clients separated from database server (as you do for SQL clients). Each login boker should use its own set of parameters (-Mpb, -Mi, -Ma, -minport, -maxport). The minimal value of the -Mn parameter is the sum of -Mpb per all login brokers plus the number of login brokers but it would good idea to reserve more slots in the server's table. The -minport/-maxport should set the range that at least equal to the -Mpb but a reserve can help during the "bad" days: when a few ports will not work or will be used but other (non-Progress) processes.

This thread is closed