Quantcast
Channel: SQL Server Integration Services forum
Viewing all 24688 articles
Browse latest View live

SSIS 2012 : Package hangs intermittently during execution (OnPipelinePreComponentCall)

$
0
0

Hi,

I'm facing a strange problem wherein package execution hangs intermittently on state "OnPipelinePreComponentCall".

If the execution process is killed & restarted, it executes properly & completes successfully.

Package design is as below -

1. SSIS 2012 package in package deployment mode.

2. Pulls data from DB2 & loads it into SQL 2008 SP2 as is after appropriate data type conversions

3. Package contains grandparent (1)-parent (1)-child (21) relationship. 21 child packages have been divided into 4 sequence containers. Each container executes one after other (no parallel processing)

4. Package is executed using DtExec 32 bit utility.

Steps taken so far -

1. DelayValidation property is set to True for all data flow & connection managers

2. No trace on database, so its not waiting on database.

I'm still investigating the issue but kindly guide on areas to explore further to identify the root cause.


Exception from HRESULT: 0xC0048021

$
0
0
0 down vote favorite I am trying to implement a custom data flow component in my managed code. Here is my custom data flow component: [DtsPipelineComponent(DisplayName = "RenameComponent", ComponentType = ComponentType.Transform)] public class MapperComponent : PipelineComponent { List<idtsvirtualinputcolumn100>dontMapList; public override void ProvideComponentProperties() { base.ProvideComponentProperties(); base.RemoveAllInputsOutputsAndCustomProperties(); IDTSInput100 input = ComponentMetaData.InputCollection.New(); input.Name = "Input"; IDTSOutput100 output = ComponentMetaData.OutputCollection.New(); output.Name = "Output"; output.SynchronousInputID = input.ID; // Make the output asynchronous output.SynchronousInputID = 0; FindOldColumns(input); } } I compile that, register it with the gac, and save it to the C:\Program Files\Microsoft SQL Server\100\DTS\PipelineComponents directory. I then run the following code to add the component to my data flow task: private static IDTSComponentMetaData100 CreateRenameTransformation(MainPipe dataFlow, Train train) { IDTSComponentMetaData100 renameTransformation = dataFlow.ComponentMetaDataCollection.New(); // Set stock properties renameTransformation.ComponentClassID = "Dexter.CustomComponents.MapperComponent"; renameTransformation.Name = "RenameTransformation"; renameTransformation.Description = "Rename and remove incompatible columns"; CManagedComponentWrapper instance = renameTransformation.Instantiate(); instance.ProvideComponentProperties(); return renameTransformation as IDTSComponentMetaData100; } During runtime (when i try to create the pacakge), I get the following error: 0xC0048021 -1073446879 DTS_E_ERRORCOMPONENT The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "%1". Thanks,</idtsvirtualinputcolumn100>

-DF

execute sql task with oracle

$
0
0
I am trying to use SELECT statement and assign count of multiple columns to variables. I implemented same for MSSQL  connection it worked perfectly but for oracle it is not working any solution/ ideas is much appreciated


Multiple Visual Studio Editions: How do I get the right version of VSS to show up in my script task?

$
0
0

Fellow Techies,

We have multiple versions of visual studio (vs2012-vs2015) active in our environment.  I recently upgraded my vss environment from vs2012 to vs2015 to develop a new wcf client for a remote host project.  

When I was done with this project, I needed to access a vs2012 SSIS package with script tasks.  While I was able to open the script task, I did notice that the version of vss was set to vs2015, or my latest installed product.

Is there a way to configure SSIS to pickup the vs2012 version of vss--or am I forced to do either 1) remove vss 2015 and the ssdt tools for it or 2) upgrade the ssis package to vs2015 ?

In my case, I would have to downgrade the development environment because we're not prepared to jump from mssql2012--> mssql2016.

Surely there must be a way to configure this. Please advise.

Timeout after 30 seconds when executing package via .NET

$
0
0

Hi,

I'm using SSIS 2012 with SQL version: 11.0.5537.0 SP2 Enterprise Edition: Core-based Licensing (64-bit).

I'm getting timeout errors when it takes more than 30 seconds to execute an SSIS package via .NET. In my connection string I set the time out at 90 seconds but without success (I see its value when debug, but with no effect):
Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

