2014-11-03 20 views
6

Nasz serwer dev ma serwer SQL Server 2008 R2 w wersji 64-bitowej z SSIS. Aby móc importować pliki XLSX bezpośrednio z T-SQL (przez OPENROWSET), zainstalowaliśmy na serwerze dev Microsoft Access Database Engine Redistributable 64-bit. Serwer ma już zainstalowaną wersję 32-bitową, więc zainstalowaliśmy go z przełącznikiem/passive.SSIS i 64-bitowy aparat bazy danych Microsoft Access

Od tego czasu nasze istniejące pakiety zawodzą. Jeden z nich donosi

The step did not generate any output. The return value was unknown. The process exit code was -1066598274. The step failed.

prostu zastanawiasz się, czy ktoś został pomyślnie skonfigurowany ich serwer, aby móc korzystać z OPENROWSET do XLSX plików, a także mieć SSIS na tym samym serwerze, czy też ktoś wie czy ta konfiguracja nie jest możliwe?

Edycja: Powinienem dodać, że pakiety niepowodzeń są uruchamiane z zadania agenta SQL. Kiedy łączę się z serwerem Integration Services Manager za pomocą SQL Server Management Studio i uruchamiam pakiet (przechodząc do pakietu, klikając go prawym przyciskiem myszy i wybierając opcję Uruchom pakiet), pomyślnie się on uruchamia.

+1

RUnnign go przez kliknięcie prawym przyciskiem myszy w SSIS Manager i uruchomienie go w SQL Agent są bardzo różne. Konto użytkownika jest inne, a lokalizacja uruchomienia pakietu jest inna. Po kliknięciu prawym przyciskiem myszy i uruchomieniu jesteś zalogowany na serwerze lub jesteś na zdalnym kliencie? Czy otrzymujesz błąd "nie udało się uzyskać połączenia", gdy się nie powiedzie? Czy to połączenie Excel jest jedynym połączeniem? –

+0

Co się stanie, gdy [podasz linię komend DTEXEC w agencie SQL, aby użyć wersji 32-bitowej lub 64-bitowej] (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/289e29ad-26dc -4f90-bad4-ffb86c76e5f9/excel-error-64bit-version-of-ssis)? Zobacz także [tutaj] (https://technet.microsoft.com/en-us/library/ms141766 (v = sql.105) .aspx), aby uzyskać inne sposoby wyboru wersji. –

+0

@ Nick.McDermaid "Po kliknięciu prawym przyciskiem myszy i uruchomieniu jesteś zalogowany na serwerze lub jesteś na zdalnym kliencie?" Na zdalnym kliencie. "Czy otrzymujesz błąd" nie udało się uzyskać połączenia ", gdy się nie powiedzie?" Nie. "Czy to połączenie z Excelem to jedyne połączenie?" Nie. Problem jest na serwerze produkcyjnym, mamy tam wiele połączeń. –

Odpowiedz

0

Tak, jest to możliwe. Musisz określić, aby użyć 32-bitowego środowiska wykonawczego w kroku zadania. Otwórz każdy krok zadania, który uruchamia jeden z pakietów SSIS i kliknij "Opcje wykonania". Zaznacz pole u dołu "Użyj 32-bitowego środowiska wykonawczego".

+0

Zrobiłem to, zanim otrzymałem błąd. W rzeczywistości "Użyj 32-bitowego środowiska wykonawczego" rozwiązuje kolejny błąd: SSIS DTS_E_OLEDB_EXCEL_NOT_SUPPORTED –

1

Osobiście zrezygnowałem z próby wsparcia tego scenariusza - myślę, że "/ pasywna" instalacja to hack, który faktycznie działa i zwykle łamie twoją drugą instalację ADE. Całkowicie odrzuciłbym ADE, a następnie ponownie zainstalowałem tylko wersję 32-bitową. Zmusiłbym wtedy wszystkie pakiety uruchamiane przez agenta SQL do wykonania jako 32-bitowe (jak to opisał Brian).

Po tym procesie pojawia się pewna nadzieja na problemy z debugowaniem, ponieważ można otworzyć pakiet w Visual Studio i będzie on używać tego samego 32-bitowego sterownika. Będziesz także używał stałego sterownika podczas wykonywania z SSMS (również 32-bitowego).

Tak, może nastąpić uderzenie wydajności, ale wydajność SSIS jest zazwyczaj ograniczona do pewnego stopnia przez operacje wejścia/wyjścia lub sieci, a nie tylko czystą przepustowość silnika.

0

Miałem "Krok nie generował żadnych danych wyjściowych, wartość zwracana była nieznana Kod wyjścia procesu był -1066598274. Krok nie powiódł się".
Znalazłem dla siebie przejście: przełączyłem się z użycia xlsx na xls, a błąd nie jest już zgłaszany.