Translating with DrWatson… this can take a few seconds the first time.
This is a genuine, complex translation. DrWatson protects commands, error codes, and log output while naturally translating the surrounding text. It’s translated once and saved.
IDS 9.30.TC1 on Windows 2000 (4GB RAM) crashed around ~1700 user threads with shmat ENOMEM 'out of available data space, check system MAXMEM', create_tcb failures and an 'Invalid Mutex Type' assertion. Replies said the server tried to dynamically add shared memory but Windows refused, noting the 32-bit ~2GB addressing limit (needs Windows boot/system tweaks), a large SHMADD setting, and that 9.30.TC1 was obsolete, so upgrading and calling support was advised. Another poster suggested checking PDQ settings and finding sessions with many RSAM threads or high memory use via onstat -g ses. No confirmed fix was reported.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
When even we reach around 1700 Userthreads, the database crashes. Find
below part of the informix.
10:46:50 Maximum server connections 136
10:50:48 shmat: [ENOMEM][12]: out of available data space, checksystem MAXMEM
10:50:48 shmdt: errno = 22
10:50:48 create_tcb: cannot allocate memory
10:50:49 shmat: [ENOMEM][12]: out of available data space, checksystem MAXMEM
10:50:49 shmdt: errno = 22
10:50:49 create_tcb: cannot allocate memory
10:50:49 Assert Failed: Invalid Mutex Type
10:50:49 Informix Dynamic Server Version 9.30.TC1
10:50:49 Who: Session(1045, diners2@80010110, -1, 0)
Thread(57262, xchg_1.0, 0, 3)
File: mt.c Line: 7556
10:50:49 stack trace for pid 4064 written to C:\\tmp\\af.e396be59
10:50:49 See Also: C:\\tmp\\af.e396be59, shmem.e396be59.0
10:50:51 shmat: [ENOMEM][12]: out of available data space, checksystem MAXMEM
10:50:51 shmdt: errno = 22
10:50:51 create_tcb: cannot allocate memory
10:50:51 (3971) connection rejected - too many users, or invalid username
10:50:54 shmat: [ENOMEM][12]: out of available data space, checksystem MAXMEM
10:50:54 shmdt: errno = 22
10:50:54 create_tcb: cannot allocate memory
Our Informix Version is 9.30.TC1 and running on Windows 2000 with 4GB
Memory.
Some of important our Informix ONCONFIG parameters are :-
# Physical Log Configuration
PHYSDBS rootdbs # Location (dbspace) of physical log
PHYSFILE 200000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 79 # Number of logical log files
LOGSIZE 20000 # Logical log size (Kbytes)LOG_BACKUP_MODE MANUAL # Logical log backup mode (MANUAL,
CONT)
# System Configuration
SERVERNUM 0 # Unique id corresponding to a serverinstance
DBSERVERNAME prime_live # Name of default Dynamic Server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE onsoctcp,1,,NET # Override sqlhosts nettypeparameters
DEADLOCK_TIMEOUT 60 # Max time to wait of lock indistributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No =
0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 formulti-processor
NUMCPUVPS 3 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vpsto one
NOAGE 0 # Process aging
AFF_SPROC 1 # Affinity start processor
AFF_NPROCS 3 # Affinity number of processors
# Shared Memory Parameters
LOCKS 200000 # Maximum number of locks
BUFFERS 128000 # Maximum number of shared buffers
NUMAIOVPS 64 # Number of IO vps
PHYSBUFF 512 # Physical log buffer size (Kbytes)
LOGBUFF 512 # Logical log buffer size (Kbytes)
CLEANERS 10 # Number of buffer cleaner processes
SHMBASE 0xc000000 # Shared memory base address
SHMVIRTSIZE 768000 # initial virtual shared memorysegment size
SHMADD 256192 # Size of new shared memory segments
(Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes).
0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
LRUS 8 # Number of LRU queues
LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaninglimit
LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit
TXTIMEOUT 0x12c # Transaction timeout (in sec)
STACKSIZE 512 # Stack size (Kbytes)
Can you please let me know why this error occurs. Is there any tune up
required in our parameters..
Dhaya
We have the following memory in our Windows 2000 Server :-
Physical Memory available to Windows : 3,669,488 KB.
My current Userthread list is below :-
Informix Dynamic Server Version 9.30.TC1 -- On-Line -- Up 02:52:40
-- 1571712 Kbytes
1650 active, 1792 total, 1719 maximum concurrent
Probably time for the DB to Crash.. Let me knock of some users.
Dhaya
Windows.. ahhh y...ou may not be able to address more than 2GB without
some changes to some windows system files
oh and 9.30.Tc1 is obsolete.
Upgrade to a supported version then put a call in to technical support
10:50:54 shmat: [ENOMEM][12]: out of available data space, checksystem MAXMEM
10:50:54 shmdt: errno = 22
10:50:54 create_tcb: cannot allocate memorySHMADD 256192 # Size of new shared memory segments
(Kbytes)
hmmm
oh and
10:46:50 Maximum server connections 136
doesn't match with
Informix Dynamic Server Version 9.30.TC1 -- On-Line -- Up 02:52:40
-- 1571712 Kbytes
1650 active, 1792 total, 1719 maximum concurrent
Doubt its the number of users. I still suspect i is a job you tried to
run that wanted loads more memory
When this is really true:
- 1700 Userthreads
- Maximum server connections 136
you should check your PDQ usage and settings...
Search for many RSAM threads (onstat -g ses | sort -nrk 6) and/or
sessions with high memory usage (onstat -g ses | sort -nrk 7).
Regards,
try_and_err
PS: When the above syntax (sort) don't work on your windows server -
install GNU tools for Windows.
sdhaya@hotmail.com schrieb:
> When even we reach around 1700 Userthreads, the database crashes. Find
> below part of the informix.
>
> 10:46:50 Maximum server connections 136
We use strictly necessary cookies to make this site work. With your
consent we’d also use optional cookies for analytics and marketing. You can accept all,
reject all, or choose. Read our Cookie Policy.