(C10, MSSQL) A fake Error 47, Component does not match physical file structure

Hi Folks,

C10.11975
MSSQL
Nettalk 9.14 (webserver system)

On occasion my system is HALTing on an error 47.

This has been happening, irregularly (a couple of times a month), at least from 2014 when I put MessageBox (Capesoft) in it started logging.

The error message is:

dbo.<filename> has an invalid File structure.|Error: 47 - Invalid Record Declaration|FileError: FIELD : <digit> : NAME : D00001 - Component does not match physical file structure

The file it happens to changes each time.

The digit after FIELD: changes with each time, and is different even if it’s a file that has had this happen to previously.

The NAME: D00001 is always the same.

My gut and memories of maybe speaking with someone about this previously, is that it’s nothing to do with the structure of the file. I mean logically, it can’t be, because the system runs and connects and does all the file stuff without issue. What is in the dictionary is what is in MSSQL (with the right swaps of field types etc).

I’m edging towards this being a problem with memory, on the windows server, and mssql hitting some limit and having issues.

The strange thing is, I can’t see how it’s the memory limit for the sql server, as when this error happened this morning, the memory limit for the sql server was nowhere near being reached, and even when it does reach the limit, the windows server has plenty of mem left over.

Maybe it’s something to do with the memory usage of the exe?

Too many unknowns for me. Figured posting here would help shed some light.

Any voices of wisdom got any ideas on this?

@brahn - Wasn’t sure if this should go in Questions or Questions/FAQ.

Hmm, two ‘questions’ topics is a bit weird. I will sort that out and shuffle posts around. Here is good for now!

Hi Stu,

Do you know what is happening when the error occurs?

If so, you could possibly enable trace.exe to watch that process and get a better indication of what the error means.

Are you using a prop:sql statement when the error occurs? If so, you should try to catch that statement.

etc etc

Yeah that’s the thing. It seems completely arbitrary, the date/time, the file itself / place in the code.

I’d have to trace the entire system for days on end until it happens.

I definitely use a lot of PROP:SQL statements in my code, but it’s tough to say whether or not these errors occur in template or embed code.

What I will do now is try and match up the historical logs with the date/time of the error, see if that can narrow it down any.

Cheers.

We get this occasionally but have found that since different members of our team use different versions of Clarion, when copying apps from one system to another we need to run the FM3 utility SupportABC whenever there is a file change.

Thanks Mike, that’s a good thing to remember.

Am not using FM3 in this system. Back 5 or so years ago I tried to get it working and there was a decent hitch in that, and so I left it and haven’t gone back (am using FM3 in all other projects though!).

Maybe this is a sign I really need to get FM3 in and running.

The help topic Extended ERRORCODE 47 Errors is useful for these issues.

1 Like

Thank you Mark for pointing this out. I doubt I would have ever seen it by chance in the docs.

Thanks Riff!

That page in the docs is super useful, hadn’t ever seen it before. Yowza.

This issue though, it’s for files that don’t have changes. And the file in question changes (not the same one each time).

Since logging this issue I’ve upgraded to FM3 and thankfully haven’t seen it occur since then!