Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Rewriting cfx_fileReadLines

Engaged ,
Jul 30, 2009 Jul 30, 2009

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.1K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jul 30, 2009 Jul 30, 2009

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Jul 30, 2009 Jul 30, 2009

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Aug 20, 2009 Aug 20, 2009

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?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Aug 20, 2009 Aug 20, 2009
LATEST

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources