Error 748

Rabbit

Member
My application is using 4 Progress database (Version 8.3C), and I sent -n to 14 for all database. But I found sometimes, system show error 748 (The server or the system has no more resources. Try a larger -n), although the connection was not full (e.g. 12 connection, I check it from the proutil).

This problem was not occur very often, I have try one time before to shutdown and restart the database, there the problem will be solved. But it is not pretically to restart the production during office hours.

Can anyone have suggestion on this case? Thanks a lot!

Rabbit
 

Chris Kelleher

Administrator
Staff member
I would increase your -n parameter (you are allowed to set this higher then the actual number of licenses you have). Setting it to 12 is very low, even lower then the default (20 I think). Keep in mind other processes use -n parameter space (promon, watchdog, etc...)

Also read this KB:

http://www.progress.com/services/support/cgi-bin/techweb-kbase.cgi/dispentry.p?kbid=13663

Code:
Error 748 Server has no more resources increase -n   How to
INTRODUCTION:
=============
When you see error 748, this means that an attempt was made to exceed
the limit for the number of users making a connection to the database.
If you feel you have received this error inappropriately, try the
steps listed in the Corrective Measures section.
PROGRESS ERROR NUMBER:    ERROR TEXT:                        TYPE:
======================    ================================== =========
748                       The server or the system has no
                          more resources. Try a larger -n.
POSSIBLE CAUSE OF ERROR:
========================
This error can be caused if the -n setting is not high enough, the
kernel parameters for semaphores may not be set correctly or the
services file may not be setup properly.
If you are connected to more than one database, you will need to
verify the settings for each server startup.
DOES ERROR INDICATE CORRUPTION:          IF SO, WHAT TYPE
======================================== =========================
This error does not indicate any kind of corruption.
CORRECTIVE MEASURES:
====================
1. Check the -n value being set on the broker start up line.
   If it is not on the startup, the default is normally 20.
2. Run promon against the db while it is running. Choose
   option 6. Shared Resources, and verify that the -n
   displayed in promon matches the -n on the startup line.
   If it doesn't, then you have found the problem.  Check
   your startup scripts and make sure that you are using
   the right syntax when starting the broker. Then try
   again.
3. If it does match, then you need to determine if the
   problem is with remote clients or local clients.
   Remote clients are those that start a Progress session
   from a different system than the system running the
   broker for the database.
   Local clients start Progress from the same machine that
   has the broker running for the database.
4. If the problem is with remote clients, check the setup
   of the services file. Specifically check the entry for
   the database that is having the problem.   The correct
   syntax for the service should be:
   For the startup line:
       proserve demo -H sun1 -S demosv -N tcp
   The services entries should look like this:
        demosv  2500/tcp
        demosv1 2501/tcp
        demosv2 2502/tcp
        demosv3 2503/tcp
        demosv4 2504/tcp
   You should allow 10 spaces for each service.  The next
   entry in this example should be:
        nextdb  2510/tcp
        nextdb1 2511/tcp
        etc.
5. If this still does not solve the problem, OR if the
   users are local, check the settings of your kernel
   parameters dealing with semaphores. Please use the
   following formulas:
        Out of all of the databases to be started on
        the system, take the largest -n setting from
        the broker startup line and use it in this
        formula:
        SEMMSL = (-n) + 13
        The 13 comes from 9 semaphores to start the
        broker, and 1 for each of the 4 remote client
        servers. 9 + 4 = 13.  Then you will need 1 for
        each user (-n).
        SEMMNS = SEMMSL * number of db servers to be
                          run on the system.
        Set SEMMNS to the value of SEMMSL multiplied by
        the number of db servers (maximum) that you will
        be running on the system at one time.
        SEMMNU = SEMMNS
        Set the value of SEMMNU to equal the value of
        SEMMNS. You could probably set this to about 75%
        of SEMMNS, but this is a conservative estimate
        to make them equal.
6. If you made any changes to your kernel, rebuild your
   kernel and reboot your system.
7. If the problem still exists, please call Technical
   Support
ONLINE PROCEDURES OR UTILITIES:
===============================
REFERENCES TO WRITTEN DOCUMENTATION:
====================================
System Administration Guide II (Version 6) Appendix A-8
Installation Notes (Version 7)
Progress Software Technical Support Note # 13663
 
Top