Creating linked servers is generally a pretty easy thing to do, but the creation of a link server with DB2 is not as simple. To create a linked server to DB2, it requires the SQL DBA to know or guess a lot of parameters that are not familiar or intuitive. In this tip we will walk through the process of setting iup a linked server to DB2.
The easiest way to create the link server is to use the "Data Access Tool" application, which comes with the Microsoft OLDB Provider for DB2 driver installation. In addition, I recommend that you ask for assistance from your DB2 DBA.
Data Access Tool
The Data Access tool is very easy to use. As soon as the application is launched, click on File -> New -> Data Source and it will show the following screen. Unless the DB2 source platform is known you may need to consult with the DB2 DBA to assist in picking the correct platform.
In the next step, enter the DB2 IP address and TCP port used to connect to DB2.
In the next screen enter the Initial catalog (database you want to connect to), the Package Collection, the Default schema and Default qualifier. Again, if you are unsure consult your DB2 DBA.
Here is another set of parameters that are required to connect to DB2. If you are unsure which options to select, consult your DB2 DBA.
In the next input window we enter the DB2 user that will be used to impersonate our SQL User. This DB2 user will need to have appropriate access rights to DB2 and this user will need to be created by the DB2 DBA.
On this screen additional options can be selected. For more information on any of these items, you can click on the Help button.
At the end of the wizard, click on Connect to verify if we have connectivity with DB2. If so, click on Sample Query to make sure we can successfully query DB2.
If we have successfully tested connectivity, we are now ready to create our SQL to DB2 link server.
Right click on the newly created data source and click on Display Connection String. In my case the connection string looks like the following:
Provider=DB2OLEDB;User ID=db2user;Password=mypassword;Initial Catalog=mydatabase;Network Transport Library=TCP; Host CCSID=37;PC Code Page=1208;Network Address=192.168.9.65;Network Port=446;Package Collection=MSDB2COL; Process Binary as Character=False;Connect Timeout=15;Units of Work=RUW;DBMS Platform=DB2/MVS;Defer Prepare=False; Rowset Cache Size=0;Max Pool Size=100;Persist Security Info=True;Connection Pooling=True;Derive Parameters=False;
Create Linked Server
Finally, we can start the link server wizard.
Right click on Linked Servers and select "New Linked Server...".
On the New Linked Server window, the linked server can be any name. The provider has to be Microsoft OLDB Provider for DB2. Enter product name as DB2OLDB. In catalog, copy and paste the connection string that was created.
On the Security page, select "be made by using this security context" and enter the DB2 user name and password.
If everything works fine we should be able to see our DB2 link server as shown below.
I am just following the same process what you said here. When I click on 'Connect' button at Validation step(7th screenshot), I am getting the following error.
Could not connect to data source 'New Data Source': A TCPIP socket error has occured (10061): No connection could be made because the target machine actively refused it. SQLSTATE: 08S01, SQLCODE: 10061
Can anyone please help me how to overcome this issue.
Eagerly waiting for the reply. Thanks in advance.
Friday, June 14, 2013 - 10:45:53 AM - Andreas Kelm
Hello, I could download and install the DATA ACCESS TOOL, but during configuration the account information, I could not use an username with "_" like user_name, it fails :-( Are there any possibility to use " ore [ in order to use such a username ? Thanks Andreas
Friday, October 22, 2010 - 9:35:50 AM - Chris Gelhaus
Hello, I didnt see it mentioned in the tip so I thought I would mention it. Unless something has changed in SQL 2008, the OLEDB Driver for DB2 is only available for SQL Server Enterprise and Developer Editions. DBA's who have SQL Server Standard edition need to use any edition of IBM DB2 Connect. Thanks, Chris
This worked for me but I think you meant to paste the connection string into the Provider String field when creating the linked server. The Catalog field is to specify the initial catalog (database) to connect to. I'm using SQL 2008 R2 Developer SSMS.
Thursday, October 21, 2010 - 11:48:24 AM - Keith Lindsey