System or server has no more resources. - Forum - OpenEdge RDBMS - Progress Community

System or server has no more resources.

 Forum

System or server has no more resources.

This question is not answered

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
  • >>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

  • 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?

  • 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

  • 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.

  • 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)

  • 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

  • "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.

  • 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 ?

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

  • 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

  • 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.