B. Return Codes of System Calls
The following table describes the causes of return codes of major system calls, and the actions you need to take. For errors not explained in the table, see the documentation for your OS.
Unless otherwise specified, the table covers errno in HP-UX.
The table only explains the major system calls. For a closer examination, check the mnemonic for the errno value shown in the message against the errno definition file for your OS. For example, see the /usr/include/sys/errno.h file in HP-UX and Solaris, or the definition with the errno.h header in Windows and Visual C++. Furthermore, use the manual to check the system call that caused the error and to determine the cause of the error indicated by the mnemonic.
System call |
errno |
Mnemonic |
Probable major causes |
Action |
---|---|---|---|---|
fork |
11 |
EAGAIN |
There are too many processes, or a temporary memory shortage occurred. |
Re-execute. If the error occurs again, stop unnecessary processes. |
12 |
ENOMEM |
Either of the following is possible:
|
If the amount of swap area or virtual memory is insufficient, increase it. If you cannot increase the amount, stop unnecessary processes. If some processes are consuming large amounts of memory, check whether you can stop such processes. |
|
malloc |
12 |
ENOMEM |
Either of the following is possible:
|
If the amount of swap area or virtual memory is insufficient, increase it. If you cannot expand them, stop unnecessary processes. If some processes are consuming large amounts of memory, check whether you can stop such processes. |
22 |
EINVAL |
Invalid memory management information was detected. |
Contact the system administrator. |
|
mkdir |
13 |
EACCESS |
The access permission is invalid. |
Check whether the access permission for files under the embedded database practical directory is correct. |
28 |
ENOSPC |
The file system does not have sufficient available free area. |
Allocate free space. |
|
msgget |
28 |
ENOSPC |
The value specified for msgmni (number of message queue identifiers) is too small. In Windows, the installation drive does not have sufficient free space or available resources are insufficient. |
Estimate the requirements for all programs that run on the server machine applicable to msgmni, change the specified value, and then restart the server machine. In Windows, allocate free space on the installation drive larger than the size of shared memory. |
msgrcv |
22 36 |
EINVAL EIDRM |
A message queue used for the embedded database was deleted. In Windows, a work file under the embedded database installation directory may have been deleted while the embedded database was running. |
Forcibly stop the embedded database if it has not terminated abnormally. Then restart the server machine (In Windows, restart the embedded database service). |
msgsnd |
11 |
EAGAIN |
The value specified for msgmni (number of message queue identifiers) or msgtql (number of messages) is too small. |
Estimate the requirements for all programs that run on the server machine applicable to msgmni or msgtql, change the specified value, and then restart the server machine. |
22 |
EINVAL |
A message queue used for the embedded database was deleted. |
Forcibly stop the embedded database if it has not terminated abnormally. Then restart the server machine. |
|
open |
2 |
ENOENT |
The file or directory was not found. If logblib.c is output as the calling module in the message KFPO00107-E, the message text file was not found. In this case, an embedded database that is not currently in use may be registered in the OS. |
Use the ajsembdbunset command to delete the embedded database that is currently not in use. |
6 |
ENXIO |
You do not have access permission for files. |
Make sure that the device exists and that it is enabled. If the device is not enabled, enable it. If this situation does not apply, take action according to the manual for your OS. |
|
13 |
EACCES |
You do not have permission for files. |
|
|
17 |
EEXIST |
The file you attempted to create already exists. |
Change the file name and re-execute. Alternatively, delete unnecessary existing files, if any, and then re-execute. |
|
23 |
ENFILE |
The number of open files exceeded the maximum for the system. In Windows, the installation drive does not have sufficient free space. |
Increase the maximum number of open files allowed for a system specified in the kernel parameter of the OS (nfile in HP-UX, or maxuproc x nofiles x number-of-fixed-licenses in AIX 5L, NR_FILE or fs.file-max in Linux). Also stop any unnecessary processes and close any unnecessary windows. In Windows, allocate free space on the installation drive larger than the size of shared memory. |
|
24 |
EMFILE |
There are too many open files in the process. In Windows, the installation drive does not have sufficient free space. |
Increase the maximum number of open files allowed for a process specified in the kernel parameter of the OS (maxfiles in HP-UX, rlim_fd_cur in Solaris, or nofiles in AIX 5L, INR_OPEN in Linux). In Windows, allocate free space on the installation drive larger than the size of shared memory. |
|
999 |
ENOENT |
In Windows, the work file in the embedded database may have been corrupted. |
Make sure that the embedded database has stopped, and then perform recovery by deleting all of the following files. Note, however, that files after number 4 may not exist.
When you start the embedded database after deleting the above files, make sure that no other applications such as Explorer are accessing embedded-database-practical-directory\tmp. |
|
semget |
28 |
ENOSPC |
The value specified for semmni (number of semaphore identifiers) or semmns (number of semaphores in the system) is too small. In Windows, the installation drive does not have sufficient free space. |
Estimate the requirements for all programs that run on the server machine applicable to semmni and semmns, change the specified values, and then restart the server machine. In Windows, allocate free space on the installation drive larger than the size of shared memory. |
semop |
22 |
EINVAL |
A semaphore used for the embedded database was deleted. In Windows, a work file under the embedded database installation directory may have been deleted while the embedded database was running. |
If the embedded database did not terminate abnormally, forcibly terminate it. Then restart the server machine (In Windows, restart the embedded database service). |
shmat |
12 |
ENOMEM |
One of the following is possible:
|
|
22 |
EINVAL |
The shared memory for the embedded database was not found. A command might have been executed before the OS was started (during execution of /etc/rc). In Windows, a work file under the embedded database installation directory may have been deleted while the embedded database was running. Alternatively, a command may have been executed before startup of the embedded database was completed. |
If the command was executed before the OS was started, wait until the OS has started, and then re-execute the command. If startup of the embedded database was not completed, wait until the startup of the embedded database has been completed, and then execute the command. In Windows, forcibly stop the embedded database if it has not terminated abnormally. Then restart the embedded database service. |
|
shmdt |
12 |
ENOMEM |
In Windows, either of the following is possible.
|
|
shmctl |
1 |
EPERM |
You cannot process the shared memory because you are not the owner. |
If the message KFPO00107-E was output, check it. |
12 |
ENOMEM |
In Windows, either of the following is possible.
|
|
|
shmget |
12 |
ENOMEM |
In UNIX, the server machine does not have the amount of memory required for allocating the required size of shared memory. In Windows, see Table B-2. |
In UNIX, reduce memory usage on the server machine. Alternatively, increase the amount of real memory for the OS. In Windows, see Table B-2. |
22 |
EINVAL |
In UNIX, the size of the shared memory you attempted to acquire exceeded the shmmax kernel parameter of the OS. In Windows, a work file under the embedded database installation directory may have been deleted while the embedded database was running. |
In UNIX, increase the value specified in the shmmax kernel parameter for the OS. Then, restart the server machine. For a Windows embedded database server, forcibly stop the embedded database if it has not terminated abnormally. Then restart the embedded database service. |
|
28 |
ENOSPC |
In UNIX, the number of shared memory IDs exceeded the maximum for the OS. In Windows, the installation drive does not have sufficient free space. For a Windows embedded database server, the installation drive does not have sufficient free space. If a paging file was allocated as shared memory, the process-specific memory is insufficient for the embedded database service to manage the shared memory. |
In UNIX, take at least one of the following actions:
In Windows, allocate free space on the installation drive larger than the size of shared memory. If a paging file was allocated as shared memory, check the maximum memory usage for the entire system, and then increase the physical memory or the size of the paging file. |
|
write |
5 |
EIO |
An I/O error occurred. |
Take action according to the OS and hardware information. |
14 |
EFAULT |
An attempt was made to write to an area that cannot be accessed. The disk to which the write was attempted may have been detached. |
If this code is returned when the disk was switched during node switching, ignore this code because there is no problem. If you have inadvertently detached the disk while the embedded database was running, restore the appropriate file from the backup, or initialize that file. For other cases, contact the system administrator. |
|
27 |
EFBIG |
The size of a file exceeded the system limit. |
Change the file size limit for the administrator of the embedded database system or the root user to be greater than the size of a file used for the embedded database system, or to an unlimited value. Alternatively, reduce the size of files used for the embedded database system. |
|
28 |
ENOSPC |
The file system does not have sufficient free space. |
Allocate free space. |
|
abort, creat, execl, execle, execlp, execv, execvp, fopen, fork, gethostbyaddr, gethostbyname, mmap, msgctl, msgget, msgrcv, msgsnd, open, read, readv, select, semctl, semget, semop, shmat, shmctl, shmdt, shmget, signal, sigrelse, sigset, sigsetmask, sigvector, stat, system, write, writev, and so on |
22 |
EINVAL |
In Windows, memory may be insufficient. |
In Windows, take either of the following actions:
|
Location of allocated shared memory |
Cause |
Check method |
Action |
---|---|---|---|
File |
The installation directory does not have sufficient free space. |
Check whether the drive on which the embedded database is installed has sufficient free space. |
If the amount of free space is insufficient, delete unnecessary files. |
The disk containing the disk paging file does not have sufficient free space because the initial value of virtual memory differs from the maximum value. |
Check whether the disk containing the disk paging file has sufficient free space. |
If the disk does not have free space, re-allocate virtual memory. To do this, specify the same value (fixed value) for the initial size and the maximum size so that consecutive areas are created on the drive. |
|
Memory is insufficient. |
Check the memory usage. |
Expand or re-allocate virtual memory. To do this, specify the same value (fixed value) for the initial size and the maximum size so that consecutive areas are created on the drive. |
|
Check whether the disk containing the paging file has sufficient free space. |
If an expansion in virtual memory is required, expand it. At this time, specify the same value for the initial value and maximum value of virtual memory. |
||
Paging file |
The installation directory does not have sufficient free space. |
Check whether the drive on which the embedded database is installed has sufficient free space. |
If the amount of free space is insufficient, delete unnecessary files. |
The disk containing the disk paging file does not have sufficient free space because the initial value of virtual memory differs from the maximum value. |
Check whether the disk containing the disk paging file has sufficient free space. |
If the disk does not have free space, re-allocate virtual memory. To do this, specify the same value (fixed value) for the initial size and the maximum size so that consecutive areas are created on the drive. |
|
Memory is insufficient. |
Check the memory usage. |
Expand or re-allocate virtual memory. To do this, specify the same value (fixed value) for the initial size and the maximum size so that consecutive areas are created on the drive. |
|
Check whether the disk containing the paging file has sufficient free space. |
If an expansion in virtual memory is required, expand it. At this time, specify the same value for the initial value and maximum value of virtual memory. |
||
The embedded database service has not started. |
Check whether the embedded database service has started. |
If the embedded database service is in the stop status, start it. |