Announcement

Collapse
No announcement yet.

Mirth generate OutOfMemoryError: GC overhead limit exceeded when adding row in tmp .

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mirth generate OutOfMemoryError: GC overhead limit exceeded when adding row in tmp .

    Hi
    I try to generate a CSV from another CSV . All work pretty well however when I try to loop on a java array and complete the tmp outbound message.
    During the proacess I try to add missing row using
    Code:
    tmp.row += <row/>;
    this do the job but unfortunatelly generate memory issue when the CSV is too big .
    To solve this I did deactivate all part i'm adding row and inserted tons of rows manually in template hopping this will be enough .

    This is not state os the art so I wonder if there is a better way to proceed


    Code:
     cfxtable.forEach(function(Crow,Crowindex){// // for each CFXsamples (all rowws in cfx table)
    //tmp.row += <row/>; //add row
    
    
    cfxcol = Crow.split(",") // get all CFX data per row
    if (cfxcol[0] !== 'Well') {//skipp 1st row
    
    
    if (cfxcol[1] == FluorNames[Findex] && cfxcol[2] == TargetNames[Tindex] ){// generate page/target results to match RGQ
    
    
    tmp['row'][J]['column1'] = quote + cfxcol[1]+ ' ('+ cfxcol[2] +')' + quote //analysis title
    tmp['row'][J]['column2'] = quote +cfxcol[0] + quote//position
    tmp['row'][J].appendChild(<column/>);
    tmp['row'][J]['column4'] = quote + cfxcol[4] +quote // sample id
    tmp['row'][J]['column5'] = quote + convertToRGQType(cfxcol[3]) + quote //type
    tmp['row'][J]['column6'] = quote + cfxcol[5] + quote //ct
    tmp['row'][J].appendChild(<column/>);
    tmp['row'][J].appendChild(<column/>);
    tmp['row'][J]['column9'] = quote + generatergqresults(cfxcol[5],cfxcol[6]) + quote //quantif need to be changes function to get TargetNotdetected
    J++
    }
    }//*/
    
    })
    
    })
    
    })


  • #2
    Uh - don't do the entire CSV at once?

    Or add memory to the java VM?
    Diridium Technologies, Inc.
    https://diridium.com

    Comment


    • #3
      Thanks for feedback, I ramp up to 1024mb but still GC kicks in . Wonder if change in coding would be more safe .
      Code:
      appendChild(<column/>)
      do looks to trigger any issue
      I wonder if something like
      Code:
      tmp.appendChild(<row/>)
      or an alternative do exist that wouldn't trigger issue ?
      I do not understand why
      Code:
      tmp.row += <row/>;
      is generating full memory .




      Comment


      • #4
        How large is the CSV? What is the file size and row count?
        Jon Bartels

        Zen is hiring!!!!
        http://consultzen.com/careers/
        Talented healthcare IT professionals wanted. Engineers to sales to management.
        Good benefits, great working environment, genuinely interesting work.

        Comment


        • #5
          Hi, not so big 309 lines only 11 ko so expected really small .

          Comment


          • #6
            Oh. I’d bet you have non terminating loop
            Diridium Technologies, Inc.
            https://diridium.com

            Comment


            • #7
              in fact, if i comment the
              Code:
              tmp.row += <row/>
              in the loop, and keep all rest as it is, then all work fine in less than 1 sec .

              Of course I need to plan manually enough rows in my template to make it happen.

              Only the
              Code:
              tmp.row += <row/>
              create issue.

              Comment


              • #8
                Can you post a full channel export and a fake CSV?
                Diridium Technologies, Inc.
                https://diridium.com

                Comment


                • #9
                  Hi
                  yes here is channel and a example CSV
                  Thanks a lot for help
                  Attached Files

                  Comment

                  Working...
                  X