Connecting to MS SQL Server using ODI Agents
805320Oct 14 2010 — edited Oct 25 2010I'll start with an apology, since I'm sure it's something very obvious that I've missed. Other posts have similar, but I think slightly different issues - but they have helped me get this far.
We have ODI set up with two Agents (L and S running on Windows) which successfully connect to Oracle databases.
I'm trying to connect to our first MS SQL Server database, and while a test through "Local (No Agent)" is successful, the connection is not successful when I try through one of the agents.
This is true both when I test through Topology Manager on my laptop and when I use the ODI Topology Manager on the server running the agents themselves.
In attempting to fix the problem, I have updated/checked as follows:
Downloaded updated MS SQL Server drivers (I'm connecting to a MS SQL Server 2005 database). The new MS driver is version 3.0 and I've copied file sqljdbc4.jar to the ODI home drivers directory on both my laptop and on the server which runs the agents.
Checked that we have a newer JRE installed - we have JRE 6 update 7 installed (1.6.0.17_b04) on the server which runs the agents.
Updated the ODI_JAVA_HOME environmental variable so that it points to the jre6 directory on the server which runs the agents.
Stopped and restarted the Agent services.
Closed and reopened Topology Manager.
Configured the SQL Server data server to use the following JDBC driver:
com.microsoft.sqlserver.jdbc.SQLServerDriver
Configured the JDBC url as follows (changing the hostname):
jdbc:sqlserver://<hostname>:1433;selectMethod=cursor;integratedSecurity=false
Tested using 'Local (No Agent)' successfully.
Tested through an agent and received the following error:
java.lang.Exception:
at com.sunopsis.graphical.c.po.a(po.java)
at com.sunopsis.graphical.c.po.t(po.java)
at com.sunopsis.graphical.c.po.g(po.java)
at com.sunopsis.graphical.c.po.a(po.java)
at com.sunopsis.graphical.c.po.a(po.java)
at com.sunopsis.graphical.c.ja.actionPerformed(ja.java)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.sunopsis.graphical.c.po.r(po.java)
at com.sunopsis.graphical.c.po.<init>(po.java)
at com.sunopsis.graphical.frame.b.jh.by(jh.java)
at com.sunopsis.graphical.frame.bo.x(bo.java)
at com.sunopsis.graphical.frame.bo.d(bo.java)
at com.sunopsis.graphical.frame.w.actionPerformed(w.java)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
I'm sure it's something obvious that I've missed, but I've now spent close to two days researching, testing and drinking too much coffee. Any help would be very gratefully received!
Thanks.