在ODI11g中建立Microsoft SQL Server伺服器測試報錯問題
在ODI11.1.1.5.0中建立了Microsoft Sql Server的伺服器,
JDBC驅動程式名稱選擇了Microsoft SQL Server 2005 Driver for JDBC (com.microsoft.sqlserver.jdbc.SQLServerDriver)
所有引數配置妥當,進行測試時,系統報錯:
oracle.odi.core.exception.OdiRuntimeException: java.lang.IllegalArgumentException: Could not load JDBC driver class [com.microsoft.jdbc.sqlserver.SQLServerDriver]
at oracle.odi.core.datasource.provider.AbstractDataSourceProvider.configure(Unknown Source)
at oracle.odi.core.datasource.support.DefaultDataSourceManager.createAndConfigureDataSourceProvider(Unknown Source)
at oracle.odi.core.datasource.support.DefaultDataSourceManager$1.create(Unknown Source)
檢視資料,發現在ODI11g中有兩處地方是可以放置驅動檔案的:<WINDOWS_USER_HOME>\AppData\Roaming\odi\oracledi\userlib和<ODI_HOME>/agent/oracledi/drivers 。
兩個資料夾的放置意圖是不同的,對於ODI的伺服器端,可將驅動放在<ODI_HOME>\agent\drivers下,當進行資料庫連線時,自動會呼叫伺服器端的驅動,而用於連伺服器的客戶端,由於它們是沒有<ODI_HOME>\oracledi\agent\目錄的,因此在連線時即需要將驅動放在:<WINDOWS_USER_HOME>\
本例中,ODI伺服器為本機,解決方法如下:
2、解壓下載的驅動,將sqljdbc.jar放到<ODI_HOME>\agent\drivers目錄下
3、在<ODI_HOME>\agent\bin目錄下啟動代理,命令如下:agent.bat "-NAME=ScheduleAgent" "-PORT=20913"
4、測試伺服器連線,選擇ScheduleAgent,連線成功。