Page 1 of 2

Sybase and Oracle errors

Posted: Tue Jul 18, 2006 6:26 pm
by drostnu
hello all,
my first post, i hope someone can help me...

im running datastage 7.5.1a in Linux, and there is no problem so far, but i start to do some tests, and its seems i cant connect to either a Sybase or a Oracle database i get these two errors.

"ds_loadlibrary: error in dlopen of sybaseoc.so - libsybdb.so: cannot open shared object file: No such file or directory"

"ds_loadlibrary: error in dlopen of oraoci9.so - libclntsh.so: cannot open shared object file: No such file or directory"


i dont really understand whats happening

Sybase is in another server : ip = 10.172.10.26
and Oracle is in the same server (127.0.0.1)

so please, help me.

i know i have to setup dsenv variables, but i just dont know how...

im kind of a noob in linux, so please help me...

so please help me.

Regards,

Diego/[/b]

Posted: Tue Jul 18, 2006 7:01 pm
by kcbland
Welcome! You'll need to go to the DS Engine home directory:

cd `cat /.dshome`

and edit the dsenv file there. Add the ORACLE_HOME environment variable and point it at the true Oracle client directory. Update the SH_LIBS path to include the Oracle libraries paths as well.

As for Sybase, you'll need to do something similar, like set SYBASE environment variable and another one I can't remember, plus set the SHLIBS as well.

After making changes to the dsenv file you will need to recycle the DS engine services, just make sure you exit all DS Clients before doing it.

Posted: Tue Jul 18, 2006 7:21 pm
by chulett
kcbland wrote:As for Sybase, you'll need to do something similar, like set SYBASE environment variable and another one I can't remember, plus set the SHLIBS as well.
SYBASE and SYBASE_OCS.

Posted: Tue Jul 18, 2006 8:34 pm
by kcbland
Yeah, that's it, SYBASE_OCS. I was thinking OCI but knew that wasn't right.

Posted: Tue Jul 18, 2006 8:59 pm
by ray.wurlod
Don't forget to ensure that the 32-bit libraries occur ahead of the 64-bit libraries in the shared library search path used by DataStage processes (unless you're on Tru64 or Itanium machines).

