spartacus
7th August 2002, 10:57
Hi all,
trying to insert a printer template results in an error 512 "Corrupt Data Dictionary".
Situation:
We installed last week SP8. After that we did a Concert to RDD, which runs fine. As far as I know there should be no further changings on the system.
This week we have error 512 ?
We tried "convert to RDD" and "Create RDD" , but only for this table, because we have a lot of users on the system. Both sessions run without any error message. But error 512 ist still present??
Will it help to run Create over the whole range of tables?
Are there other possibilties?
Thanks
Spartacus
jclju1
7th August 2002, 12:04
Compare data dictionary in database with Baan DD. For instance, command in Oracle is "describe table_name". We had some problems with tables that have fields > 256 chars. Do you have variable "ora_column_format:7" in db_resource file?
spartacus
7th August 2002, 12:32
Hi jclju1,
we have a sql 2000 database. Do you have experience with this Database?
If so, can you give a little bit more detailed descripton, how to compare ?
Thanks
Spartacus
jclju1
7th August 2002, 13:52
I don't have a lot of experience with SQl 2000, but I remember that there exists graphical tool in SQL - Enterprise manager (or something similar). Connect to your database with Enterprise manager, choose your table and with right click and Properties you can see fields in table. Compare this view with Baan DD - $BSE/dict/ddPack_comb/...
spartacus
7th August 2002, 14:10
Hi jclju1,
thanks. Explained good enaugh, that I can start with!
Greetings
Spartacus
Martin
7th August 2002, 16:32
Hi sparatcus,
the problem is, when you create the rt-DD only for one specified table, it coud be, that other tables have same references to this table and must also be reconfigured. In this case you get also error 512 !
So did a create runtime datadictionary for this package combination for all tables !
Martin
dbclark79
7th August 2002, 16:41
After changing a table or domain definition on Windows NT and converting the change to RTDD it is necessary to reflush the shared memory. This may be done manually via the Shared Memory Manager, or by stopping and restarting the NT service or by rebooting the server (easist way).
Baan assumes the table definitions loaded into shared memory are identical to what physcially exists in the RDBMS (SQL 7.0 or SQL 2000). If they are different then 512 error will result. The table definitions that are loaded into shared memory are read from the ${BSE}/dict directory (RTDD) so ensure the definition here is correct before rebooting.
-David B. Clark
dbclark79@juno.com
jclju1
7th August 2002, 19:23
dbclark79, you are right. I am working mostly on Unix servers and I forget to this NT "speciality". Probably is everything OK with DD and restarting shared memory will help.
spartacus
8th August 2002, 19:54
Hi all,
maybe I should open a new thread, but today I have had the same problem on Bann 4c.
This time was a fully customized table affected. And this time it was tbase.
We have had Error 512 and tried:
- repair int tbase6.1
- full convert to RDD
- full create RDD
- rorganize tables
and wie tried rc.stop and rc.start to take care about the shared memory manager.
Nothing helps. At least we deleted the table, and created it new, that helps. So we are lucky, because that was possible with that table without data loss.
BUT WHAT TO DO IF THAT IS NOT POSSIBLE?
Greetings
Spartacus
dbclark79
9th August 2002, 16:32
In some situations the conversion to RTDD does not complete successfully. It will usually inform you that it failed but not always. Sometimes you think everything went perfectly but then after the reboot you get 512 error on the table, even through GTM.
In severe and rare cases it is necessary to perform the reorganize tables manually. Start by dumping all of the data out of the table via Create Sequential Dump of Table or via Baan Exchange. Then delete and recreate the table through Baan. Convert/Create RTDD on the table with reconfigure tables and verify that the RTDD ASCII file in ${BSE}/dict is correct having the new changes. Reflush the shared memory and then load the data back in via Create Table from Sequential Dump or Baan Exchange.
NOTE: Be sure to verify a successful backup of the database before you begin and also perform a record count on the table before and after to ensure you don't lose any records.
This "manual" process carries some risk and it has an extremely high success rate. In very rare situations the table in RDBMS is hosed and 100% recovery of data is not possible.
NEVER EVER try to change one ore more fields within the RDBMS (SQL, Oracle, Informix, DB2, etc.) that make up a non-duplicate index of a table when level 1 DB driver is used. You will certainly cause corrupt data and indices because the hash columns will not be correct.
-David B. Clark
dbclark79@juno.com
spartacus
12th August 2002, 11:01
Hi Clark,
due to error 512 it is not possible to dump table. Also it is not possible to access table anyhow.
Do you have any suggestions how to check the contens of the table?
Thanks
Spartacus
dbclark79
12th August 2002, 16:19
Spartacus,
Move your current RTDD file to ".SAV" and move the previous one (".old") to the current (no extension). For example:
${BSE}\dict\ddb50cprd\dtcibd\dtcibd001 ==>
${BSE}\dict\ddb50cprd\dtcibd\dtcibd001.SAV
${BSE}\dict\ddb50cprd\dtcibd\dtcibd001.old ==>
${BSE}\dict\ddb50cprd\dtcibd\dtcibd001
This will put back your previous RTDD so that it is active.
After doing this you should be able to access the table via GTM and then dump it accordingly.
If this does not work then you may considering dumping the contents of the table via the RDBMS tools into a comma delimited ASCII file. For example, if you are using MS SQL server then you can use either the Query Analyzer or the Enterprise Manager to export the data.
Another option is to figure out the difference between your RTDD and the table definition within the RDBMS. When error 512 is encountered it is specifically due to a difference between these two table definitions. If you can figure out what the difference is and then reconcile within the RTDD then you should be able to access the data so that it can be exported before you manually reconfigure.
spartacus
12th August 2002, 17:14
Hi all,
I forgott to ask, is it possible to delete a tools table?
--> because, we are talking about ttaad330
Thanks
Spartacus
jclju1
12th August 2002, 17:32
Only regular way for deleting tools table in Baan is with bdbpre command (or session). But, you need good data dictionary for this. It is possible to delete table direct in oracle or SQL. I dont know what will happen if you delete bisam table with rm command in Unix.
klesch
19th August 2002, 13:48
Dear jclju1,
can you post the command line necessary for deleting a table from company 0?
Originally posted by jclju1
Only regular way for deleting tools table in Baan is with bdbpre command (or session). But, you need good data dictionary for this. It is possible to delete table direct in oracle or SQL. I dont know what will happen if you delete bisam table with rm command in Unix.
jclju1
19th August 2002, 14:12
You have to use option -k in command line. Command line for one table is (unix/BaanIV):
bdbpre6.1 -k -N table_name -p pack_komb -C000
There is option -I for deleting more tables at the same time.