Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?

DB2ResultSet.Read() ERROR [24000] [IBM] CLI0115E  Invalid cursor state.

Posted on 2017-06-22
4
Medium Priority
?
57 Views
Last Modified: 2017-07-31
We have problem with the application run DB2ResultSet.Read(). sometime will get EROR [24000] [IBM] CLI0115E  Invalid cursor state. SQLSTATE=24000.

Database : DB2 for Linux, UNIX and Windows V10.5
Client: Windows 7 64bit

Method:
public int EventGetEvSegmentCnt(string SegmentID, string strEvntGroup)
        {
            int strGroupCnt = 0;
            string strSQL = string.Empty;
            DB2ResultSet objRs;
            if (string.IsNullOrEmpty(SegmentID) || string.IsNullOrEmpty(strEvntGroup))
            {
                strGroupCnt = 0;
            }
            else
            {
                strSQL = " SELECT COUNT(EVNT_CODE) AS EVNT_GROUP_COUNT FROM E_SEGMENT_EVENT WHERE C_SEGMENT_ID = " + SegmentID + " AND EVNT_GROUP = " + strEvntGroup;
                Common.DatabaseHelper helper = new Common.DatabaseHelper();
                objRs = helper.ExecuteResultSet(strSQL);
                if (objRs.Read())
                {
                    strGroupCnt = 0;
                }
                else
                {
                    strGroupCnt = int.Parse(objRs["EVNT_GROUP_COUNT"].ToString());
                }
            }
            return strGroupCnt;

        }

Error Message:
[Information]      System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> IBM.Data.DB2.DB2Exception (0x80004005): ERROR [24000] [IBM] CLI0115E  Invalid cursor state. SQLSTATE=24000
   at IBM.Data.DB2.DB2DataBuffer.FetchScroll(FetchType fetchType, Int64 offset, Int32 numRows)
   at IBM.Data.DB2.DB2DataBuffer.FetchNext()
   at IBM.Data.DB2.DB2DataReader.Fetch(FetchDirection direction, Int64 offset, Boolean& isDeleted)
   at IBM.Data.DB2.DB2ResultSet.Read()

Please help!!!!
Thanks
0
Comment
Question by:water best
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 35

Expert Comment

by:Gary Patterson
ID: 42189440
Can you show DDL for table or view being used. Row count, and ideally a visual explain of the query that failed?
0
 

Author Comment

by:water best
ID: 42189563
DDL:
CREATE TABLE "ABC"."E_SEGMENT_EVENT" (
            "CC_SEGMENT_ID" INTEGER NOT NULL,
            "EVNT_CODE" CHAR(4) NOT NULL,
            "SGEV_SEQ" INTEGER NOT NULL,
            "SGEV_SOM_HH" INTEGER,
            "SGEV_SOM_MM" INTEGER,
            "SGEV_SOM_SS" INTEGER,
            "SGEV_SOM_FF" INTEGER,
            "SGEV_CREATE_DATE" TIMESTAMP NOT NULL,
            "SGEV_CREATE_USER_ID" VARCHAR(10) NOT NULL,
            "EVNT_GROUP" INTEGER
      )
      ORGANIZE BY ROW
      DATA CAPTURE NONE
      IN "ABCTS1SPACE2" INDEX IN "ABCTS2SPACE2"
      COMPRESS NO;

CREATE INDEX "ABC"."FK_E_SEGMENT_EVNT2"
      ON "ABC"."E_SEGMENT_EVENT"
      ("CC_SEGMENT_ID"            ASC)
      PCTFREE 10
      MINPCTUSED 0
      ALLOW REVERSE SCANS
      PAGE SPLIT SYMMETRIC
      COMPRESS NO;

ALTER TABLE "ABC"."E_SEGMENT_EVENT" ADD CONSTRAINT "SQL160223095623530" PRIMARY KEY
      ("CC_SEGMENT_ID",
       "SGEV_SEQ");

ALTER TABLE "ABC"."E_SEGMENT_EVENT" ADD CONSTRAINT "F_REF_540" FOREIGN KEY
      ("EVNT_CODE")
      REFERENCES "ABC"."EVENT"
      ("EVNT_CODE")
      ON DELETE RESTRICT;

GRANT ALTER ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

GRANT CONTROL ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR";

GRANT DELETE ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

GRANT INDEX ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

GRANT INSERT ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

GRANT REFERENCES ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

GRANT SELECT ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

GRANT SELECT ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "CPL";

GRANT SELECT ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "CPLDPR";

GRANT SELECT ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "MAO";

GRANT UPDATE ON TABLE "ABC"."E_SEGMENT_EVENT" TO USER "ADMINISTRATOR" WITH GRANT OPTION;

737 row count.

In common case, the query not failed. but repeatedly run sometimes it will show this error. This error also show up in other DB2ResultSet.Read() or DB2ResultSet.ReadFirst()  function.
Capture.PNG
rsRead1.PNG
0
 
LVL 46

Expert Comment

by:Kent Olsen
ID: 42190502
Hi Best,

Does the query always fail or is the failure intermittent?
Is Common.DataHelper a standard package or something that your shop has developed?


Following the stack trace, ObjRs.Read() calls IBM.Data.DB2.DB2ResultSet.Read() and the exception is occurring in FetchScroll.

Has the database connection been opened prior to this function is called?  
Do you know if ObjRs is using SQLCA or trying to manage its own cursor?
0
 

Author Comment

by:water best
ID: 42192473
I add pooling = false to connectionString and test it for a while. So far so good. Thanks for helping.
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Join & Write a Comment

Recursive SQL in UDB/LUW (you can use 'recursive' and 'SQL' in the same sentence) A growing number of database queries lend themselves to recursive solutions.  It's not always easy to spot when recursion is called for, especially for people una…
Recursive SQL in UDB/LUW (it really isn't that hard to do) Recursive SQL is most often used to convert columns to rows or rows to columns.  A previous article described the process of converting rows to columns.  This article will build off of th…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question