Skip to main content


I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL


I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

This can be an issue in large xml files that have a single root tag that encloses the entire document.

The way that the XML-IO works is that when you issue your first READ filename, the entire contents of this document will be read into memory creating an internal tree-based representation of that document.

It looks like you are using Net Express 5.0 and I do believe that this performance on large xml files has been improved in Net Express 5.1 so upgrading may be an option.

There are also a couple of KB articles that you should look at that show an alternate way of reading in these large xml documents using the CBL_ byte stream routines in conjunction with the XML-IO.

Please see the following:

Questions on using large XML files with Net Express

Demo - on the use of large XML files

Thanks



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

I work with :

Integrated Development Environment  5.106.0079

Dialog System                                           5.106.0079

Enterprise Server                                      5.106.0079

Interface Mapping Toolkit                        5.106.0079

SQL Option for DB2®                               5.106.0079

No FixPacks Installed

Are these versions good ?

If not, do i have to fix/upgrade the runtime version also ?



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

I work with :

Integrated Development Environment  5.106.0079

Dialog System                                           5.106.0079

Enterprise Server                                      5.106.0079

Interface Mapping Toolkit                        5.106.0079

SQL Option for DB2®                               5.106.0079

No FixPacks Installed

Are these versions good ?

If not, do i have to fix/upgrade the runtime version also ?



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

I work with :

Integrated Development Environment  5.106.0079

Dialog System                                           5.106.0079

Enterprise Server                                      5.106.0079

Interface Mapping Toolkit                        5.106.0079

SQL Option for DB2®                               5.106.0079

No FixPacks Installed

Are these versions good ?

If not, do i have to fix/upgrade the runtime version also ?



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

No those are fine and they indicate that you are actually using NX 5.1 and not 5.0.

The latest wrappack is wrappack 9 and you are at wrappack 6 so there have been a number of bug fixes since your version, although I do not believe that they would address the XML performance problem that you are experiencing.

Take a look at the article links that I posted and see if this may be a viable alternative approach for you.

Thanks



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

Oke.

I'm going to read the articles and pick one out to use.

Thanks.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

Oke.

I'm going to read the articles and pick one out to use.

Thanks.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

The basic program is the IOxml.cbl example, you gave me.


I isolate the XML-streamAPart with "perform IsolateXMLstreamAPart"

In the display of streampart I see the complete data between <NatuurlijkePersoon> and </NatuurlijkePersoon>

Then I perform ReadPartOfXMLstream

In the display of the record of the XMLfilepart I see the <NatuurlijkePersoon> and </NatuurlijkePersoon>
but I don't see the data between <Borderelinformatie> and </Borderelinformatie>.

How get I the data ?
Read with key <Borderelinformatie> or someting else ?

Thanks

============================================================================================================

XML-File:

<NatuurlijkePersoon>
    <Burgerservicenummer>999999999</Burgerservicenummer>
    <DatumGeboorte>1921-12-12</DatumGeboorte>
    <Geslachtsnaam>Testgeval-1</Geslachtsnaam>
    <Geslacht>V</Geslacht>
    <Voorletters>XX</Voorletters>

    <Borderelinformatie>
      <SoortUitkering>01</SoortUitkering>
      <Inhouding>
          <BedragIngehouden>0001035.45</BedragIngehouden>
          <RechtsmaandInhouding>2014-01</RechtsmaandInhouding>
      </Inhouding>
      <Inhouding>
          <BedragIngehouden>0001099.45</BedragIngehouden>
          <RechtsmaandInhouding>2013-12</RechtsmaandInhouding>
     </Inhouding>
    </Borderelinformatie>

</NatuurlijkePersoon>


XD XMLfilePart

