Per the "UniData Troubleshooting Guide 2004.pdr"...

What should one look at when experiencing shared-memory problems?
• Record the exact error message that appears.
• Review the contents of ipclogs created. They will appear at the directory level in the account
where the udt session died. An example name is UDT2285812c0.ipclog.
• Look at what has changed.
• Gather pertinent information about your current parameter settings, both kernel and udtconfig. Use the kp UniData-supplied UNIX level command to report kernel parameters. The user must be root for kp to work properly in some environments. When the parameter value appears as -1, kp is unable to determine the kernel setting. Most UNIX platforms provide the sysdef command to view the kernel parameter values. Use the man pages to see what options are available for sysdef in your environment. Also get a copy of your udtconfig parameters. These parameters are located in /usr/udXX/include/udtconfig, where XX is the UniData release number, for example 60 or 61. Use the showconf command to reports active settings. See “Shared Memory Errors” for more
information.

smm cannot get the first GSM errno=22
smm needs to acquire the first shared-memory segment in order to build the necessary control tables. Acquiring the segment is not possible because shmmax is not large enough. To correct this problem and avoid other problems, it is best to correct shmmax base on the following formula:
SHM_GNPAGES * SHM_GPAGESZ * 512 ? shmmax
Increase shmmax or decrease SHM_GNPAGES or SHM_GPAGESZ to satisfy this formula.

Most Common Runtime Errors
1. No more entries in MI table in LCT - xxx
The MI table in an LCT is full. Each global page identifier occupies an entry in the MI table. If your global page size is too small and your application requires more memory, the MI table rapidly reaches its specified limit of entries. You can increase the SHM_LMINENTS parameter
or you can create a larger global page (SHM_GPAGESZ) so more data can fit.
2. Error when attaching shm (xxx,xxx,xxx), errno=xxx
A process cannot attach a shared-memory segment. The shared-memory segment specified is too large, or the number of shared-memory segments attached to a process has exceeded the system
limits. There are several parameters to consider for adjustment:
• Try to increase shmseg to increase the number of segments that a process can attach. • If you cannot increase shmseg, then increase SHM_GPAGESZ. You may need to increase
shmmax to keep the formula accurate:
SHM_GNPAGES * SHM_GPAGESZ * 512 ? shmmax.
Bear in mind that the product of SHM_GNPAGES * SHM_GPAGESZ * 512 on AIX should result in segments no larger than 256 meg. Because of AIX shared memory segment alignment boundary rules, making it larger will cause the next segment to start at the next 256 meg boundary marker, thus losing the ability to make use of the intervening space. Another way of interpreting this is that a user process can attach 11 segments, each beginning on a 256 meg boundary for a total usuable space of 2,816 meg. Segments exceeding 256meg would reduce the total number actually attachable and thereby "cheating" udt processes from begin able to use this
full maximum possible address space.
• In some cases you may need to increase SBCS_SHM_SIZE
3. Error when attaching shm (xxx,xxx,xxx), errno=22, bad attach on shmid setshpcode
Increase SBCS_SHM_SIZE, and/or tune the parameters as noted in number 2.
4. Error when creating a shared memory segment (size=xxx), errno=xxx
The system cannot create a shared memory segment of the requested size. Normally, the size is larger than the maximum size of a shared memory segment in the system. Adjust the UNIX kernel shmmax parameter to increase the maximum size of a shared memory segment. If shmmax is already large, look for a programming problem which may be looping and using excessive shared memory. If the errno is 12, ENOMEM returned by shmget(), a shared memory identifier and associated shared memory segment are to be created, but the amount of available memory is not sufficient to fulfill the request. There is no clear indication whether the system is out of physical or virtual memory, but generally the system is out of swap space. If the errno is 28, the system has reached the limit of shmmni. Either increase shmmni, or increase the
SHM_GPAGESZ size so an excess number of private segments are not created.
5. No more LCTs
You are out of LCTs (Local Control Tables). Increase NUSERS. This number should be at least 1.2 * number of licensed users and up to 2 * number of licensed users, if using many phantoms.
Remember to have semmnu ? 3 * NUSERS.

HTH,

Bill

Jeff Schasny said the following on 7/10/2009 8:35 AM:
Me too. Blew up immediately.

IBM P570 AIX 5.3 UV 10.2.4

Mecki Foerthmann wrote:
Well, if it makes you feel better, my test crashed out with a similar error message as well. The size shown was about half of what you had, otherwise the same message.
UD 5.2 on Solaris 5.2 (I think).
I know it's old, but that's all they give me.

Symeon Breen wrote:
Ok I am very jealous now of all these quick times, when my one crashed out Can someone remind me (its been years since i did any udt config stuff) what
should i be looking at to fix this error

Thanks

PS - i like this thread i think this can be of benefit to people to fine
tune both code and their os and u2 configuration !



-----Original Message-----
From: Symeon Breen [mailto:[email protected]] Sent: 09 July 2009 14:04
To: 'U2 Users List'
Subject: RE: [U2] General guidelines on indexing

Unidata 7.1 (32bit) on redhat EL 3 64bit, on XEON E5335 with 4 gig ram. \

Error when creating a shared memory segment (size=35682416), errno=22

Lol

Hmmm ?

_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to