1. ProTop Knowledge Base
  2. Advanced Alerting Configuration

Compile and run ProTop against your DBAUTHKEY-protected database (PT328).

My vendor (or I) put a DBAUTHKEY in our OpenEdge 12.x databases to protect them from unauthorized r-code. How do I authorize ProTop r-code to run against them?

NOTE: This only applies to OE12.x databases as ProTop works as is against OE11.x and earlier databases that use a DBAUTHKEY.

When I try to run ProTop against my OE12.x database, I get this fatal error pop-up box:

and this message at the bottom of the screen:

What do I do? I want to run ProTop on this database!


Starting in ProTop 327, you can authorize ProTop r-code to run against your OE12.x DBAUTHKEY-protected database. But, there are some prerequisites:

On the same *nix server:

  • OE 12.x installed with ...
  • A 4GL DEV license, which allows you to compile
  • ProTop 328 installed
  • The database(s) or copy(s) containing the DBAUTHKEY you want to authorize ProTop r-code to run against

  1. log in to your protop machine
  2. set your protop environment (this drops you into your protop directory)
  3. be sure the dbauthkey protected database is running
  4. run this for Windows: 
    bin\ptcompile.bat "buildProLib=yes,proLibName=protop.pl" <c:\explicit path to db>
  5. run this for Linux:

    bin/ptcompile.sh buildProLib=yes,proLibName=protop.pl <explicit path to db>
  6. The procedure library (.pl) name "protop.pl" can be any mnemonic you like, ending with .pl we are using protop.pl in this example.
  7. If all of your databases use the same DDBAUTHKEY, edit the "PROPATH=" line in $PROTOP/bin/protopenv
    change this: PROPATH=protop-v12.pl:${PROTOP}

    to this: PROPATH=protop.pl:${PROTOP}
  8. If not all of your databases use the same DBAUTHKEY then edit $PROTOP/etc/dblist.cfg and add protop.pl to the end of each line containing a database that uses this DBAUTHKEY, followed by " :. "

    It will look something like this:
    ptdbak|/db/ptdbak|yourServer|yes|||protop.pl:.
    You are editing the seventh pipe-delimited column, aka codePath.

    You should now be able to run ProTop against your database containing the DBAUTHKEY: 
    protop <your db friendly name or explicit path to db>
  9. Repeat these steps for each of your databases that have a different DBAUTHKEY.

    Other options to consider:

    debugList=yes,
    purgeRCode=yes,
    saveRCode=no

  10. If you have any questions, please reach out by using the "Questions? Comments?"  link above.