01 pXXXXXX-NatuurlijkePersoon
     identified by "NatuurlijkePersoon"
     count in pXXXXXX-NatuurlijkePersoon-cnt.
 03 pXXXXXX-Burgerservicenummer PIC S9(9) identified by
     "Burgerservicenummer" count in
     pXXXXXX-Burgerservicenummer-cn.
 03 pXXXXXX-DatumGeboorte
      PIC x(10) identified by "DatumGeboorte"
      count in pXXXXXX-DatumGeboorte-cnt.
 03 pXXXXXX-Geslachtsnaam
       PIC X(50) identified by "Geslachtsnaam"
      count in pXXXXXX-Geslachtsnaam-cnt.
 03 pXXXXXX-Geslacht PIC X(1) identified by "Geslacht" count in
      pXXXXXX-Geslacht-count.
 03 pXXXXXX-VoorvoegselGeslachtsnm PIC X(10) identified by
      "VoorvoegselGeslachtsnaam" count in
      pXXXXXX-VoorvGeslachtsnaam-cnt.
 03 pXXXXXX-Voorletters PIC X(15) identified by "Voorletters"
      count in pXXXXXX-Voorletters-cnt.
 03 pXXXXXX-DatumOverlijden PIC x(10) identified by
      "DatumOverlijden" count in pXXXXXX-DatumOverlijden-cnt.

 03 pXXXXXX-BorderelInformatie
      identified by "Borderelinformatie"
      count in pXXXXXX-Borderel-info-cnt.
     04 pXXXXXX-DatumVanaf
          PIC X(10) identified by "DatumVanaf" count
          in pXXXXXX-DatumVanaf-cnt.
    04 pXXXXXX-DatumTm PIC X(10) identified by "DatumTm" count in
         pXXXXXX-DatumTm-cnt.
   04 pXXXXXX-BedragIngehouden PIC S9(9)V9(2) identified by
        "BedragIngehouden" count in pXXXXXX-BedragIngehouden-cnt.
   04 pXXXXXX-RechtsmaandInhouding PIC X(80) identified by
        "RechtsmaandInhouding" count in
         pXXXXXX-RechtsmndInhouding-cnt.
   04 pXXXXXX-BedragTerugbetaald PIC S9(9)V9(2) identified by
        "BedragTerugbetaald" count in
         pXXXXXX-BedragTerugbetaald-cnt.
   04 pXXXXXX-Rechtsmaandterugbet PIC X(07) identified by
        "Rechtsmaandterugbetaling" count in
         pXXXXXX-Rechtsmndterugbet-cnt.
   04 pXXXXXX-DatumVanafSchorsing PIC X(10) identified by
        "DatumVanafSchorsing" count in
         pXXXXXX-DatumVanafSchors-cnt.
   04 pXXXXXX-DatumtotTmAOWrecht PIC X(10) identified by
        "DatumtotTmAOWrecht" count in
        pXXXXXX-DatumtotTmAOWrecht-cnt.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

The basic program is the IOxml.cbl example, you gave me.


I isolate the XML-streamAPart with "perform IsolateXMLstreamAPart"

In the display of streampart I see the complete data between <NatuurlijkePersoon> and </NatuurlijkePersoon>

Then I perform ReadPartOfXMLstream

In the display of the record of the XMLfilepart I see the <NatuurlijkePersoon> and </NatuurlijkePersoon>
but I don't see the data between <Borderelinformatie> and </Borderelinformatie>.

How get I the data ?
Read with key <Borderelinformatie> or someting else ?

Thanks

============================================================================================================

XML-File:

<NatuurlijkePersoon>
    <Burgerservicenummer>999999999</Burgerservicenummer>
    <DatumGeboorte>1921-12-12</DatumGeboorte>
    <Geslachtsnaam>Testgeval-1</Geslachtsnaam>
    <Geslacht>V</Geslacht>
    <Voorletters>XX</Voorletters>

    <Borderelinformatie>
      <SoortUitkering>01</SoortUitkering>
      <Inhouding>
          <BedragIngehouden>0001035.45</BedragIngehouden>
          <RechtsmaandInhouding>2014-01</RechtsmaandInhouding>
      </Inhouding>
      <Inhouding>
          <BedragIngehouden>0001099.45</BedragIngehouden>
          <RechtsmaandInhouding>2013-12</RechtsmaandInhouding>
     </Inhouding>
    </Borderelinformatie>

</NatuurlijkePersoon>


XD XMLfilePart

