IBM Support

Error 25571 Cannot create a user thread when trying to connect after running in single user mode ( onmode -j )

Troubleshooting


Problem

Recently you swithced to single user mode using onmode -j. Now you have changed back to multi-user or online mode using onmode -m. You are trying to connect to the database server but seeing 25571 messages in the online.log: listener-thread: err = -25571: oserr = 0: errstr = : Cannot create a user thread. The error -25571 has been encountered 60 times since it was last printed to the log.

Cause


Going into single user mode ( onmode -j ) kills all non-DBSA/informix user connections to the server. This kill is not a graceful process so it will leave TCP/IP connections on the port with a status of FIN_WAIT_2. There is a parameter called TCP_FIN_WAIT_2_FLUSH_INTERVAL that sets the amount of time that a connection will stay in this state. The default value for this parameter can be over 10 minutes. If many connections are killed by onmode -j, then you could have a large backlog of TCP/IP connections with a status of FIN_WAIT_2 waiting for the OS to finally close them after the interval defined by TCP_FIN_WAIT_2_FLUSH_INTERVAL has passed. Depending on the queue size defined for the port and the number of killed connections on the port you might not be able to fit any more connections in the queue for that port.

onmode -j is designed to kill the connections in this manner so you can enter single user mode immediately. When running onmode -j you are asked if you want to kill all non-DBSA/informix user connections to the server.

Diagnosing The Problem


netstat -an | grep <informix port number>

The state of the connections to the port will show FIN_WAIT_2 and CLOSE_WAIT.

Resolving The Problem

  • If you want to change mode to single user but there are many connections to the server consider doing a graceful shutdown ( onmode -s ) first that won't allow new connections but will allow the existing connections to complete.
  • Consider bringing the engine offline to more cleanly, but still quickly, drop all the connections then online then single user mode like this; onmode -ky;oninit;onmode -jy
  • Decrease the value of TCP_FIN_WAIT_2_FLUSH_INTERVAL. Please consult your system administrator for more information about this option.

[{"Product":{"code":"SSGU8G","label":"Informix Servers"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"--","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"11.5;11.7;12.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
16 June 2018

UID

swg21670639