2012-07-23 37 views
5

Tôi đang gặp sự cố với công việc SSIS mà gần đây tôi đã tạo đang bị lỗi lạ.Lỗi SSIS Weird (Quy trình Thoát Mã 255)

Background Thông tin

này được một gói SSIS (.dtsx) đang được chạy với một công việc SQL (SQL Server 2008, công việc tạo ra với SSMS) sử dụng kiểu SQL Server Integration Services Package như bạn sẽ chờ đợi. Công việc chạy tốt trong môi trường phát triển của chúng tôi, nhưng không phải trong môi trường thử nghiệm của chúng tôi. Gói này sử dụng tệp cấu hình (.dtsConfig) để duy trì các chuỗi kết nối cho các môi trường khác nhau. Những gì các gói thực sự làm là khá đơn giản; nó cắt bớt một số bảng dàn, và sau đó điền vào sau đó với dữ liệu được lấy từ cơ sở dữ liệu Oracle sử dụng 8 luồng dữ liệu trong một vùng chứa chuỗi, với mỗi tác vụ chia thành Nguồn (Oracle) -> Chuyển đổi dữ liệu (cho chuỗi unicode) -> Điểm đến (SQL Server). Do kết nối Oracle cần được thực hiện, gói chứa người dùng/pass cho kết nối đó và như vậy có mức bảo vệ 'EncryptSensitiveWithPassword'to duy trì điều đó. Máy chủ mà công việc này đang được chạy trên đang chạy Windows Server 2008 R2 SP1. Tôi tin rằng nó như xa như thông tin cơ bản, nhưng nếu tôi bỏ lỡ bất cứ điều gì cho tôi biết.

Các Lỗi thực tế

Đây là thông điệp hữu ích chỉ trong lịch sử công việc công việc tan vỡ của:

Bước không tạo ra bất kỳ đầu ra. Giá trị trả lại không xác định. Mã thoát của quy trình là 255. Bước không thành công.

Như bạn thấy, không hữu ích lắm. Các kicker thực sự là khi tôi chạy công việc này bằng tay bằng cách sử dụng DTEXEC trên máy chủ, nó chạy tốt. Điều này khiến tôi tin rằng nó có thể là vấn đề về quyền với sqlagentadmin hoặc một thứ gì đó, nhưng mọi thứ tôi nhìn đều có vẻ ổn. Tôi đã kiểm tra những gì đã xảy ra bằng cách sử dụng procexplorer và nó đã chạy lệnh DTEXEC đúng. Trình xem sự kiện ứng dụng không bật lên với điều này mặc dù (do đó có thể là một vấn đề trình điều khiển oracle):

Faulting application name: DTExec.exe, version: 2007.100.5500.0, time stamp: 0x4e7b1ed6 
Faulting module name: OraClient11.Dll, version: 11.2.0.1, time stamp: 0x4bb1dcae 
Exception code: 0xc0000005 
Fault offset: 0x0000000000057106 
Faulting process id: 0x2d94 
Faulting application start time: 0x01cd66b0d360164d 
Faulting application path: C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
Faulting module path: c:\app\product\11.2.0\client_1\bin\OraClient11.Dll 
Report Id: 118a2173-d2a4-11e1-b1ec-001517955142 

Tôi đã xem qua internet hàng giờ và tôi đã thử một số thứ. Tôi đã thay đổi thuộc tính Xác thực Delay thành 'True' trên tất cả các luồng dữ liệu. Tôi đã thử thiết lập công việc với giao diện đồ họa tích hợp SSIS, và với tùy chọn hệ điều hành để chỉ chạy dtexec, cả hai đều thất bại.

Mọi đề xuất? Xin lỗi vì bức tường văn bản, nhưng tôi chỉ muốn chắc chắn rằng tôi đã bảo vệ mọi thứ.

Cảm ơn!

+1

Dường như trình điều khiển Oracle mà bạn đang chạy không hoạt động đúng cách. Dòng cuối cùng của đầu ra lỗi của bạn cho biết rằng lỗi nằm trong OraClient11.Dll. Bạn có thể thử chạy trên máy khác không? – rvphx

+0

Tôi cho rằng bạn chưa bật tính năng ghi nhật ký gói? – billinkc

+0

Tài khoản chạy gói trong thử nghiệm, giống như tài khoản Đại lý SQL hoặc bạn có proxy không? Nó được thiết lập giống nhau, tốt nhất bạn có thể nói, trong môi trường dev của bạn? – billinkc

Trả lời

0

Máy chủ của bạn có phải là máy chủ 64 bit không? Còn máy chủ Oracle thì sao? Chúng tôi gặp vấn đề tương tự khi sử dụng SSIS để kết nối với máy chủ Oracle. Chúng tôi đã phải cài đặt cả hai công cụ máy khách 64 bit và 32 bit trên máy chủ 64 bit của chúng tôi.

Ngoài ra, có một lá cờ mà bạn có thể phải đặt trong tác vụ Đại lý SQL để cho nó không sử dụng 64 bit. Nhìn vào các thuộc tính cho Bước. Chuyển đến tab Configuration, sau đó nhấn vào tab Advanced (nó có thể hơi khác một chút trong SQL 2008) và kiểm tra "32-bit runtime" rồi thử lại. Điều này có thể là lý do tại sao nó hoạt động khi gỡ lỗi nhưng không hoạt động như một công việc.

1

Tôi gặp lỗi sau: 'Bước không tạo ra bất kỳ đầu ra nào. Giá trị trả lại không xác định. Mã thoát của quy trình là 255. Bước không thành công.' Để giải quyết vấn đề của tôi, tôi đã kiểm tra các đặc quyền để đọc dữ liệu nguồn. Tôi không có quyền ưu tiên. Có đặc quyền chính xác và khởi động lại công việc của tôi đã giải quyết được vấn đề. Tôi có thể đề nghị rằng API giữa SSIS là nhiệm vụ thực thi và trong trường hợp của tôi, nhà cung cấp nguồn dữ liệu DB2 phải gán lỗi với thông tin tốt hơn: -) Sự cố được giải quyết bằng cách đọc riêng tư dữ liệu nguồn.

Các vấn đề liên quan