D
dbeavon
Guest
In OpenEdge 11.X, it became obvious to us that something dramatic changed in the way that Progress performed its so-called (and oh-so-obnoxious) "CRC" checks. These "CRC" checks are ostensibly there to help the developer know if he did something stupid, ie. accidentally running the "wrong" code on a given OE database. But we've noticed a decreasing trend in the number of factors that can generate these "CRC" errors - meaning that Progress is getting more lenient (... not, in this case, that the developer is making fewer stupid mistakes....) But in OE 11.X the trend changed. All of a sudden the factors causing "CRC" errors for us have practically disappeared altogether - almost like a magic. Even the "schema holes" aka "field rpos issues" hardly seem to come up anymore (you are forgiven if you don't know what I'm talking about - you can rest assured that you probably don't want to know.) So what is up with that? Do all the tedious KB articles (about "CRC" checks and R-code compatibility rules) need to be updated to account for the new magic? About the only thing I found in the KB was this mysterious sentence at the footnote of some extremely dated article. Notice my favorite part: *** A MISMATCHING CRC IS NO LONGER AN ERROR CONDITION *** "In current releases (OpenEdge 11.x), due to changes to better support online schema changes and to have more portable code in DataServer environments, a mismatching CRC is no longer an error condition. Instead that triggers an extra runtime check is performed to see if the schema is compatible anyway." In my way of reading this, the "CRC" is finally on the verge of being phased out altogether, considering it has become only one precondition to perform a more important "extra runtime check". The result of that extra check now becomes the preeminent opinion on whether the compiled code can run on a given OE database or not. This mysterious sentence begs a lot of questions. What is occurring during that "extra runtime check"? How often does it run? Can we monitor its performance characteristics and see if/where it impacts our code? Why isn't there more information about it, especially considering the number of articles we can find related to its obnoxious "CRC" predecessor? At a minimum I would expect a dedicated KB article, if not a paragraph in the OpenEdge documentation on software deployments. This isn't just a matter idle curiousity. If we get the so-called "CRC" errors in 11.X, it means not only that we failed the "CRC" precondition but that we failed the "extra runtime check" as well. If we don't know what is occurring in that new check, how can we remediate the runtime error in a production environment? Can anyone provide insight into the magical "extra runtime check" that now supercedes the so-called "CRC"? It would allow me to sleep better at night knowing how it works.
Continue reading...
Continue reading...