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?
Errors when configuring for Enterprise Edition on 7.5.2
Moderators: chulett, rschirm, roy
Errors when configuring for Enterprise Edition on 7.5.2
Thanks,
Anthony
Anthony
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}
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.
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.
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.
Mike Hester
mhester@petra-ps.com
mhester@petra-ps.com
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.)
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
Anthony
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.
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.
Mike Hester
mhester@petra-ps.com
mhester@petra-ps.com
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
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
Anthony
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.
Or an instance issue now that I think about it.
Mike Hester
mhester@petra-ps.com
mhester@petra-ps.com
The instance defined in the EE stage should be the instance of the DB on the DPF server.
Mike Hester
mhester@petra-ps.com
mhester@petra-ps.com