4 Replies Latest reply: Aug 20, 2009 7:38 AM by -==cfSearching==- RSS

    Rewriting cfx_fileReadLines

    kodemonki Community Member

      I am upgrading from 4.5 to 8 and find that cfx_fileReadLines is returning incorrect data and I have no idea where from (in 8, works fine in 4.5, so I decided to rewrite the code using cfloop file parameter.  There are roughtly 4000 lines and 10 datapoints in each line, along with an id, so there are about 45000 queries I have to do to insert it all.  After taking down the Oracle server three times, I've decided to take a step back and ask your advice.  It's supposed to have a timeout of 40,000 seconds, so that shouldn't be a problem, and raised Max JVM Heap Size to 1024MB.  I know this is all pretty general, but if you had a suggestion I would really appreciate it.  Thanks.

        • 1. Re: Rewriting cfx_fileReadLines
          Dinghus Community Member

          You will have to pull out the code and find where the error is occuring.  1 step at a time. Not sure what the rest of it had to do with the actual problem.

          • 2. Re: Rewriting cfx_fileReadLines
            -==cfSearching==- Community Member

            Once you reach a certain number of records, looping becomes too time consuming and resource intensive to be feasible.  With 45000 queries, I would say you have passed that limit.  It is been a while since I have used Oracle, but I know it has tools for importing from text files.   Have you looked into that option?  You could import the data into a temporary table, run a few cleansing routines, then bulk insert the information into another table with just a few queries.  It would be faster and require far less resources than a loop of that magnitude.

            • 3. Re: Rewriting cfx_fileReadLines
              kodemonki Community Member

              I can't pull the code out of a .dll file.  Maybe I can, but I have no idea how.  Any ideas?

               

              Also, why does this run perfectly well in 4.5 but not 8?  I understand there are going to be some backwards compatibility issues, but it shouldn't be *that* hard to replicate, eh?

              • 4. Re: Rewriting cfx_fileReadLines
                -==cfSearching==- Community Member

                IMO 45,000 records is too much to insert via a loop anyway. You should be looking at the alternative options mentioned.  As the records increase, eventually you are going to hit a performance/timeout wall anyway. No matter what looping option you are using.

                 

                Also, why does this run perfectly well in 4.5 but not 8? 

                I understand there are going to be some backwards

                compatibility issues, but it shouldn't be that hard to

                replicate, eh?

                 

                CF 4.5 is about 10 years old ... plus CF 4.5 and CF8 are totally different. CF 4.5 was based on C++, whereas all versions after MX6 are java based.  So it is not surprising that some things do not work the same. Also, what you are using is a custom tag, not a built in part of the language. So I do not know whether that is truly is a "backwards compatibility" issue or not.  If you insist on using a custom tag, I would do a google search to find a newer one. Preferably java based. I am sure there are newer ones that do the same thing.