"Warning: Main thread waiting for qnf for 1980 seconds [sp_opst_mt (for o.nams-o.nams queue QueToStlNams)/16334]"
"Warning: Main thread waiting for qnf for 1920 seconds [sp_opst_mt (for o.nams-o.nams queue QueToStlNams)/16334]"
When you get this warning, it indicates that the thread is stuck doing something in Oracle.
The main thread reads messages from the post queue, then dispatches the messages to the sql threads. It dispatches the messages by putting the message in the thread's queue. The thread queue is limited to grow to a certain size, which is specified by sp_opo_max_queue_size. When the main thread has filled the thread queue, it will wait for the sql thread to consume some of the messages that were dispatched to it. When the sql thread has consumed a message so that the thread queue is no longer full, it will send the qnf (queue not full) signal to the main thread.When you get this warning, this indicated that the thread is stuck doing something. Most likely it is stuck in a call to an oracle function.
If you are encountering any MTP deadlock issues then you may need to increase this parameter sp_opo_max_queue_size value.
sp_ctrl>list param all post (check the value for this parameter, default is 100)
sp_ctrl>set param sp_opo_max_queue_size 500
If it is followed by a MTP deadlock then call Support otherwise post will continue processes once this thread is released.