01 pXXXXXX-NatuurlijkePersoon
     identified by "NatuurlijkePersoon"
     count in pXXXXXX-NatuurlijkePersoon-cnt.
 03 pXXXXXX-Burgerservicenummer PIC S9(9) identified by
     "Burgerservicenummer" count in
     pXXXXXX-Burgerservicenummer-cn.
 03 pXXXXXX-DatumGeboorte
      PIC x(10) identified by "DatumGeboorte"
      count in pXXXXXX-DatumGeboorte-cnt.
 03 pXXXXXX-Geslachtsnaam
       PIC X(50) identified by "Geslachtsnaam"
      count in pXXXXXX-Geslachtsnaam-cnt.
 03 pXXXXXX-Geslacht PIC X(1) identified by "Geslacht" count in
      pXXXXXX-Geslacht-count.
 03 pXXXXXX-VoorvoegselGeslachtsnm PIC X(10) identified by
      "VoorvoegselGeslachtsnaam" count in
      pXXXXXX-VoorvGeslachtsnaam-cnt.
 03 pXXXXXX-Voorletters PIC X(15) identified by "Voorletters"
      count in pXXXXXX-Voorletters-cnt.
 03 pXXXXXX-DatumOverlijden PIC x(10) identified by
      "DatumOverlijden" count in pXXXXXX-DatumOverlijden-cnt.

 03 pXXXXXX-BorderelInformatie
      identified by "Borderelinformatie"
      count in pXXXXXX-Borderel-info-cnt.
     04 pXXXXXX-DatumVanaf
          PIC X(10) identified by "DatumVanaf" count
          in pXXXXXX-DatumVanaf-cnt.
    04 pXXXXXX-DatumTm PIC X(10) identified by "DatumTm" count in
         pXXXXXX-DatumTm-cnt.
   04 pXXXXXX-BedragIngehouden PIC S9(9)V9(2) identified by
        "BedragIngehouden" count in pXXXXXX-BedragIngehouden-cnt.
   04 pXXXXXX-RechtsmaandInhouding PIC X(80) identified by
        "RechtsmaandInhouding" count in
         pXXXXXX-RechtsmndInhouding-cnt.
   04 pXXXXXX-BedragTerugbetaald PIC S9(9)V9(2) identified by
        "BedragTerugbetaald" count in
         pXXXXXX-BedragTerugbetaald-cnt.
   04 pXXXXXX-Rechtsmaandterugbet PIC X(07) identified by
        "Rechtsmaandterugbetaling" count in
         pXXXXXX-Rechtsmndterugbet-cnt.
   04 pXXXXXX-DatumVanafSchorsing PIC X(10) identified by
        "DatumVanafSchorsing" count in
         pXXXXXX-DatumVanafSchors-cnt.
   04 pXXXXXX-DatumtotTmAOWrecht PIC X(10) identified by
        "DatumtotTmAOWrecht" count in
        pXXXXXX-DatumtotTmAOWrecht-cnt.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

The basic program is the IOxml.cbl example, you gave me.


I isolate the XML-streamAPart with "perform IsolateXMLstreamAPart"

In the display of streampart I see the complete data between <NatuurlijkePersoon> and </NatuurlijkePersoon>

Then I perform ReadPartOfXMLstream

In the display of the record of the XMLfilepart I see the <NatuurlijkePersoon> and </NatuurlijkePersoon>
but I don't see the data between <Borderelinformatie> and </Borderelinformatie>.

How get I the data ?
Read with key <Borderelinformatie> or someting else ?

Thanks

============================================================================================================

XML-File:

<NatuurlijkePersoon>
    <Burgerservicenummer>999999999</Burgerservicenummer>
    <DatumGeboorte>1921-12-12</DatumGeboorte>
    <Geslachtsnaam>Testgeval-1</Geslachtsnaam>
    <Geslacht>V</Geslacht>
    <Voorletters>XX</Voorletters>

    <Borderelinformatie>
      <SoortUitkering>01</SoortUitkering>
      <Inhouding>
          <BedragIngehouden>0001035.45</BedragIngehouden>
          <RechtsmaandInhouding>2014-01</RechtsmaandInhouding>
      </Inhouding>
      <Inhouding>
          <BedragIngehouden>0001099.45</BedragIngehouden>
          <RechtsmaandInhouding>2013-12</RechtsmaandInhouding>
     </Inhouding>
    </Borderelinformatie>

</NatuurlijkePersoon>


XD XMLfilePart