// Connection to the database server where the packages are located
using (SqlConnection ssisConnection = new SqlConnection("Data Source=.;Initial Catalog=master;Integrated Security=SSPI;Connection Timeout=90")
{
	try
	{
		// SSIS server object with connection
		IntegrationServices ssisServer = new IntegrationServices(ssisConnection);

		// The reference to the package which you want to execute
		PackageInfo ssisPackage = ssisServer.Catalogs["SSISDB"].Folders["SomeFolder"].Projects["SomeProject"].Packages["Package.dtsx"];

		// Add execution parameter to override the default asynchronized execution. If you leave this out the package is executed asynchronized
		Collection<PackageInfo.ExecutionValueParameterSet> executionParameter = new Collection<PackageInfo.ExecutionValueParameterSet>();
		executionParameter.Add(new PackageInfo.ExecutionValueParameterSet { ObjectType = 50, ParameterName = "SYNCHRONIZED", ParameterValue = 1 });

		// Add a package parameter
		executionParameter.Add(new PackageInfo.ExecutionValueParameterSet { ObjectType = 30, ParameterName = "myStringParam", ParameterValue = "somevalue" });

		// Get the identifier of the execution to get the log
		long executionIdentifier = ssisPackage.Execute(false, null, executionParameter);
	}
	catch (exception ex)
	{
	    // Log code for exceptions *remove from this example*
	}
}
Where can I change this 30 second limit? (I don't get the time out when executing manually via SSIS Catalog)



Package which loads from Excel fails from SQL Job

$
0
0

Hi All,

We have a situation where we have a SQL Server 2008R2 SSIS package x64 that needs to be executed in 32bit runtime because the package uses MS Excel. We tested the package by setting 64 bit runtime as false. We deployed it to the dev SSIS server and called it from the SQL Job, it failed with Excel connection error. We found that required client tools were not installed and we installed them on the server. After the installation we executed the package with 32 bit runtime option and it fails to load. Could you please help me to debug this issue? Would be helpful if you can point me to similar question previously asked and answered.

Thanks in advance.

 

Dataflow task Dataviewer not displaying

$
0
0

I have a dataflow task, where the source is using a sql command from a variable, which the variable is being set in a script task immediately before.  The sql command gets the variable correct, because I can set a breakpoint, take the value and execute it in SSMS, and get valid results.

However when the dataflow task gets hit, it pauses for a few seconds, then simply completes.  No errors, but the dataviewer that I have between the source and destination is not displayed and in the output message, I see where 0 rows were written.

What can I check?

After running SSIS Package ISServerExec,exe stays in memory

$
0
0

I'm running SQL Server Standard 2014 (12.0.2000.8 RTMStandard Edition (64-bit)) and I run a daily SSIS job. The Job calls two child processes for each customer (21 customers) and it runs between 20 to 60 minutes a day. I've noticed that ISServerExec.exe is still running after the process completes and I've seen 20+ copies of the program running in memory all taking over 1GB of memory.

I'm using the Execute Package Task to call the child processes.


Execute package task with project reference using connection string

$
0
0

Hi All,

i have 10 different Staging packages and i want to call only the package which need to load data.

how can i achieve this in project reference mode.

Example Pak1.dtsx,Pak2.dtsx,Pak3.dtsx,Pak4.dtsx,Pak5.dtsx,Pak6.dtsx,Pak7.dtsx,Pak8.dtsx,Pak9.dtsx,Pak10.dtsx.

based on some condition i may run any of few package in  given load.

how can i pass packagename as connection string (this is possible with External Reference).

Thank you 

Regards

BA


hi

Import data with page title

$
0
0

I need create a package to import data which has page title like following.

  My Result Report

Date: Mar/28/2016   Created By: Report Creator

 My Date         My Field        My Value

Mar/28/2016      My Result      1

Page 1

  My Result Report

Date: Mar/28/2016  Created By:Report Creator

   My Date       My Field          My Value

  Mar/27/2016    My Result2   2

Page 2

Page 3....

Are there any way to get the data without page title?

Your help and information is great appreciated,

Regards,

Sourises,

Data Conversion (NTEXT to TEXT) fails

$
0
0

I have a SSIS package that includes a conversion step to convert an NTEXT column from a SQL Server database table to TEXT for inserting into another table.  It runs successfully on my laptop (Windows 7) but fails on the server (Windows Server 2008 / SQL Server 2008 R2).  I'm getting this error:

Description: Data conversion failed while converting column "Description" (9492) to column "Copy of Description" (9748).  The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.". 

Why would this succeed when run from my laptop but fail when run on the server? 

How can I fix this issue?

How to use send email task in SSIS package?

$
0
0
I am New to SSIS, So far I have configured the Database email using Basic Authentication in my SQL server management Studio. Now I want to send an email from SSIS package. I know that the send Email task only works with windows authentication. I do not know What should I enter in SMTP server while I create the SMTP Connection manager. I am working on my local system. Can anyone please tell how can we configure the SMTP server and use it in Send mail task? Any help is appreciated ?

SSMS connecting to SSIS with message Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)

$
0
0

Hi

Full message below but basically I have tried all the DCOM things in this article and still no joy 

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8833d78b-a4c9-4743-ad0b-a3d17bdd3598/connecting-to-ssis-through-ssms-without-built-in-administrator?forum=sqlsetupandupgrade

Using Windows Server 2012 & SQL Server 2012 Enterprise

I'm a Domain Admin and SQL sysadmin so not sure what the issue is.

Any help greatly appreciated.

Rich

TITLE: Connect to Server
------------------------------

Cannot connect to server-x

------------------------------
ADDITIONAL INFORMATION:

Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476

------------------------------

The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) (Microsoft.SqlServer.DTSRuntimeWrap)

