Ssis Package,job Schedules In Sql Server 2005
Jan 16, 2008can any one tell me the sql server 2005
job schedules,
ssis packages
can any one tell me the sql server 2005
job schedules,
ssis packages
Whenever I set a schedule on any given package, it executes OK, but I'm not able to bring back those settings for review. Instead, it always starts with the blank schedule form. Any hints?
** Thanx in advance **
P.S. I log in NT as an Administrator.
I've build the deployment manifest of my ssis package, and installed it on the sql server machine, now, how do i run this packege on sql server 2005?
View 1 Replies View RelatedHi,
We are migrating our production environment from 32-bit SQL Server 2005, Windows 2003 server to 64-bit SQL Server 2005, Windows 2003 server environment with 4GB of RAM. We have recompiled the SSIS packages to run in 64-bit mode and stored them in database. But one of the package fails with initial information as
Information: The buffer manager detected that the system was low on virtual memory, but was unable to swap out any buffers. 34720 buffers were considered and 34720 were locked. Either not enough memory is available to the pipeline because not enough is installed, other processes are using it, or too many buffers are locked.
And the subsequent error messages received as
Error Message 1
A buffer could not be locked. The system is out of memory or the buffer manager has reached its quota.
Error Message 2
An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Reading from DTS buffer timed out.".
Please guide us in troubleshooting this issue.
Thanks & Regards
Amit
Hi, here is my problem :
I want to run ssis package in sql server 2005 agent.
i've made a new JOB with 3 steps ( 3 ssis package)
But when i run the job, i see only 2 "actions step" in the windows :
Start job .....
Execute job ....
I would like to see at least the execution status of every ssis package and if it's possible,
the execution of every task ( to see quickly if there's some error and what's wrong)
What's the best solution to doing that
Thank for helping
BG.
I am new to SQL server 2005 and have a config question:
I am controlling database connection info using XML indirect config - no problems there.
Essentially I am going to have a number of packages that need to use a common file path, that might change from one server to the next, e.g. Server 1: C:sourceFiles versus Server 2: D:sourceFiles. Within this directory the filenames will remain static. So in the flat file connection manager I'd like to use a variable to reflect the folder - but I don't want to have to create this for each package.
So, I thought I would create a system environment variable and create expressions for the connection managers - something like %SOURCE_DIR% + "file.csv" - but this does not evaluate correctly.
So then i though I could use the SQL server configurations table with a configurationFilter SOURCE_DIR and appropriate configuration value - but then how do I access this in the flat file connection manager to create a dynamic file name?
So essentially I want a variable/property available globally to all my packages and potential flat file connection managers that help me to centrally control file path locations.
Any help would be most appreciated.
Hi,
My name is Vinh, I am a new bee in SQL Server 2005. I am using template script (see below) from SQL Server to create account but when I am right click in database mail for testing email and I got the message, could not connect to mail server.
Below I am trying to use smtp to connect but I know in my company we are using Exchange Mail Server. will that make a lot different?
Please help me,
Thank you very much,
sp_configure 'database mail xps', 1
GO
reconfigure
GO
-------------------------------------------------------------
-- Database Mail Simple Configuration Template.
--
-- This template creates a Database Mail profile, an SMTP account and
-- associates the account to the profile.
-- The template does not grant access to the new profile for
-- any database principals. Use msdb.dbo.sysmail_add_principalprofile
-- to grant access to the new profile for users who are not
-- members of sysadmin.
-------------------------------------------------------------
DECLARE @profile_name sysname,
@account_name sysname,
@SMTP_servername sysname,
@email_address NVARCHAR(128),
@display_name NVARCHAR(128);
-- Profile name. Replace with the name for your profile
SET @profile_name = 'TestProfile';
-- Account information. Replace with the information for your account.
SET @account_name = 'vdang';
SET @SMTP_servername = 'smtp.cgdnow.com';
SET @email_address = 'vdang@cdgnow.com';
SET @display_name = 'Vinh, Dang';
-- Verify the specified account and profile do not already exist.
IF EXISTS (SELECT * FROM msdb.dbo.sysmail_profile WHERE name = @profile_name)
BEGIN
RAISERROR('The specified Database Mail profile (<profile_name,sysname,SampleProfile>) already exists.', 16, 1);
GOTO done;
END;
IF EXISTS (SELECT * FROM msdb.dbo.sysmail_account WHERE name = @account_name )
BEGIN
RAISERROR('The specified Database Mail account (<account_name,sysname,SampleAccount>) already exists.', 16, 1) ;
GOTO done;
END;
-- Start a transaction before adding the account and the profile
BEGIN TRANSACTION ;
DECLARE @rv INT;
-- Add the account
EXECUTE @rv=msdb.dbo.sysmail_add_account_sp
@account_name = @account_name,
@email_address = @email_address,
@display_name = @display_name,
@mailserver_name = @SMTP_servername;
IF @rv<>0
BEGIN
RAISERROR('Failed to create the specified Database Mail account (<account_name,sysname,SampleAccount>).', 16, 1) ;
GOTO done;
END
-- Add the profile
EXECUTE @rv=msdb.dbo.sysmail_add_profile_sp
@profile_name = @profile_name ;
IF @rv<>0
BEGIN
RAISERROR('Failed to create the specified Database Mail profile (<profile_name,sysname,SampleProfile>).', 16, 1);
ROLLBACK TRANSACTION;
GOTO done;
END;
-- Associate the account with the profile.
EXECUTE @rv=msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = @profile_name,
@account_name = @account_name,
@sequence_number = 1 ;
IF @rv<>0
BEGIN
RAISERROR('Failed to associate the speficied profile with the specified account (<account_name,sysname,SampleAccount>).', 16, 1) ;
ROLLBACK TRANSACTION;
GOTO done;
END;
COMMIT TRANSACTION;
done:
GO
when i run activex Script it's shows this error
[ActiveX Script Task] Error: Retrieving the file name for a component failed with error code 0x001B6438
I am exporting 350 tables data from SQL Server 2005 to Access 2003.and getting the below error.
SSIS package "Package2.dtsx" starting.
Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning.
Information: 0x40043006 at Data Flow Task, DTS.Pipeline: Prepare for Execute phase is beginning.
Error: 0xC0202009 at Package2, Connection manager "DestinationConnectionOLEDB": SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft JET Database Engine" Hresult: 0x80004005 Description: "Unspecified error".
Error: 0xC020801C at Data Flow Task, Destination 64 - CLIMBINGEXP [8065]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "DestinationConnectionOLEDB" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
Error: 0xC004701A at Data Flow Task, DTS.Pipeline: component "Destination 64 - CLIMBINGEXP" (8065) failed the pre-execute phase and returned error code 0xC020801C.
Any clue?
Below is the script of a Job called "eFIMS_SendEmail" that I wish torun. The intention is that every day of the week the job will executea SPROC at timed intervals. For example, the SundayRun schedule willrun once every 1 hours from 00:30:00 to 23:59:59However, the clients have stated that they want an interface to this toenable them easily to change the start time and frequency interval foreach day. It's an easy matter for me to paint them a form from withinthe target application to enable the user to enter the start time andinterval for each day. I can then pass these as parameters to a SPROC.How can I use these values to change the schedules for the job? Forexample, if wanted to change SundayRun from once every 1 hours to onceevery 30 mins? I know I could do it the hard way, by using stringmanipulation (e.g. find string 'SundayRun', then look for the nextoccurrence of @active_start_time, @freq_subday_type,@freq_subday_interval etc. and do some replacement) but this seemssomewhat tricky.Many thanksEdward-- Script generated on 8/31/2006 9:27 AM-- By: sa-- Server: BISMARKBEGIN TRANSACTIONDECLARE @JobID BINARY(16)DECLARE @ReturnCode INTSELECT @ReturnCode = 0IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name =N'[Uncategorized (Local)]') < 1EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'-- Delete the job with the same name (if it exists)SELECT @JobID = job_idFROM msdb.dbo.sysjobsWHERE (name = N'eFIMS_SendEmail')IF (@JobID IS NOT NULL)BEGIN-- Check if the job is a multi-server jobIF (EXISTS (SELECT *FROM msdb.dbo.sysjobserversWHERE (job_id = @JobID) AND (server_id <0)))BEGIN-- There is, so abort the scriptRAISERROR (N'Unable to import job ''eFIMS_SendEmail'' since thereis already a multi-server job with this name.', 16, 1)GOTO QuitWithRollbackENDELSE-- Delete the [local] jobEXECUTE msdb.dbo.sp_delete_job @job_name = N'eFIMS_SendEmail'SELECT @JobID = NULLENDBEGIN-- Add the jobEXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT ,@job_name = N'eFIMS_SendEmail', @owner_login_name = N'sa', @description= N'No description available.', @category_name = N'[Uncategorized(Local)]', @enabled = 0, @notify_level_email = 0, @notify_level_page =0, @notify_level_netsend = 0, @notify_level_eventlog = 2,@delete_level= 0IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollback-- Add the job stepsEXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID,@step_id = 1, @step_name = N'SendEmail', @command = N'EXECstpSendEmailConfirmation', @database_name = N'194-eFIMS', @server =N'', @database_user_name = N'', @subsystem = N'TSQL',@cmdexec_success_code = 0, @flags = 4, @retry_attempts = 0,@retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0,@on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID,@start_step_id = 1IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollback-- Add the job schedulesEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'SundayRun', @enabled = 1, @freq_type = 8, @active_start_date= 20060831, @active_start_time = 3000, @freq_interval = 1,@freq_subday_type = 8, @freq_subday_interval = 1,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'MondayRun', @enabled = 1, @freq_type = 8, @active_start_date= 20060831, @active_start_time = 3000, @freq_interval = 2,@freq_subday_type = 4, @freq_subday_interval = 30,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'TuesdayRun', @enabled = 1, @freq_type = 8, @active_start_date= 20060831, @active_start_time = 4000, @freq_interval = 4,@freq_subday_type = 4, @freq_subday_interval = 40,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'WednesdayRun', @enabled = 1, @freq_type = 8,@active_start_date = 20060830, @active_start_time = 3000,@freq_interval = 8, @freq_subday_type = 4, @freq_subday_interval = 30,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'ThursdayRun', @enabled = 1, @freq_type = 8,@active_start_date = 20060831, @active_start_time = 3500,@freq_interval = 16, @freq_subday_type = 4, @freq_subday_interval = 35,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'FridayRun', @enabled = 1, @freq_type = 8, @active_start_date= 20060831, @active_start_time = 3000, @freq_interval = 32,@freq_subday_type = 4, @freq_subday_interval = 30,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackEXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,@name = N'SaturdayRun', @enabled = 1, @freq_type = 8,@active_start_date = 20060831, @active_start_time = 0, @freq_interval =64, @freq_subday_type = 8, @freq_subday_interval = 1,@freq_relative_interval = 0, @freq_recurrence_factor = 1,@active_end_date = 99991231, @active_end_time = 235959IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollback-- Add the Target ServersEXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID,@server_name = N'(local)'IF (@@ERROR <0 OR @ReturnCode <0) GOTO QuitWithRollbackENDCOMMIT TRANSACTIONGOTO EndSaveQuitWithRollback:IF (@@TRANCOUNT 0) ROLLBACK TRANSACTIONEndSave:
View 1 Replies View RelatedHi there
We have a SSIS run which runs as follows
The master package has a configuration file, specifying the connect strings
The master package passes these connect-strings to the child packages in a variable
Both master package and child packages have connection managers, setup to use localhost. This is done deliberately to be able to test the packages on individual development pc€™s.
We do not want to change anything inside the packages when deploying to test, and from test to production. All differences will be in the config files (which are pretty fixed, they very seldom change). That way we can be sure that we can deploy to production without any changes at all.
The package is run from the file system, through a job-schedule.
We experience the following when running on a not default sql-server instance (called dkms5253uedw)
Case 1:
The master package starts by executing three sql-scripts (drop foreign key€™s, truncate tables, create foreign key€™s). This works fine.
The master package then executes the first child package. We then in the sysdtslog get:
Error - €œcannot connect to database xxx€?
Info - €œpackage is preparing to get connection string from parent €¦€?
The child package then executes OK, does all it€™s work, and finish. Because there has been an error, the master package then stops with an error.
Case 2:
When we run exactly the same, but with the connection strings in the config file pointing to the default instance (dkms5253), the everything works fine.
Case 3:
When we run exactly the same, again against the dkms5253uedw instance, but now with the exact same databases defined in the default instance, it also works perfect.
Case 4:
When we then stop the sql-server on the default instance, the package faults again, this time with
Error - €œtimeout when connect to database xxx€?
Info - €œpackage is preparing to get connection string from parent €¦€?
And the continues as in the first case
From all this we conclude, that the child package tries to connect to the database before it knows the connection string it gets passed in the variable from the master package. It therefore tries to connect to the default instance, and this only works if the default instance is running and has the same databases defined. As far as we can see, the child package does no work against the default instance (no logging etc.).
We have tried delayed validation in the packages and in the connection managers, but with the same results (error).
So we are desperately hoping that someone can help us solve this problem.
Thanx,
/Nils M - Copenhagen
I saved a SSIS ( data Import package in SQL SERV 2005)
how can i run it????
I have an SSIS package stored on the file system and I want to execute it from a Visual Studio 2005 VB project. I have searched the internet for examples and have been unable to find any examples. I gather that I will be using SQLSMO however I'm at a loss on how to do this task. Any help is appreciated! Thanks.
Karen
running ssis package with ssis run time compoenents and sql server 2000...
Is it possible to run ssis packages that point to servers on sql server 2000
without installing sql server 2005 ?
Can we just install runtime for ssis and run the packages ?
Please explian with links if possible
thanks a lot
Hey, I've a few jobs which call SSIS packages. If I run the SSIS package, it runs fine but if I try to run the job which calls this package, it fails. Can someone help me troubleshoot this issue? None of my jobs that call an SSIS package work. All of them fail.
Thank you
Tej
I keep getting a failure when trying to run my agent which is trunning an SSIS 2005 package. I have checked the logins and appear to have given the right logins owner to the msdb database and my other databases but still getting this error:
03/09/2006 10:13:31,Run EBN Process,Error,0,BG-22SQL,Run EBN Process,(Job outcome),,The job failed. The Job was invoked by User domainmyuserid. The last step to run was step 1 (Run EBN SSIS Package).,00:00:02,0,0,,,,0
03/09/2006 10:13:31,Run EBN Process,Error,1,BG-22SQL,Run EBN Process,Run EBN SSIS Package,,Executed as user: domainaccount_we_setup_to_run_all_sql_services_on_this_server. The package execution failed. The step failed.,00:00:02,0,0,,,,0
Is it the package that is failing or permission issue?
I have a package designed and working correctly for months now. My challenge now is to run this package on a box that does not have SQL 2005 SSIS install. It has SQL 2000 installed.
My question is - Can I compile the SSIS into EXE or any other kind of DTS package to run on a none-SQL 2005 box?
Thanks!
--Jon
Hi,
I have created SSIS Package using DTS vizard in SQL 2005 Express. Help me out to execute the Package.
Thanks
I have successfully used migrate wizard to migrate DTS pacakge to TrainingDTS.dtsx.
What should I do next? when I run
C:>dtexec /file "C:TrainingDTS.dtsx"
Error: 2008-05-13 09:14:31.36
Code: 0xC0029172
Source: File Transfer Protocol Task undefined FTP Task
Description: The connection is empty. Verify that a valid FTP connection is p
rovided.
End Error
Error: 2008-05-13 09:14:31.36
Code: 0xC0024107
Source: File Transfer Protocol Task undefined
Description: There were errors during task validation.
End Error
DTExec: The package execution returned DTSER_FAILURE (1).
Hi,
I have to create a migration package ..means package should migrate the sql server 2000 tables to 2005 tables (Not dealing with data at this point of time and ignoring SPs,DTS packages).But there are lot of normalisation ans schema changes in 2005 compared to 2000.Like,
- One 2000 table devided into 3-4 tables in 2005
- Lot of changes in the filed names
- Handling integrity relationship between the newversion tables
Being new to SSIS ,iam in confusion like how to start and where to start.can you pls tell me the steps(Structured way) i have to fallow
-- I have around 8-9 tables in 2000 ,I have to migrate them into 18-19 tables (with some new fileds )
-- For each table i have to create one package(bcoz lot of transformations are there) or I can create one package for all of those ? but the finally i have to handover one package to the client
pls ask me if u need any further info to come up with the explanation..bcoz iam not sure whether i provided enough info or not
Thanks for ur help
Niru
How would we know to assign the time stamps for automated backups in job schedules....
View 1 Replies View RelatedHi,
I created a package which passes some infornmations( through parameters) to its child package.
I need to do some processing in parent package based on execution status of child package.i.e.
if child fails then some operation and if child succeeds then other operation.
To determine the status of execution of child package I am using two differnt constraint ..one constraint is having value "Success" and other having value "Failure".
My problem is that when child packge is executed successfully the constraint with value = "Success" works properly but when child fails the constraint with value "Failure" does not work.
-Prashant
I am trying to execute an SSIS package from an MS Access 2003 database that imports a table from the Access database into a target table in SQL 2005. I saved the package in SQL 2005 and tested it out. If I run it from the Management Studio Console with Run->Execute ... everything works just fine. However, if I try to run it using the following line command "Exec master.dbo.xp_cmdshell 'DTExec /SER DATAFORCE /DTS SQL2005TestPackage /CHECKPOINTING OFF /REPORTING V'" the execution will always fail when the Access database is open (shared mode). The connection manager looks like this: "Data Source=E:Test.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Jet OLEDB:Global Bulk Transactions=1". The error is listed below:
Code: 0xC0202009
Source: NewPackage Connection manager "SourceConnectionOLEDB"
Description: An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft JET Database Engine" Hresult: 0x80004005 Description: "Could not use ''; file already in use.".
What am I doing wrong?
Visual Studio runs out of memory when trying to use SSIS package. I am trying to create and run a SSIS package that validates and imports some large xml files >200MB. Validation fails because Visual studio cannot open large files without running out of memory.
The SSIS package throws this error when I run the package..at the validation task.
Error: 0xC002F304 at Validate bio_fixed, XML Task: An error occurred with the following error message: "Exception of type 'System.OutOfMemoryException' was thrown.".
How do I increase the amount of RAM that VIsual Studio can use...I have plenty of RAM on my workstation >3GB, but VS chokes maybe around 100MB files?
Thanks,
Forrest
I am trying to execute an SSIS package from an MS Access 2003 database that imports a table from the Access database into a target table in SQL 2005. I saved the package in SQL 2005 and tested it out. If I run it from the Management Studio Console with Run->Execute ... everything works just fine. However, if I try to run it using "Exec master.dbo.xp_cmdshell 'DTExec /SER DATAFORCE /DTS SQL2005TestPackage /CHECKPOINTING OFF /REPORTING V'" the execution will always fail when the Access database is open (shared mode). It will only work when the Access database is not open. The connection manager looks like this: "Data Source=E:Test.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Jet OLEDB:Global Bulk Transactions=1". The error is listed below:
Code: 0xC0202009
Source: NewPackage Connection manager "SourceConnectionOLEDB"
Description: An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft JET Database Engine" Hresult: 0x80004005 Description: "Could not use ''; file already in use.".
What am I doing wrong?
Hi everyone,
I wanted to thank everyone for posting a ton of valuable information in these forums. I also want to thank all the moderators that have been replying with really insightful help!
I am trying to programmatically create an SSIS package to take .CSV data and put it into a SQL Server 2005. I am assuming that this is pretty common scenario.
I have used many of the examples in this forum as well as heavily borrowing from this example http://www.codeproject.com/csharp/Digging_SSIS_object_model.asp written by Moim Hossain.
I can get my package to create and execute properly but no data is being written to the SQL Server table. This has puzzled me for the last 2 days!
I know the issue isnt with the server itself because I tested it by graphically creating a test SSIS package and it transfers the .CSV data to the table perfectly.
Would anyone know why this would happen? The Execution results are returning success but no data is written to the table!
Could anyone please provide insight as to what my issue may be?
Thanks in advance!
Code Snippet
using System;
using System.IO;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using PipeLineWrapper = Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using RuntimeWrapper = Microsoft.SqlServer.Dts.Runtime.Wrapper;
namespace SumCodeApp
{
class SumCodeApp
{
// Variables.
private Package package;
private ConnectionManager flatFileConnectionManager;
private ConnectionManager destinationDatabaseConnectionManager;
private Executable dataFlowTask;
private List<String> srcColumns;
int file_count;
SqlConnection connection;
String folder_path;
String username;
String password;
String DB_server;
String catalog;
// Default Constructor.
public SumCodeApp()
{
}
// Constructor taking in user info.
public SumCodeApp(String folder_path, String username, String password,
String DB_server, String catalog)
{
this.folder_path = folder_path;
this.username = username;
this.password = password;
this.DB_server = DB_server;
this.catalog = catalog;
}
private void CreatePackage()
{
package = new Package();
package.CreationDate = DateTime.Now;
package.ProtectionLevel = DTSProtectionLevel.DontSaveSensitive;
package.Name = "SumCode Package";
package.Description = "Upload the SumCode files to the database";
package.DelayValidation = true;
package.PackageType = DTSPackageType.DTSDesigner90;
}
private void CreateFlatFileConnection()
{
String flatFileName = ". 1105.csv";
String flatFileMoniker = "FLATFILE";
flatFileConnectionManager = package.Connections.Add(flatFileMoniker);
flatFileConnectionManager.Name = "SSIS Connection Manager for Files";
flatFileConnectionManager.Description = String.Concat("SSIS Connection Manager");
flatFileConnectionManager.ConnectionString = flatFileName;
// Set some common properties of the connection manager object.
//flatFileConnectionManager.Properties["ColumnNamesInFirstRow"].SetValue(flatFileConnectionManager, false);
flatFileConnectionManager.Properties["Format"].SetValue(flatFileConnectionManager, "Delimited");
flatFileConnectionManager.Properties["TextQualifier"].SetValue(flatFileConnectionManager, """);
flatFileConnectionManager.Properties["RowDelimiter"].SetValue(flatFileConnectionManager, "
");
flatFileConnectionManager.Properties["DataRowsToSkip"].SetValue(flatFileConnectionManager, 0);
// Create the source columns into the connection manager.
CreateSourceColumns();
}
private void CreateSourceColumns()
{
// Get the actual connection manager instance
RuntimeWrapper.IDTSConnectionManagerFlatFile90 flatFileConnection = flatFileConnectionManager.InnerObject as RuntimeWrapper.IDTSConnectionManagerFlatFile90;
RuntimeWrapper.IDTSConnectionManagerFlatFileColumn90 column;
RuntimeWrapper.IDTSName90 name;
// Fill the source column collection.
srcColumns = new List<String>();
srcColumns.Add("CreateDate");
srcColumns.Add("CorpID");
srcColumns.Add("SumCodeID");
srcColumns.Add("Priority");
srcColumns.Add("SumCodeAbv");
srcColumns.Add("SumCodeDesc");
srcColumns.Add("SumCodeGroupID");
foreach (String colName in srcColumns)
{
column = flatFileConnection.Columns.Add();
if (srcColumns.IndexOf(colName) == (srcColumns.Count - 1))
//column.ColumnDelimiter = "
";
column.ColumnDelimiter = "{CR}{LF}";
else
//column.ColumnDelimiter = ",";
column.ColumnDelimiter = "Comma {,}";
name = (RuntimeWrapper.IDTSName90)column;
name.Name = colName;
column.TextQualified = true;
column.ColumnType = "Delimited";
column.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
column.ColumnWidth = 0;
column.MaximumWidth = 255;
column.DataPrecision = 0;
column.DataScale = 0;
}
}
private void CreateDestinationDatabaseConnection()
{
destinationDatabaseConnectionManager = package.Connections.Add("OLEDB");
destinationDatabaseConnectionManager.Name = "Destination Connection - SumCodeCorpGroup";
destinationDatabaseConnectionManager.Description = "Connection to the temporary table SumCodCorpGroup";
destinationDatabaseConnectionManager.ConnectionString = "Data Source=DIVWL-356KCB1;Initial Catalog=SumCode;Provider=SQLOLEDB;Persist Security Info=True;User ID=sum;Password=code";
}
public class Column
{
private String name;
private Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType dataType;
private int length;
private int precision;
private int scale;
private int codePage = 0;
public String Name
{
get { return name; }
set { name = value; }
}
public Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType DataType
{
get { return dataType; }
set { dataType = value; }
}
public int Length
{
get { return length; }
set { length = value; }
}
public int Precision
{
get { return precision; }
set { precision = value; }
}
public int Scale
{
get { return scale; }
set { scale = value; }
}
public int CodePage
{
get { return codePage; }
set { codePage = value; }
}
}
private Column GetTargetColumnInfo(string sourceColumnName)
{
Column cl = new Column();
if (sourceColumnName.Contains("CreateDate"))
{
cl.Name = "CreateDate";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
else if (
sourceColumnName.Contains("CorpID"))
{
cl.Name = "CorpID";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
else if (sourceColumnName.Contains("SumCodeID"))
{
cl.Name = "SumCodeID";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
else if (sourceColumnName.Contains("Priority"))
{
cl.Name = "Priority";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
else if (sourceColumnName.Contains("SumCodeAbv"))
{
cl.Name = "SumCodeAbv";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
else if (sourceColumnName.Contains("SumCodeDesc"))
{
cl.Name = "SumCodeDesc";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
else if (sourceColumnName.Contains("SumCodeGroupID"))
{
cl.Name = "SumCodeGroupID";
cl.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR;
cl.Precision = 0;
cl.Scale = 0;
cl.Length = 255;
cl.CodePage = 1252;
}
return cl;
}
private void CreateDataFlowTask()
{
String dataFlowTaskMoniker = "DTS.Pipeline";
dataFlowTask = package.Executables.Add(dataFlowTaskMoniker);
}
public void ImportFile(String directory_path)
{
// Create the package.
CreatePackage();
// Create Flat File Source Connection.
CreateFlatFileConnection();
// Create Database Destination Connection.
CreateDestinationDatabaseConnection();
// Create DataFlowTask.
CreateDataFlowTask();
// Create the DataFlowTask
PipeLineWrapper.IDTSComponentMetaData90 sourceComponent = ((dataFlowTask as TaskHost).InnerObject as PipeLineWrapper.MainPipe).ComponentMetaDataCollection.New();
sourceComponent.Name = "Source File Component";
sourceComponent.ComponentClassID = "DTSAdapter.FlatFileSource";
PipeLineWrapper.CManagedComponentWrapper managedFlatFileInstance = sourceComponent.Instantiate();
managedFlatFileInstance.ProvideComponentProperties();
sourceComponent.RuntimeConnectionCollection[0].ConnectionManagerID = flatFileConnectionManager.ID;
sourceComponent.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(flatFileConnectionManager);
managedFlatFileInstance.AcquireConnections(null);
managedFlatFileInstance.ReinitializeMetaData();
Dictionary<String, int> outputColumnLineageIDs = new Dictionary<String, int>();
PipeLineWrapper.IDTSExternalMetadataColumn90 exOutColumn = null;
foreach (PipeLineWrapper.IDTSOutputColumn90 outColumn in sourceComponent.OutputCollection[0].OutputColumnCollection)
{
exOutColumn = sourceComponent.OutputCollection[0].ExternalMetadataColumnCollection[outColumn.Name];
managedFlatFileInstance.MapOutputColumn(sourceComponent.OutputCollection[0].ID, outColumn.ID, exOutColumn.ID, true);
outputColumnLineageIDs.Add(outColumn.Name, outColumn.ID);
}
managedFlatFileInstance.ReleaseConnections();
String a = sourceComponent.RuntimeConnectionCollection[0].Name.ToString();
String b = sourceComponent.OutputCollection[0].Name;
String c = sourceComponent.OutputCollection[0].Description;
String d = sourceComponent.OutputCollection[0].OutputColumnCollection.Count.ToString();
// Create DataFlowTask Destination Component.
PipeLineWrapper.IDTSComponentMetaData90 destinationComponent = ((dataFlowTask as TaskHost).InnerObject as PipeLineWrapper.MainPipe).ComponentMetaDataCollection.New();
destinationComponent.Name = "OLEDB SQL Connection";
destinationComponent.ComponentClassID = "DTSAdapter.OLEDBDestination";
PipeLineWrapper.CManagedComponentWrapper managedOleInstance = destinationComponent.Instantiate();
managedOleInstance.ProvideComponentProperties();
// Create a path and attach the output of the source to the input of the destination.
PipeLineWrapper.IDTSPath90 path = ((dataFlowTask as TaskHost).InnerObject as PipeLineWrapper.MainPipe).PathCollection.New();
path.AttachPathAndPropagateNotifications(sourceComponent.OutputCollection[0], destinationComponent.InputCollection[0]);
destinationComponent.RuntimeConnectionCollection[0].ConnectionManagerID = destinationDatabaseConnectionManager.ID;
destinationComponent.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(destinationDatabaseConnectionManager);
managedOleInstance.SetComponentProperty("AccessMode", 0);
managedOleInstance.SetComponentProperty("OpenRowset", "[SumCode].[dbo].[SumCodeCorpGroup]");
managedOleInstance.SetComponentProperty("AlwaysUseDefaultCodePage", false);
managedOleInstance.SetComponentProperty("DefaultCodePage", 1252);
managedOleInstance.SetComponentProperty("FastLoadKeepIdentity", false); // Fast load
managedOleInstance.SetComponentProperty("FastLoadKeepNulls", false);
managedOleInstance.SetComponentProperty("FastLoadMaxInsertCommitSize", 0);
managedOleInstance.SetComponentProperty("FastLoadOptions","TABLOCK,CHECK_CONSTRAINTS");
managedOleInstance.AcquireConnections(null);
managedOleInstance.ReinitializeMetaData();
PipeLineWrapper.IDTSInput90 input = destinationComponent.InputCollection[0];
PipeLineWrapper.IDTSVirtualInput90 vInput = input.GetVirtualInput();
foreach (PipeLineWrapper.IDTSVirtualInputColumn90 vColumn in vInput.VirtualInputColumnCollection)
{
//if (outputColumnLineageIDs.ContainsKey(vColumn.LineageID.ToString()))
//{
managedOleInstance.SetUsageType(input.ID, vInput, vColumn.LineageID, Microsoft.SqlServer.Dts.Pipeline.Wrapper.DTSUsageType.UT_READONLY);
//}
}
List<String> tmp = new List<String>();
foreach(PipeLineWrapper.IDTSInputColumn90 inc in destinationComponent.InputCollection[0].InputColumnCollection)
{
tmp.Add(inc.Name);
}
PipeLineWrapper.IDTSExternalMetadataColumn90 exColumn;
foreach (PipeLineWrapper.IDTSInputColumn90 inColumn in destinationComponent.InputCollection[0].InputColumnCollection)
{
exColumn = destinationComponent.InputCollection[0].ExternalMetadataColumnCollection[inColumn.Name];
Column mappedColumn = GetTargetColumnInfo(exColumn.Name);
String destName = mappedColumn.Name;
exColumn.Name = destName;
managedOleInstance.MapInputColumn(destinationComponent.InputCollection[0].ID, inColumn.ID, exColumn.ID);
}
managedOleInstance.ReleaseConnections();
DTSExecResult result = package.Execute();
a = "0";
}
}
}
I am creator of this package. This package used to work fine both from studio and deployed on server. I come back this project, but can't get package even runing debug in studio with protectionLevel set as EncryptSensitiveWithUserKey or EncryptSensitiveWithPassword.
Does anyone see this problem before?
Here is my error message:
OnError,PC6071,SLCNTFJ3845,Get Address Parcel Route,{948E2EC3-4B1D-4465-B5B9-2DD95F91B1B3},{35E95EAA-0C59-4D79-A07E-6E876D603253},7/20/2007 9:54:27 AM,7/20/2007 9:54:27 AM,-1071611876,0x,The AcquireConnection method call to the connection manager "GEODB" failed with error code 0xC0202009.
OnError,PC6071,SLCNTFJ3845,Get Address Parcel Route,{948E2EC3-4B1D-4465-B5B9-2DD95F91B1B3},{35E95EAA-0C59-4D79-A07E-6E876D603253},7/20/2007 9:54:27 AM,7/20/2007 9:54:27 AM,-1073450985,0x,component "get parcel from Sub Struct" (75) failed validation and returned error code 0xC020801C.
OnError,PC6071,SLCNTFJ3845,Get Address Parcel Route,{948E2EC3-4B1D-4465-B5B9-2DD95F91B1B3},{35E95EAA-0C59-4D79-A07E-6E876D603253},7/20/2007 9:54:27 AM,7/20/2007 9:54:27 AM,-1073450996,0x,One or more component failed validation.
OnError,PC6071,SLCNTFJ3845,Get Address Parcel Route,{948E2EC3-4B1D-4465-B5B9-2DD95F91B1B3},{35E95EAA-0C59-4D79-A07E-6E876D603253},7/20/2007 9:54:27 AM,7/20/2007 9:54:27 AM,-1073594105,0x,There were errors during task validation.
Thanks!
Have anyone successfully accomplished scheduling integration services package using management studio? or is there any other way to do this?
i am scheduling the package to run from SQL SERVER Management Studio using SQL Server Agent,but it is not working.Help is appreciated.
Hi guys,
I'm a newbie DBA and i'm trying to create a package that would extract data from MySQL and inserts them to a SQL 2005 Server. I'm quite new to this SSIS and would like to ask help from you to help me go through with this.
I hope you guys can help me with this.
Hoping to hear from you soon.
Thank you so much.
Kind regards,
Neil
Hi,
In our project we have two SSIS package.
And there is a task (Execute SSIS package) in First package that calls the execution of second package.
I m continuously receiving an error "Failed to decrypt protected XML node "PackagePassword" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available."
As we are running first package by job, job runs successfully logging above error
The protection level of second package is set to "EncryptSensitiveWithUserKey"
Can anybody please suggest how to handle it?
Hi There,
I have sqlserver agent running with a windows user account which is member of administrator group. I try to set up the job to run an ssis package and set up to run as sql server agent service account. For some reason, the job fails and it doesn't give much error info if I look at job History. Can somebody plzz help me? I am unable to understand what extra permissions must that user have to run the ssis package as a sql job? And how do I configure the job to give more error details?
Any suggestions are greatly appreciated.
Thanks.
Hi there,
Anyone know how I can replace (or download) the sqlexpr32.exe bootstrap package with the advanced services SP2 edition of SQL 2005 express ?
Pieter
Hello, I was wondering if someone can help me with an ASP.NET question. We have been having troubles with our web server, and I don't know where else to turn. We are running an asp.net (vb.net) with IIS on our Web Server.We are running Sql Server 2005 / SSIS on our Database Server.SQL Server and IIS are running on separate machines. This is by design.We are trying to get our Asp.net to kick off an SSIS package, but we are unable to do this since the software is on separate servers.(If both are installed on the web server, we can directly call the SSIS package. If both are installed on the Database Server, we can implement a web service on the Database Server, and call that web service from the Web Server.)Thank you, ~Le
View 3 Replies View Related