IBM Support

SE45238 - OSP-DB-OTHER-INCORROUT DRDA CONNECTION HANGS ON A SELECT
STATEMENT

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 APAR (Authorized Program Analysis Report)

Abstract

OSP-DB-OTHER-INCORROUT DRDA CONNECTION HANGS ON A SELECT
STATEMENT

Error Description

Using Microsoft's OLE DB provider to make a DRDA connection to  
the IBM i hangs when running certain SELECT statements. A TRCCNN
communications trace shows the client sends a Open Query        
(OPNQRY) request to the IBM i, but the IBM i does not respond.  
The call stack for the QRWTSRVR prestart job on the IBM i shows
it is sitting on QSOSRV1 QSYS 9 recv. The IBM i is waiting for  
the client to respond.                                          

Problem Summary

****************************************************************
* PROBLEM: (SE45238) Licensed Program = 5770SS1                *
*           Incorrect Output Causes a Severe Problem           *
****************************************************************
* USERS AFFECTED: All IBM i opreating system Distributed       *
*                 Relational Database Access (DRDA) users      *
*                 for i 7.1.                                   *
****************************************************************
* RECOMMENDATION: Apply PTF SI41427 for i 7.1.                 *
****************************************************************
                                                               
Using Microsoft's OLE DB provider client to make a DRDA        
connection to the IBM i server hangs when running certain SELECT
statements. A TRCCNN communications trace shows the client sends
a Open Query (OPNQRY) request to the IBM i, but the server does
not respond. The call stack for the QRWTSRVR prestart job on the
IBM i shows it is sitting on QSOSRV1 QSYS recv.                
                                                               
This only occurs for pre-SQLAM 7 clients querying an v6r1 or    
v7r1 IBM i server when the particular table that is querying    
reaches a non-specific amount.                                  

Problem Conclusion

                                                               
Internal calculations for determination of query data length in
the query block were incorrect resulting in IBM i server        
specifying that there is more query data than there actually is
in the current query block.  Since the length of the first query
block is incorrect, our send routines fail and never send the  
data flows back to the client.                                  
                                                               
This only occurs when the server is fetching the last row of    
data and has to place a SQLCA (which indicates the last row of  
data) into a null row, and the null row does not fit in the    
current query block.  At this point, the SQLCA is spanned across
the remaining space of the current query block and a new query  
block.                                                          
                                                               
This is something that will fail intermittently for users using
pre-SQLAM7 clients querying a v6r1 or v7r1 server depending on  
the size of the row data and number of fields in the table.    
                                                               
Outside of varying the query data size amount and number of    
fields in the table, there is no way for the end user to know  
when the hang condition will occur.                            

Temporary Fix

                        *********                              
                        * HIPER *                              
                        *********                              

Comments

Internal calculations for determination of query data length in
the query block were incorrect resulting in IBM i server        
specifying that there is more query data than there actually is
in the current query block.  Since the length of the first query
block is incorrect, our send routines fail and never send the  
data flows back to the client.                                  
                                                               
This only occurs when the server is fetching the last row of    
data and has to place a SQLCA (which indicates the last row of  
data) into a null row, and the null row does not fit in the    
current query block.  At this point, the SQLCA is spanned across
the remaining space of the current query block and a new query  
block.                                                          
                                                               
This is something that will fail intermittently for users using
pre-SQLAM7 clients querying a v6r1 or v7r1 server depending on  
the size of the row data and number of fields in the table.    
                                                               
Outside of varying the query data size amount and number of    
fields in the table, there is no way for the end user to know  
when the hang condition will occur.                            

Circumvention


Increasing or decreasing the row data or number of fields in the

table will circumvent.                                          

PTFs Available

R710 SI42658 PTF Cover Letter   1116

Affected Modules

         
         

Affected Publications

Summary Information

Status............................................ CLOSED PER
HIPER........................................... Yes
Component.................................. 5770SS1CM
Failing Module.......................... RCHMGR
Reported Release................... R710
Duplicate Of..............................




System i Support

IBM disclaims all warranties, whether express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright © 1996,1997,1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult the Terms of use link for trademark information

[{"Type":"MASTER","Line of Business":{"code":"LOB08","label":"Cognitive Systems"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.1.0"},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG15Q","label":"APARs - OS\/400 General"},"Component":"","ARM Category":[],"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"V7R1M0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
15 May 2011