Datastage/Oracle configuration

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
JeroenDmt
Premium Member
Premium Member
Posts: 107
Joined: Wed Oct 26, 2005 7:36 am

Datastage/Oracle configuration

Post by JeroenDmt »

So far we have been using dsadm to run jobs and connect to Oracle and everything worked fine.
Now we are having a new Datastage user using another unix-user's credentials to do the same and we are having problems connecting to Oracle.
Other Datastage jobs are running fine, but when we try to connect to Oracle using the Oracle OCI Stage we get error messages like
- ds_loadlibrary: error in dlopen
- CreateNotificationMail..XFM_LogFile: C Stage PlugIn function "Get" required
etc.

When we change this user's credentials to use dsadm, everything works fine again.

Is there anything we need to set up for the unix user to be able to connect to Oracle / use the Oracle OCI stage?

I have searched for these error messages, but unfortunately haven't found the solution yet.
Do you have any suggestions were to look?
DS_SUPPORT
Premium Member
Premium Member
Posts: 232
Joined: Fri Aug 04, 2006 1:20 am
Location: Bangalore

Post by DS_SUPPORT »

I think the new user dont have rights to access the clent path, where oracle is installed. Are you able to connect through SQL+ by using new user credentials?
hamzaqk
Participant
Posts: 249
Joined: Tue Apr 17, 2007 5:50 am
Location: islamabad

Post by hamzaqk »

did u setup the home and lib path correctly?
Teradata Certified Master V2R5
swarnkar
Participant
Posts: 74
Joined: Wed Jan 11, 2006 2:22 am

Re: Datastage/Oracle configuration

Post by swarnkar »

You can check if you have anything defined for Oracle like lib, bin file path in .profile of dsadm so same need to defined for new unix-user and you can check if new user has read-execute permission on the directories where Oracle client has been installed on Unix box.
JeroenDmt
Premium Member
Premium Member
Posts: 107
Joined: Wed Oct 26, 2005 7:36 am

Post by JeroenDmt »

dsadm does not have a .profile file in its home directory.
Datastage is started by dsadm through a shell-script that includes a call to
". /appl/dstadm/IBMIS/Server/DSEngine/dsenv"

When I su to dsadm, I can get to Oracle (sqlplus) after executing dsenv.

The new user does not have Oracle lib/home in it's .profile.
When I su to the new user, I can get to Oracle after executing dsenv as well, so I assume that means the permissions are ok.

When I add ". /appl/dstadm/IBMIS/Server/DSEngine/dsenv" and then su to the new user, it doesn't seem to execute dsenv to start with, but I don't know if that's because of the su? It also doesn't seem to make a difference when executing the job. I still get the same error messages.

The same thing happens when I add the libpath, path and oracle_home references from dsenv to the new user's .profile. It doesn't seem to have used those when I su to the user, and also it doesn't seem to make a difference when executing the Datastage jobs. (I assume Datastage doesn't need to be restarted or anything after making changes to the user's .profile).

When I execute the unix "set" command from an Execute-command stage in Datastage using the new user, it is correctly showing the ORACLE_HOME, PATH and LIBPATH.

I hope that gives you enough information to give me any clues of where to look.
lstsaur
Participant
Posts: 1139
Joined: Thu Oct 21, 2004 9:59 pm

Post by lstsaur »

What you need to do is:
1. Go to Information Server-->Users and Groups to create a new user.
2. Go to Domain Management-->DataStage Credentials, then map and assign this new user's credential with the dsadm's ID and password.

You don't even need to create a new user on the Unix box.
JeroenDmt
Premium Member
Premium Member
Posts: 107
Joined: Wed Oct 26, 2005 7:36 am

Post by JeroenDmt »

lstsaur wrote:What you need to do is:
1. Go to Information Server-->Users and Groups to create a new user.
2. Go to Domain Management-->DataStage Credentials, then map and assign this new user's credential with the dsadm's ID and password.

You don't even need to create a new user on the Unix box.
We do need the new user because we want it to be able to get to files that dsadm (=other projects) doesn't need to be able to go to.
JeroenDmt
Premium Member
Premium Member
Posts: 107
Joined: Wed Oct 26, 2005 7:36 am

Post by JeroenDmt »

This problem has been solved.

Executing the unix command
sh -c "ldd /appl/dstadm/IBMIS/Server/DSComponents/bin/oraoci9.so"
from within the project showed that the user did not have read-permissions for an Oracle library.
After changing the permissions for the library, the jobs are running without a problem again.
Post Reply