1

I am using pentaho data integration 4.1 (Kettle) to build an ETL system. My customer requires connecting to database (MS SQL Server) using window authentication, I knew that Kettle supported it . However when I run my Kettle job, it throws the exception

"I/O Error: SSO Failed: SSPI Not Initialized".

From an article on a forum, I copy library sqljdbc_auth.dll into jre/bin folder. The result is quite good, I can use window authentication to connect to SQL server. But this function is not stable, I mean sometimes it works well, sometimes it throws exception

"I/O Error: SSO Failed: SSPI Not Initialized".

Please tell me how to fix this error.

Thank you.

Levon
  • 138,105
  • 33
  • 200
  • 191
Minh-Hung Nguyen
  • 1,164
  • 1
  • 15
  • 21

3 Answers3

0

Are you using the JTDS driver? Try that combined with the ntlmauth.dll - that works great for us when running PDI on Windows Server 2003 connecting to various remote sqlserver databases.

We place the DLL in this folder:

libswt\win64

Codek
  • 5,114
  • 3
  • 24
  • 38
  • Yah, I saw it in the _\libswt\win32_ directory, and even copy it to _system32_ and _jre/bin_ folder. But nothing changes. I am using win7. However, I found out another way to solve my problem, I create a .NET app that enable sa account in MS SQL Server and use that account for Kettle to connect to database. – Minh-Hung Nguyen Jun 09 '12 at 04:25
  • ugh, not great that you have to do that, but at least it works! – Codek Jun 09 '12 at 06:29
0

To connect to SQL Server 2008, I had to install the 'Microsoft JDBC Driver 4.0 for SQL Server' and then add the path to sqljdbc_auth.dll to Spoon.bat in %PENTAHO_DI_JAVA_OPTIONS%. Like this:

set OPT=%PENTAHO_DI_JAVA_OPTIONS% "-Djava.library.path=%LIBSPATH%;C:\PROGRA~1\MICROS~1.0FO\sqljdbc_4.0\enu\auth\x86;C:\PROGRA~1\IBM\SQLLIB\BIN" "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%"

Ugly, but that's Java under Windows for you. Works quite reliably now though.

Brian.D.Myers
  • 2,448
  • 2
  • 20
  • 17
0

I've had the same issue while using JDBC 1.2.2 with MSSQL 2008. It turns out that there is a bug in the driver, making it randomly crash if you initialize it with more than one connection.

If we used only one initial connection to the DB this error never presented itself.

The issue is fixed in a later versions of JDBC. We currently use 1.3.0 and I/O Error: SSO Failed: SSPI Not Initialized never comes up.

Stoinov
  • 774
  • 12
  • 25