still errors :(

Posted: Wed Jul 19, 2006 12:15 pm
by drostnu
hello all, thanks for answering.

ok, i set the oracle variables, please help me again

this is my dsenv file located at /local/dsadm/Ascential/DataStage/DSEngine

[dsadm@sscllinuxora01 DSEngine]$ cat dsenv
#!/bin/sh
####################################################################
#
# dsenv - DataStage environment file
#
# Copyright (c) 1997 - 2004 Ascential Software Corporation. All Rights Reserved
# This is unpublished proprietary source code of Ascential Software Corporation
# The copyright notice above does not evidence any actual or
# intended publication of such source code.
#
# This script is sourced by the DataStage dsrpcd daemon to establish
# proper environment settings for DataStage client connections.
#
# This script may also be sourced by bourne shells to establish
# proper environment settings for local DataStage use.
#
####################################################################

# PLATFORM SPECIFIC SECTION

set +u

if [ -z "$DSHOME" ] && [ -f "/.dshome" ]
then
DSHOME=`cat /.dshome`
export DSHOME
fi

if [ -z "$DSHOME" ]
then
DSHOME=/local/dsadm/Ascential/DataStage/DSEngine; export DSHOME
fi

if [ -z "$APT_ORCHHOME" ]
then
APT_ORCHHOME=; export APT_ORCHHOME
fi

if [ -z "$UDTHOME" ]
then
UDTHOME=/local/dsadm/Ascential/DataStage/ud41; export UDTHOME
UDTBIN=/local/dsadm/Ascential/DataStage/ud41/bin; export UDTBIN
fi

if [ -n "$DSHOME" ] && [ -d "$DSHOME" ]
then
ODBCINI=$DSHOME/.odbc.ini; export ODBCINI
HOME=${HOME:-/}; export HOME

#LANG="<langdef>";export LANG
#LC_ALL="<langdef>";export LC_ALL
#LC_CTYPE="<langdef>";export LC_CTYPE
#LC_COLLATE="<langdef>";export LC_COLLATE
#LC_MONETARY="<langdef>";export LC_MONETARY
#LC_NUMERIC="<langdef>";export LC_NUMERIC
#LC_TIME="<langdef>";export LC_TIME
#LC_MESSAGES="<langdef>"; export LC_MESSAGES

LD_LIBRARY_PATH=`dirname $DSHOME`/branded_odbc/lib:$DSHOME/lib:$DSHOME/uvdlls:$DSHOME/java/jre/lib/i386/client:$DSHOME/java/jre/lib/i386:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

ORACLE_HOME=/local/oracle/product/10.2.0
ORAHOME=/local/oracle/product/10.2.0
LD_LIBRARY_PATH=$ORACLE_HOME/lib32 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32

fi
i restarted datastage, but it didnt work.

how can i set SYBASE and SYBASE_OCS? they are not the same box, they are on another machina, a windows one, like i said upside, ip=10.172.10.26 mine is 10.172.10.232

please someone help me... forzik@hotmail.com...

thanks all!
Diego./[/quote]

Re: still errors :(

Posted: Wed Jul 19, 2006 12:34 pm
by Ultramundane
If you want to use Sybase open client then you must install it on the unix box.

really?

Posted: Wed Jul 19, 2006 12:38 pm
by drostnu
really? i dont think, sounds very silly.

how come in windows i can connect to others servers and and in unix no?

please some help me... really.

Re: really?

Posted: Wed Jul 19, 2006 12:41 pm
by Ultramundane
Hey dude. Really really... For real... I have written many books on Sybase. You need to install the Sybase APIs in order to connect to Sybase using the native Sybase stages. If you want to use ODBC. No you don't. But that would be silly being that open client is free on Linux. I believe open client is now part of the software development kit for Linux. Thus, for native you can either install Sybase software development kit (recommended) or you could purchase and install Sybase enterprise connect, replication server, ASE, ASA, or IQ as they all come with open client. Really really for real.

omg

Posted: Wed Jul 19, 2006 12:51 pm
by drostnu
sorry for beeing ironic... now back to the question

is there any other option?

or that is the only one...

thanks again

diego

Posted: Wed Jul 19, 2006 12:58 pm
by kcbland
To talk to Oracle using native Oracle libraries, you have to install those libraries on all servers (Unix or Windoze, doesn't matter) that need to talk to the database server. The same is true for Informix, Redbrick, UDB, and Sybase. If you want to use ODBC, you must make sure that the appropriate ODBC driver and driver manager are on all servers (Unix or Windoze, it doesn't matter) that need to talk to the database server.

Your best option is to install the Sybase client on your linux machine, then setup the environment variables. You'll then be able to execute isql, osql, and sqlcmd on the linux machine, talking to a database (who cares where/what hosts the DB?).

In order for DS to talk to Oracle, you'll have to install the Oracle client on the DS Server, but since the same server is hosting your database, the client was most likely installed when the database was setup.

yes oracle

Posted: Wed Jul 19, 2006 1:03 pm
by drostnu
yes, i get it Sybase im screwed.

and in the oracle side, i have installed already, its all done, dbs are running and all, i paste the dsenv upside, would someone tell if its ok? because i still get an error with oracle.

thanks

Posted: Wed Jul 19, 2006 1:05 pm
by kcbland
You're not screwed with Sybase if you can get your hands on a Sybase ODBC driver and install it. Of course, if you're going to do that you might as well install the Sybase client.

As for Oracle. how do you expect us to tell you what's wrong if you don't tell us what you're doing and don't even paste the error message?

sybase ok.

Posted: Wed Jul 19, 2006 3:25 pm
by drostnu
ok, so now i installed the sybase client on linux.

i got these packs installed

sybase-openclient.i386 11.1.1-3 apps

Sybase Open Client Development Libraries
Sybase Connectivity Open Client(tm) is the industry-leading network
oriented application development environment with tools to maintain
and administrate the Adaptive Server Enterprise platform.


and also found this

sybase-common.i386 11.9.2-3 installed

Sybase Enterprise Software Common Files
Default platform run-time and support environment for Sybase Adaptive
Server Enterprise shared between the SQL Server, bundled products and
Open Client- / Server-development environments.

anyway i just installed the sybase open client, but how do i set SYBASE and SYBASE_OCS is that to make sybase work?

-----

back to oracle

in the dsenv, i added this

ORACLE_HOME=/local/oracle/product/10.2.0
ORAHOME=/local/oracle/product/10.2.0
LD_LIBRARY_PATH=$ORACLE_HOME/lib32
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32

but it was giving me a error of "broken pipe" so i commented the lines and it worked again.

no idea whats the problem, please any would be appreciated.!

thanks


diego./

-----------

after installing sybase open client
i receive this message now

Error calling subroutine: DSD.Browse (Action=3); check DataStage is set up correctly in project Dev_Chile

Error calling subroutine: DSD.Browse (Action=2); check DataStage is set up correctly in project Dev_Chile
(The connection is broken (81002))

Error calling subroutine: DSR_JOB (Action=4); check DataStage is set up correctly in project Dev_Chile
(The connection is broken (81002))


weird? no idea

Posted: Wed Jul 19, 2006 4:01 pm
by kcbland
Where are your EXPORT statements after you set the environment variables? If you look at the dsenv file, you'll see you didn't do it right.