Errors when configuring for Enterprise Edition on 7.5.2

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
apierro1
Participant
Posts: 12
Joined: Thu Nov 13, 2008 8:50 am

Errors when configuring for Enterprise Edition on 7.5.2

Post by apierro1 »

I am configuring EE but having issues when trying to connect to another database on a different server than the one where datastage is installed.

I am following the document to configure for EE.
I am able to rsh to the server without password.
.rhosts is setup correctly.
/datastage is mounted on all servers using the Hard option.
PX Engine was copied to new nodes using copy-orchdist utility
db2setup and db2grant were both run.
db2 EE stage is setup with the new client instance name, server, client alias and database environment variable in the DSJob.

The error that I receive when trying to view data from the new EE stage connecting to the new server is:

Error executing View Data command:

##E TNDB 000190 15:07:07(006) <DB2_UDB_Enterprise_3> The file `/db2home/rpsts1ii/sqllib/db2nodes.cfg' must exist and be readable by all users!


##########################################

I am able to view the file two ways, directly on the server as well as using rsh from the datastage server to connect to the new server and read the file (db2nodes.cfg).

Anyone have any ideas on how to connect to the new server?
Thanks,

Anthony
mhester
Participant
Posts: 622
Joined: Tue Mar 04, 2003 5:26 am
Location: Phoenix, AZ
Contact:

Post by mhester »

What the EE stage is looking for is the db2nodes.cfg for the target database so that it will understand the partition map for a given table. The db2nodes.cfg for the database resident on the ETL server will not work (and do not change it either).

Question: is rpsts1ii the instance of the DPF server?

If it is then make sure the permissions are correct and that it can be read by the user running the job. This will really only work if the DPF sqllib is accessible to the ETL server (NFS etc...)

If it is not and the instance is different than you could do the following -

You can add the following environment variable to your job -

APT_DB2INSTANCE_HOME={DPF instance}
  • 1) set it to the location of DPF instance owner db2nodes.cfg file (if that location is accessible to the ETL server).
    or
    2) you can copy the db2nodes.cfg to your ETL server and then point it to that file. If you can use the db2nodes.cfg.
You will also have to add the client instance (of the DPF server) to a job variable that can be used within the EE stage.

If you choose the first method and a node on the DPF server fails over or is changed you have nothing to worry about since the db2nodes.cfg will be updated automatically by the DBMS software. If you choose the second method then you will have to manually update the db2nodes.cfg if a failover should happen.

Since you said that the engine was copied then that would indicate "same" operating systems and that makes using this particular stage much easier.
apierro1
Participant
Posts: 12
Joined: Thu Nov 13, 2008 8:50 am

Post by apierro1 »

Yes, rpsts1ii is the instance of the DPF server. The permissions are correct and can be read by the DataStage user directly on the DPF server and using rsh from the ETL server.

If I were to add the APT_DB2INSTANCE_HOME variable to my job, then I limit the number of DPF servers that my job can connect to, to 1 DPF server.

I already added all of the variables to the DB2 EE Stage in my job. (Client Instance Name, Server, etc.)
Thanks,

Anthony
mhester
Participant
Posts: 622
Joined: Tue Mar 04, 2003 5:26 am
Location: Phoenix, AZ
Contact:

Post by mhester »

From the IBM documentation on how to configure your ETL server for the EE stage -

DataStage reads the db2nodes.cfg file (on the ETL host) to determine each DB2 partition.

The db2nodes.cfg file is copied from BCU management/coordinator DB2 node and should be copied to any location into a sub folder named sqllib on the DS/EE server. Once the db2nodes.cfg file has been copied you will need to set the value of the environment variable $APT_DB2INSTANCE_HOME to this path value in any process accessing data from the DB2/DPF using the Enterprise stage.

Example

$APT_DB2INSTANCE_HOME=/home/dsadm

Note:

Do not modify the existing {DB2_HOME}/sqllib/db2nodes.cfg file. This can cause problems stopping and starting any local database instance.
apierro1
Participant
Posts: 12
Joined: Thu Nov 13, 2008 8:50 am

Post by apierro1 »

After making some modifications, inlcuding creating the DPF instance owner user id on the ETL server and placing the DPF nodes.cfg file in the home directory of the created user I know get a different message when trying to connect to the DPF server.

Below is the error that I receive when trying to connect:

##I TNDB 000156 12:03:58(000) <main_program> DB2INSTANCE = rpsts1ii.
##I TNDB 000223 12:03:58(002) <DB2_UDB_Enterprise_3> Connecting to instance: rpsts1ii.
##I TNDB 000409 12:03:58(003) <DB2_UDB_Enterprise_3> Connecting to instance: rpsts1ii; database: pass1.
>##E TNDB 000000 12:03:58(004) <DB2_UDB_Enterprise_3> Error Idx = 1;
>DB2 Driver Embedded SQL message: ;
>sqlcode = -5005;
>sqlstate =
>##E TNDB 000000 12:03:58(005) <DB2_UDB_Enterprise_3> Failed to connect to the database
Thanks,

Anthony
mhester
Participant
Posts: 622
Joined: Tue Mar 04, 2003 5:26 am
Location: Phoenix, AZ
Contact:

Post by mhester »

This almost sounds like a user issue that we used to get also. Make sure that the user you are running as (not the user you defined in the stage, but running your ds job as) is setup on the etl server and database nodes along with the same UID on both sides. The UID is quite important and is spelled out in the document.

Or an instance issue now that I think about it.
apierro1
Participant
Posts: 12
Joined: Thu Nov 13, 2008 8:50 am

Post by apierro1 »

I believe it may be an instance issue as well, just not sure what.

The UID that i am using is set up on all servers with the same UID. The UID has access to the databases on both servers and it is the same user that I sign in to DataStage with so I don't think it's a User issue.
Thanks,

Anthony
mhester
Participant
Posts: 622
Joined: Tue Mar 04, 2003 5:26 am
Location: Phoenix, AZ
Contact:

Post by mhester »

The instance defined in the EE stage should be the instance of the DB on the DPF server.
Post Reply