From .Net, I'm able to connect to the DB2 database:
- First I include a reference to "IBM.Data.DB2.iSeries"
Then I create a new IBM.Data.DB2.iSeries.iDB2Connection. The connection string is
DataSource=ChaDb2Server;UserID=MyUsername;Password=MyPassword;
Then I create an IBM.Data.DB2.iSeries.iDB2Command, and so on.
Now I'm trying to get my SQL Server 2005 to access the same data directly. In SQL Server Management Studio, I right-click on Linked Servers, and select "New Linked Server..."
Linked Server: ChaDb2Server
Provider: IBM OLE DB Provider for DB2
Product Name: ???
Data Source: ChaDb2Server
Provider String: DataSource=ChaDb2Server;UserID=MyUsername;Password=MyPassword;
Location: ???
I can leave Location blank, but Product Name can't be empty and I don't know what to fill in here.
On the Security tab, I select "Be made using this security context" and I repeat the UserID and password.
The linked server gets created, but when I try to expand Catalogs / default / Tables, I get an error message:
OLE DB provider 'IBMDADB2.DB2COPY1' reported an error. Authentication failed. (Microsoft SQL Server, Error: 7399)
I have no idea where the name IBMDADB2.DB2COPY1 came from.
Also, when I try to select data:
Select * from ChaDB2Server.ChaDb2Server.Information_Schema.Tables
I get a similar error:
Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'IBMDADB2.DB2COPY1' reported an error. Authentication failed.
Obviously there's something missing in the way that I link the servers. Anybody know how to do this?
I don't know why, but I've never had any luck getting linked servers to work when set up through the GUI. However, I have had success doing it with sp_addlinkedserver. See here for IBM's instructions on how to set this up: https://www-304.ibm.com/support/docview.wss?uid=swg21394344
The way i setup
DB2 LUW
server as a linked server inSQL
is the following :1- I installed the appropriate
DB2 LUW
client onmySQL
Server2- I create the linked server as follow :
I haven't had luck using the IBM provider. I hear it's tricky. However, I have successfully used the Microsoft OLE DB Provider for ODBC Drivers.
My configuration points to a DSN and works well. The only 3 fields I have filled out is the provider (Microsoft OLE DB Provider for ODBC Drivers), product name (value='not used') and Data Source (name of the DSN on the SQL server).
If you don't mind using the ODBC provider, it will work for you.