01 pXXXXXX-NatuurlijkePersoon
     identified by "NatuurlijkePersoon"
     count in pXXXXXX-NatuurlijkePersoon-cnt.
 03 pXXXXXX-Burgerservicenummer PIC S9(9) identified by
     "Burgerservicenummer" count in
     pXXXXXX-Burgerservicenummer-cn.
 03 pXXXXXX-DatumGeboorte
      PIC x(10) identified by "DatumGeboorte"
      count in pXXXXXX-DatumGeboorte-cnt.
 03 pXXXXXX-Geslachtsnaam
       PIC X(50) identified by "Geslachtsnaam"
      count in pXXXXXX-Geslachtsnaam-cnt.
 03 pXXXXXX-Geslacht PIC X(1) identified by "Geslacht" count in
      pXXXXXX-Geslacht-count.
 03 pXXXXXX-VoorvoegselGeslachtsnm PIC X(10) identified by
      "VoorvoegselGeslachtsnaam" count in
      pXXXXXX-VoorvGeslachtsnaam-cnt.
 03 pXXXXXX-Voorletters PIC X(15) identified by "Voorletters"
      count in pXXXXXX-Voorletters-cnt.
 03 pXXXXXX-DatumOverlijden PIC x(10) identified by
      "DatumOverlijden" count in pXXXXXX-DatumOverlijden-cnt.

 03 pXXXXXX-BorderelInformatie
      identified by "Borderelinformatie"
      count in pXXXXXX-Borderel-info-cnt.
     04 pXXXXXX-DatumVanaf
          PIC X(10) identified by "DatumVanaf" count
          in pXXXXXX-DatumVanaf-cnt.
    04 pXXXXXX-DatumTm PIC X(10) identified by "DatumTm" count in
         pXXXXXX-DatumTm-cnt.
   04 pXXXXXX-BedragIngehouden PIC S9(9)V9(2) identified by
        "BedragIngehouden" count in pXXXXXX-BedragIngehouden-cnt.
   04 pXXXXXX-RechtsmaandInhouding PIC X(80) identified by
        "RechtsmaandInhouding" count in
         pXXXXXX-RechtsmndInhouding-cnt.
   04 pXXXXXX-BedragTerugbetaald PIC S9(9)V9(2) identified by
        "BedragTerugbetaald" count in
         pXXXXXX-BedragTerugbetaald-cnt.
   04 pXXXXXX-Rechtsmaandterugbet PIC X(07) identified by
        "Rechtsmaandterugbetaling" count in
         pXXXXXX-Rechtsmndterugbet-cnt.
   04 pXXXXXX-DatumVanafSchorsing PIC X(10) identified by
        "DatumVanafSchorsing" count in
         pXXXXXX-DatumVanafSchors-cnt.
   04 pXXXXXX-DatumtotTmAOWrecht PIC X(10) identified by
        "DatumtotTmAOWrecht" count in
        pXXXXXX-DatumtotTmAOWrecht-cnt.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

I have found the answere. It is no longer necessary to respond on my question.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

I have found the answere. It is no longer necessary to respond on my question.



I have a challenge to solve the following....

The first read of an XML-file in my COBOL program takes 40 minutes.
The size of the file is 55 Mb.

In my opinion, 40 minutes is too long for the first read.


How can I fix this time-problem ?

SELECT     XXX2CAK     ASSIGN TO WS-XXX2CAK-NAAM
ORGANIZATION              IS XML
DOCUMENT-TYPE         IS "Borderel.xsd"
FILE STATUS                  IS WS-XXX2CAK-STATUS.

----------------------------------------------------------------------

XD XXX2CAK.

01 CAK999-Borderel identified by "Borderel"       count in CAK999-Borderel-cnt.
    02 CAK999-Bericht identified by "Bericht" count in  CAK999-Bericht-cnt.
       03 CAK999-CodeBericht PIC 9(03) identified by "CodeBericht"
             count in CAK999-CodeBericht-cnt.
       03 etc.....

    02 CAK999-Gegevenslevering identified by "Gegevenslevering"
              count in CAK999-Gegevenslevering-count.
      03 CAK999-AantalDetailRecords PIC S9(6) identified by
           "AantalDetailRecords" count in
           CAK999-AantalDetailRecords-cnt.
     03 etc...

    02 CAK999-NatuurlijkePersoon
            occurs 1 to 130000
            depending on CAK999-NatuurlijkePersoon-cnt
            identified by "NatuurlijkePersoon"
               count in CAK999-NatuurlijkePersoon-cnt.
     03 CAK999-Persoonsnummer PIC S9(9) identified by
              "Persoonsnummer" count in
             CAK999-Persoonsnummer-cnt.
     03 etc......

-----------------------------------------------------------------------

start XXX2CAK key is CAK999-Borderel

READ XXX2CAK


#NetExpress5.0
#COBOL

I have found the answere. It is no longer necessary to respond on my question.