------------------------------

The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) (Microsoft.SqlServer.DTSRuntimeWrap)

------------------------------
BUTTONS:

OK
------------------------------

How do I change the length of a column in the metadata?

$
0
0

A very simple package, reads data from SQL Server and FTPs it to a destination. I have zero experience with SSIS.

I had to add a new column (HEA_ID) to the input and output. The output record has a filler at the end (I hope you know what a filler is) and the new column has to go before the filler and the filler length reduced accordingly.

Problem: there is no apparent way to place the new column anywhere but after the Filler. The filler in the metadata is the wrong length and there is no way that I can see to change the length.

There is a yellow exclamation mark on the Flat File destination (where the filler is wrong length)

I get these erros when I run the updated package.

"The external metadata column is out of sync with the data source column. The column 'HEA_ID' needs to be updated in the external metadata column collection".

"The column filler needs to be updated in the external metadata column collection"

I have no idea how to fix these errors. Help needed.

Records with comma in flat file (SSIS 2008R2)

$
0
0

I am using flat file as a source to pull the record and store it in another flat file. All records are getting loaded except for the records where comma is there in a particular row

I am pulling one field "Volume" and converting it into Decimal in Derived Column

(DT_NUMERIC,12,0)Volume

Below is the sample record:


	40	May6	23Mar2016	.25	2,227	23Mar2016	0
	40.5	May6	23Mar2016	.42	39	23Mar2016	0
	40.5	May6	23Mar2016	.45	676	23Mar2016	0
	41	May6	23Mar2016	.23	245	23Mar2016	0
	41	May6	23Mar2016	.76	538	23Mar2016	0

Package is pulling every record except the first record where volume value is 2,227.

But when i remove comma from the record (2,227 to 2227) it pulls the record. Is there any reason that why it is not pulling the records with comma.





Moving an SSIS DQS transformation between environments

$
0
0

I'm using SQL Server 2012 and we have created an SSIS package that uses the Data Quality Services (DQS) Cleansing transformation. Everything works great, except when we try to move the SSIS package from the DEV environment to QA or PROD.

The SSIS DQS transformation hard codes the ID of the knowledge base, and not the name of the KB, in the XML. The problem is that when you install/import a DQS KB it creates a different ID for the KB. So the ID of the KB in one environment will be different than the ID of the same KB in another environment, e.g. in the DEV environment the ID is 100005 and in the PROD environment the ID for the same KB is 100007.

Because of this when the transformation is executed in the PROD environment the task throws an error because the transformation is looking for the KB with the ID of 100005 and in PROD the ID is 100007 (the error thrown is: The Knowledge Base does not exist).

