IPA 1 GB memory limit error

 6 Replies
 3 Subscribed to this topic
 52 Subscribed to this forum
Sort:
Author
Messages
Quarantine
Basic Member
Posts: 24
Basic Member

    Infor recently instituted a 1 GB memory limit warning message on Cloudsuite MT that comes as a error in the workunit logs.It has then been hastily updated to 100 GB but it is impacting flows that are used as extract flows out of  Landmark.

     

    Ways to reduce the memory load other than reducing the number of assign nodes and writing to messagebuilder and then ftping to file at every 100 records or so.

    The memory consumed in Landmark calls is huge. any way to reduce that?

    John Henley
    Posts: 3353
      My guess would be that Infor is trying to coax you into using Replication Sets? What exactly are you trying to do? For the landmark calls make sure you are only asking for fields you need, and if you're doing multi-record queries, etc. adjust the page size.
      Thanks for using the LawsonGuru.com forums!
      John
      Carl.Seay
      Veteran Member
      Posts: 109
      Veteran Member
        We just had a work unit say it consumed 4,000 GB of memory. Their calculations may need work.

        There's also a new 999,000 node limit that will Fail the flow.
        Carl.Seay
        Veteran Member
        Posts: 109
        Veteran Member
          We received some recommendations from Russel Cornelson at Infor on this topic (paraphrased):
          - When we assign variables in JavaScript, we often assign it to itself in the Assign node so it will display in the log. This loads the variable into memory twice, and is especially an issue with Array variables.
          - If running on MT, the File Access Append node reads the DB record into memory each time. So it's more efficient to just build out the entire file in a Message Builder node than to write to file every X number of lines.
          - Modifying a message builder variable in JavaScript converts it to a String, which consumes more memory.
          - Modifying a string repeatedly creates a new memory object each time.
          - Infor is working on lowering the amount of memory consumed by Landmark Transaction nodes. Removing unused fields may help though.
          David Williams
          Veteran Member
          Posts: 1127
          Veteran Member

            Carl,

            Did Russ say anything about using the StringBuilder function in IPA? This was recommened to one of my clients instead of building an output file with a JavaScript Expression.

            DW

            David Williams
            mrabas
            New Member
            Posts: 2
            New Member

              Landmark transaction nodes have a setting called "Use dataviews".  Changing this from default to "NO" will dramatically reduce your memory.  However, there are some caveats that caused some queries to fail if we were filtering on a related business class field.  Here is what Infor told us about the requirements to turning off Dataviews:

              "This is a MultipleRecordQuery with no keys provided and filtering on relations only, data views off will not work since no keys are provided. For the other IPA's with queries set to DataView off will work unless they meet the requirement as stated above then you have to turn on the dataview."

              Maybe someone else can chime in on what Dataviews actually does, but from my understanding is that it pulls in a lot of related data that you may not have specified in your query.

               

              Other memory savings trick we use for concatenating strings.  May be better ways but I've found ~10x memory reduction.

              When looping through data, append your strings to an array then do array.join(''.  Push those lines to another array and do array.join('/r/n'.  You could probably combine that with chunking up writes to file if needed.

              Robert
              Veteran Member
              Posts: 82
              Veteran Member
                If this is an outbound interface, have you considered a back end service and REST API as alternative to IPA ? That eliminates any memory issues.