web-dev-qa-db-ja.com

SSMSでSSISパッケージジョブを実行中にエラーが発生しました

SSMSでSSISパッケージジョブを実行中にエラーが発生しました

こんにちは! "My_Package"という名前のSSISパッケージが、毎日午前5時に実行されるSSMSのジョブとしてスケジュールされています。

SQL Serverのバージョン:Microsoft SQL Server 2014 Enterprise Edition

ジョブは次のようにスクリプト化されています。

USE [msdb]
GO

BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE     name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'My_Package', 
    @enabled=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=0, 
    @notify_level_netsend=0, 
    @notify_level_page=0, 
    @delete_level=0, 
    @description=N'Run IS package My_Package

--DOMAIN\sqlserviceaccount', 
    @category_name=N'[Uncategorized (Local)]', 
    @owner_login_name=N'DOMAIN\sqlserviceaccount', @job_id = @jobId         OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Run Package', 
    @step_id=1, 
    @cmdexec_success_code=0, 
    @on_success_action=1, 
    @on_success_step_id=0, 
    @on_fail_action=4, 
    @on_fail_step_id=2, 
    @retry_attempts=0, 
    @retry_interval=0, 
    @os_run_priority=0, @subsystem=N'SSIS', 
    @command=N'/FILE "\"D:\Reports\IS_logs\My_Package.dtsx\"" /CHECKPOINTING OFF /REPORTING E', 
    @database_name=N'master', 
    @flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Failure E-mail', 
    @step_id=2, 
    @cmdexec_success_code=0, 
    @on_success_action=2, 
    @on_success_step_id=0, 
    @on_fail_action=2, 
    @on_fail_step_id=0, 
    @retry_attempts=0, 
    @retry_interval=0, 
    @os_run_priority=0, @subsystem=N'TSQL', 
    @command=N'declare @subjectLine varchar(128)
declare @messageBody varchar(4048)

declare @fileName varchar(30)

set @fileName = ''My_Package'' + cast(year(getDate()) as varchar(4))

if (month(getDate()) < 10)
begin
set @fileName = @fileName + ''0''
end
set @fileName = @fileName + cast(month(getDate()) as varchar(2))

if (day(getDate()) < 10)
begin
set @fileName = @fileName + ''0'' 
end
set @fileName = @fileName + cast(day(getDate()) as varchar(2)) + ''.log''

set @subjectLine = ''AMS_Clients_Package job failed on '' + @@SERVERNAME
set @messageBody = '' '' + @fileName

execute msdb..sp_send_dbmail
@PROFILE_NAME = ''mailprofile'',
@RECIPIENTS = ''[email protected]'',
@SUBJECT = @subjectLine,
@BODY = ''Check the job history for error message''', 
    @database_name=N'master', 
    @flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'5:00AM Schedule', 
    @enabled=1, 
    @freq_type=4, 
    @freq_interval=1, 
    @freq_subday_type=1, 
    @freq_subday_interval=0, 
    @freq_relative_interval=0, 
    @freq_recurrence_factor=0, 
    @active_start_date=20090602, 
    @active_end_date=99991231, 
    @active_start_time=50000, 
    @active_end_time=235959, 
    @schedule_uid=N'fa715710-cb0c-43a0-ad3d-dbcf9c4f5285'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO

ジョブは2015年2月11日まで問題なく機能し、その後エラーで毎日失敗し始めました:

ステップ名パッケージ実行時間00:00:01 SQL重大度0 SQLメッセージID 0オペレーターにメール
Operator Net sent
ページングされたオペレーター
試行された再試行0

ユーザーとして実行されたメッセージ:DOMAIN\sqlserviceaccount。 Microsoft(R)SQL Server実行パッケージユーティリティバージョン12.0.2000.8(64ビット版)Copyright(C)Microsoft Corporation。全著作権所有。
開始:5:00:00 AM
エラー:2015-02-15 05:00:01.29
コード:0xC0014005
出典:My_Package
説明:接続マネージャー "SharePoint Credential"に指定された接続タイプ "SPCRED"は、有効な接続マネージャータイプとして認識されません。このエラーは、不明な接続タイプの接続マネージャーを作成しようとしたときに返されます。接続タイプ名のスペルを確認してください。
終了エラー
エラー:2015-02-15 05:00:01.29
コード:0xC0010018
出典:My_Package
説明:値の読み込み中にエラーが発生しました "終了エラー
エラー0xC0010014のため、パッケージ "D:\ Reports\IS_logs\My_Package.dtsx"をロードできませんでした。
説明:エラー0xC0010014により、パッケージを読み込めませんでした。「1つ以上のエラーが発生しました。このエラーの前に、エラーの詳細を説明する特定のエラーがあるはずです。このメッセージは、関数からの戻り値として使用されますエラーが発生しました。」これは、CPackage :: LoadFromXMLが失敗した場合に発生します。
出典:My_Package
開始:5:00:00 AM
終了:5:00:01 AM
経過:0.36秒。
パッケージをロードできませんでした。
ステップが失敗しました。

私はSDBAに関する知識が少ないSQLDBAです。提案してください。

3
Anandita Sharma

パッケージ自体は失敗していません。ロードに失敗しています。パッケージまたはその構成のいずれかが変更されている必要があります。

まず、ジョブの実行を妨げているエラーは、「接続マネージャー "SharePoint Credential"に指定された接続タイプ "SPCRED"は有効な接続マネージャータイプとして認識されません。」です。 SharePointコネクタはネイティブSSISコンポーネントではありません。サードパーティのSharePointコンポーネントを再インストール、アップグレード、再ライセンス、または再構成する必要があるサーバーの変更はありましたか?

それで問題ない場合は、ジョブの実行方法を確認すると、エラーステートメント "CPackage :: LoadFromXMLが失敗しました"は、接続パラメーターがSSIS XML .configファイルから取得されていることを示しています。そのため、設定ファイルをチェックして、接続文字列に問題がなく、変更されていないことを確認する必要があります。

それでも修正されない場合は、開発環境でパッケージを開き、そこからデバッグする必要があります。 SSISパッケージのデバッグは、問題のパッケージの詳細がなければ、この説明の範囲を超えています。

1
Nigel Ainscoe