Increase IBM Informix Dynamic Server 11.5 STACKSIZE parameter to prevent Informix crashes

Technote (troubleshooting)


Problem(Abstract)

Having the STACKSIZE parameter set to 32, which is the default, may cause the IBM Informix Dynamic Server to crash

Symptom

If you experience a crash with your IBM Informix Server you will see something similar to the output below in your Informix log file.




    10:00:39 Logical Log 186920 Complete, timestamp: 0x5a8ba977.

    10:01:11 Logical Log 186921 Complete, timestamp: 0x5a8cbfc5.

    10:03:05 stack trace for pid 6503 written to /tmp/af.40d27a9

    10:03:05 Assert Failed: No Exception Handler

    10:03:05 IBM Informix Dynamic Server Version 11.50.UC3

    10:03:05 Who: Session(28, informix@thing1.thing2.com, 0, 0x4a37ab1c)

    Thread(37, btscanner_0, 4a34be04, 5)

    File: mtex.c Line: 481

    10:03:05 Results: Exception Caught. Type: MT_EX_OS, Context: mem

    10:03:05 Action: Please notify IBM Informix Technical Support.

    10:03:05 See Also: /tmp/af.40d27a9, shmem.40d27a9.0

    10:03:08 mtex.c, line 481, thread 37, proc id 6503, No Exception Handler.

    10:03:08 Fatal error in ADM VP at mt.c:13418

    10:03:08 Unexpected virtual processor termination, pid = 6503, exit = 0x100

    10:03:08 PANIC: Attempting to bring system down

    10:20:59 IBM Informix Dynamic Server Started.


Resolving the problem

This document is intended to prevent your IBM Informix Server used with the IBM Rational Synergy from crashing intermittently. This change is recommended for users on Rational Synergy 6.5 SP2, 6.6a, 7.0, 7.1, and 7.1a using Informix 11.5.

This can be done by changing the Informix parameter below in your Informix configuration file located in a path similar to the path below:


    Windows: %CCM_HOME%\informix\etc\ONCONFIG

    Unix: $CCM_HOME/informix/etc (file with the same name as your informix server)


Original: Setting:


    STACKSIZE 32


Recommended setting:

    STACKSIZE 64

If you experience a crash with your Informix Sever you will see something similar to the output below on your Informix log file.




    10:00:39 Logical Log 186920 Complete, timestamp: 0x5a8ba977.

    10:01:11 Logical Log 186921 Complete, timestamp: 0x5a8cbfc5.

    10:03:05 stack trace for pid 6503 written to /tmp/af.40d27a9

    10:03:05 Assert Failed: No Exception Handler

    10:03:05 IBM Informix Dynamic Server Version 11.50.UC3

    10:03:05 Who: Session(28, informix@thing1.thing2.com, 0, 0x4a37ab1c)

    Thread(37, btscanner_0, 4a34be04, 5)

    File: mtex.c Line: 481

    10:03:05 Results: Exception Caught. Type: MT_EX_OS, Context: mem

    10:03:05 Action: Please notify IBM Informix Technical Support.

    10:03:05 See Also: /tmp/af.40d27a9, shmem.40d27a9.0

    10:03:08 mtex.c, line 481, thread 37, proc id 6503, No Exception Handler.

    10:03:08 Fatal error in ADM VP at mt.c:13418

    10:03:08 Unexpected virtual processor termination, pid = 6503, exit = 0x100

    10:03:08 PANIC: Attempting to bring system down

    10:20:59 IBM Informix Dynamic Server Started.


Furthermore you can investigate the “af.*” file for more details about the crash.

Below is some details information about the STACKSIZE parameter setting in the Informix configuration file.

STACKSIZE

onconfig.std value

32 for 32-bit database servers
64 for 64-bit database servers

units

Kilobytes

range of values

32 through limit determined by the database server configuration and the amount of memory available

takes effect

When the database server is shut down and restarted

refer to

The following material:

  • Stacks, in the chapter on virtual processors in the IBM Informix Administrator's Guide
  • CREATE FUNCTION statement, in the IBM Informix Guide to SQL: Syntax

The STACKSIZE parameter specifies the stack size for the database server user threads. The value of STACKSIZE does not have an upper limit, but setting a value that is too large wastes virtual memory space and can cause swap-space problems.

For 32-bit platforms, the default STACKSIZE value of 32 kilobytes is sufficient for nonrecursive database activity. For 64-bit platforms, the recommended STACKSIZE value is 64 kilobytes. When the database server performs recursive database tasks, as in some SPL routines, for example, it checks for the possibility of stack-size overflow and automatically expands the stack.

User threads execute user-defined routines. To increase the stack size for a particular routine, use the stack modifier on the CREATE FUNCTION statement.

Warning:

Setting the value of STACKSIZE too low can cause stack overflow, the result of which is undefined but usually undesirable.

Related information

IBM Rational Synergy Information Center


Cross reference information
Segment Product Component Platform Version Edition
Software Development Rational Change General Information AIX, Linux, Solaris, Windows 4.6, 4.6.1, 4.7, 5.0, 5.1, 5.2, 5.2.0.1, 5.2.0.2

Rate this page:

(0 users)Average rating

Document information


More support for:

Rational Synergy
General Information

Software version:

6.5, 7.0, 7.1a, 7.1, 7.1.0.1, 7.1.0.2

Operating system(s):

AIX, Linux, Solaris, Windows

Reference #:

1423191

Modified date:

2010-05-25

Translate my page

Machine Translation

Content navigation