Database Structure file - Forum - OpenEdge RDBMS - Progress Community

Database Structure file

 Forum

Database Structure file

  • I have version 10.1C04. I have created a database and I'm trying to add areas to its structure. I have set up a .st file with the following d “Data”:100,32;1 MyDb_100.d1 f 1024000 When I run prostruct add I get the message Invalid extent type M in extent length specification. Why am I getting this and, if my format is wrong, can you advise the correct one? Dave MacLurg
  • There could be a few reasons.  Try this: I replaced the file name by a dot.  This tells prostrct to create the extent in the current working directory and it will name it automatically.

    d “Data”:100,32;1 . f 1024000

    Note that I never use file names in my structure files for this exact reason.  I only put directory names and usually I just put "." unless I specifically want to create a file somewhere different.  

    Also you don't say so specifically, but I assume this file is called something like "add.st" and you are running "prostrct add Mydb add.st".

    If this does not work:

    - Is this a new storage area called "Data" or are you trying to add files to an existing SA?  I ask because the file name is .d1 which implies a new SA.

    - Is the DB called MyDb?  On UNIX this is case-sensitive

    Paul

    Paul Koufalis
    White Star Software

    pk@wss.com
    @oeDBA (https://twitter.com/oeDBA)

    ProTop: The #1 Free OpenEdge DB Monitoring Tool
    http://protop.wss.com
  • I have tried this and I still get the same message and it identified "." as the invalid extent type. It is as if I'm missing an element of the area definition, but I have checked what I have against the Progress documentation.

    I have also tried creating a new .st file and running a prostruct create but I get the same result.

  • Why don't you paste in the actual structure file?

    Consulting in Model-Based Development, Transformation, and Object-Oriented Best Practice  http://www.cintegrity.com

  • This has to be a parsing issue.  prostrct expects token 4 (space-delimited) to be "f" or "v" or nothing.  Did you cut-and-paste the line from MS Word?  

    Try this:

    cd /tmp

    prodb toto sports2000

    prostrct list toto

    cp toto.st add_test.st

    Now vi add_test.st, delete everthing except one line and edit each component (area name, area #, RPB, BPC, directory,"f", size).  Now try prostrct add MyDB add_test.st.

    Paul Koufalis
    White Star Software

    pk@wss.com
    @oeDBA (https://twitter.com/oeDBA)

    ProTop: The #1 Free OpenEdge DB Monitoring Tool
    http://protop.wss.com
  • If your database is indeed named MyDB (if not you get 6857 error) then try quoting the area name.

  • The message "Invalid extent type M in extent length specification", is most likely because you copied this st file from Windows.  It's interpreting the end of line ^M. If you open your .st file in (say) vi, you'll see the ^M at the end of each line to confirm this.  It can be removed by running: %s/(ctrl-v)(ctrl-m)//g

  • Yeah I can confirm that this is the likely cause as I had exactly the same problem when playing around with some bits last week, and C&Ping from M$.

  • The ^M is not an issue for my .st files coming from NT to Unix (tested on Solaris64 in 10.2b08)

    ^M

    d "Data":100,32;1 MyDb_100.d1 f 10240^M

    ^M

    It is only when I remove the quotes around the area name "Data"  that I get the error:

    Syntax error in structure file:

    d Data:100,32;1 MyDb_100.d1 f 10240

    Fixed Length flag incorrect. M (6830)

    Error occurred on line 2. (6819)

    prostrct add FAILED. (12867)