dbtool error while loading shared libraries

apsrbstar

Member
Afternoon, apologies for all the questions at the moment, but I am on a bit of a Progress Admin mission. I am trying to run dbtools against a test environment, in order do a straight import into SQL Server 2005. From what I've read, it's an idea to run it occasionally anyway, although I don't understand what the benefits in doing this are - perhaps someone could enlighten me?

As mentioned in a different post, I have multiple installations of progress on one server, and I have been advised (on these forums) not to set $DLC, however, I think that is the cause of my problem with dbtool. When I run it, I get

dbtool: error while loading shared libraries: librocket_r.so: cannot open shared object file: No such file or directory


I assume this is a result of not having $DLC set. Can I incorporate the location of librocket_r.so, or the DLC folder in the parameters of dbtool anywhere?

Edit - Forgot the basics. I am running 9.1E on Linux Red Hat.

 

JustMe

Member
not to set $DLC, however, I think that is the cause of my problem with dbtool. When I run it, I get

dbtool: error while loading shared libraries: librocket_r.so: cannot open shared object file: No such file or directory


you can specify most calls with explicit paths. I have several environments also and I can make thees calls to any of them. If you show us your call it might help.
 

apsrbstar

Member
I'm not 100% sure I understand, so here goes:

My db is in /app/newver/db
The path to the dlc is /app/newver/rd/dlc
In this folder /lib/librocket_r.so and /bin/dbtool are there.

Do you mean I run:

dbtool /app/newver/rd/dlc/bin/dbtool /app/newver/db/nvernxt

I just am struggling to see how this helps to find the library file...
 

JustMe

Member
Just a side note, it helps if you include the information on progress version, O/S etc ... (being lazy I put my primary system information in my signature.)
 

JustMe

Member
I'm not 100% sure I understand, so here goes:


Do you mean I run:

dbtool /app/newver/rd/dlc/bin/dbtool /app/newver/db/nvernxt

I just am struggling to see how this helps to find the library file...

close, you're specifying the exact location of your dbtool to run it so:

/app/newver/rd/dlc/bin/dbtool /app/newver/db/nvernxt

should get the app started and from there the app should know where the libs are (assuming it has ran before). you could also cd into /app/newver/rd/dlc/bin/ and have the same effect.
you would run:
dbtool /app/newver/db/nvernxt
in the dir /app/newver/rd/dlc/bin/
 

apsrbstar

Member
JustMe - or should that be JustYou? - you are being very patient with me here, but, where is the path statement? Do you mean

cd /app/newver/rd/dlc/bin
dbtool nvernxt /app/newver/rd/dlc/lib


I'm not a Unix man, I've just been passed a job no one else wants!
 

RealHeavyDude

Well-Known Member
In the bin directory that resides beneath the installation directory you will find the proenv script. Just run it and will set the environment accordingly in setting the DLC environment variable and include the necessary directories into the path. Additionally it will change the prompt in the shell to proenv>.

Either you run proenv and go on from there or you include what the proenv does in your scripts. If you choose the latter you might have a look into the script so that you can see how that is done.

Proenv is available on all platforms which are supported by Progress which would be Windows and *nix and I recommend any DBA to use it when executing Progress commands in a operating system shell.

Heavy Regards, RealHeavyDude.
 

apsrbstar

Member
I'm in and running. Had to set the library path, which I must admit I wasn't 100% keen on doing, but it happening, so I am very pleased. Thanks everyone for all your help.
 

cj_brandt

Active Member
You need to set the LD_LIBRARY_PATH in your profile. Each OS has a slightly different variable for this, but I believe that is the correct one for linux.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DLC/lib
 

apsrbstar

Member
Yeah, thank you I have that. If I ever need to run dbtool against one of the other databases, am I going to hit the problem that it will look to the instance of /lib referenced in this path? If so can I "un" set it?
 

cj_brandt

Active Member
No - assuming your PATH is set correctly and includes $DLC & $DLC/bin, then

dbtool <path to db you want to access>

will work fine.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
In that case you should explicitly set your environment for the version of Progress you want to use for this dbtool command. So if, for example, your desired Progress installation is in the directory /app/newver/rd/dlc and your database path is /app/newver/db/nvernxt, you could type:

Code:
DLC=/app/newver/rd/dlc
PATH=$DLC/bin:$PATH
export DLC PATH

Then you should be able to type:

Code:
dbtool /app/newver/db/nvernxt
 
Top