The only workarounds Microsoft suggests to only have one KB and have all environments point to it (the Network team won't allow this) or to not use the catalog/deploy tool and move the SSIS project to the other environment and then open the package in SSIS and re-select the KB in the SSIS DQS transformation, but that's not an acceptable work around because the development team doesn't have access to the server in PROD.

Has anyone figured out a different work around?  I have also tried to changed the hard coded ID in the XML but for some reason that didn't work.

If there isn't work around then this task is useless, which is unfortunate because it works well.

flat file non csv - text qualifier double quotes

$
0
0

Hello,

Regarding the flat file connection manager. If it's a csv file with data in double quotes then putting a dbl quote in the text qualifier field strips the dbl quote. Preview shows the dbl quote stripped data. However if the data is not comma separated but instead pipe separated then the dbl quotes are not stripped by putting dbl quote in the text qualifier. Known issue ? Any work arounds or solution for this ? Thanks

Buffer Issue with ODBC Driver SSIS 2012.

$
0
0

Hello ,

I have a package with the below tasks.

Source : MYSQL5.6 - Table - 50000000

Source Connection : ODBC Driver

Destination : SQLServer -Table

Destination Provider : OLEDB Driver.

I am trying to read 5000000 rows at a time. But It's throwing the below buffer error. 

Error: A buffer failed while allocating 10485024 bytes.
Error: The system reports 29 percent memory load. There are 32211845120 bytes of physical memory with 22597099520 bytes free. There are 4294836224 bytes of virtual memory with 116981760 bytes free. The paging file has 40801779712 bytes with 30649970688 bytes free.
[ODBC Source [2]] Error: Failed to add row to output buffer.

[ODBC Source [2]] Error: Open Database Connectivity (ODBC) error occurred.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on ODBC Source returned error code 0x80004005.  The component returned a failure code when the pipeline engine called PrimeOutput(). 

I am new to MYSQL and do not have the visibility on buffer settings of it.

Is it fair to assume that if we change buffer size on ODBC will solve the problem.

How can I solve the problem ? any inputs appreciated.

Thanks in advance.

redirect entire row when any single column error

$
0
0
Hello, if my input row from flat file has an error on any column we can redirect so we can get the error code, error description, column number...but what about the actual whole row with all the columns. I need to log the entire row that failed. Not just the error code, error desc, col num. How do I get the entire that caused the error. Please advise how to get the whole error row. Thanks

The component has not available input columns!!

$
0
0

hello everyone

I've spent two days now searching online for solution to this problem.

So here is my package:

SQL Script for task "Create Temp Table to Store Database info"

IF EXISTS (SELECT     *
                        FROM         tempdb.dbo.sysobjects
                        WHERE     id = OBJECT_ID(N'[tempdb].[dbo].[HoldforEachDB]')) DROP TABLE [tempdb].[dbo].[HoldforEachDB]; 
CREATE TABLE [tempdb].[dbo].[HoldforEachDB]([Server] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, 
[DatabaseName] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [Size] [int] NOT NULL, [File_Status] [int] NULL, 
[Name] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [Filename] [nvarchar](260) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, 
[Status] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Updateability] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, 
[User_Access] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Recovery] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL) ON 
[PRIMARY]
    INSERT      
     INTO            [tempdb].[dbo].[HoldforEachDB] EXEC sp_MSforeachdb 'SELECT CONVERT(char(100), SERVERPROPERTY(''Servername'')) AS Server,
                 ''?'' as DatabaseName,[?]..sysfiles.size, [?]..sysfiles.status, [?]..sysfiles.name, [?]..sysfiles.filename,convert(sysname,DatabasePropertyEx(''?'',''Status'')) as Status,
convert(sysname,DatabasePropertyEx(''?'',''Updateability'')) as Updateability,
 convert(sysname,DatabasePropertyEx(''?'',''UserAccess'')) as User_Access,
convert(sysname,DatabasePropertyEx(''?'',''Recovery'')) as Recovery From [?]..sysfiles '

OLE DB Source

OLE DB Destination

Properties set:

  • Execute SQL Task - DelayValidation=True
  • Two Data Connection Managers = RetainSameCOnnection=True

Why are the data in the temp table not being passed over to the Destination OLE DB connection?

Thank you all in advance


Viewing all 24688 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>