Howto Change The Value Of The ProtectionLevel Property Of A SSIS Package?
May 29, 2007
I see various references to the options for a package's protection level (including http://msdn2.microsoft.com/en-us/library/ms141747.aspx) but I can't seem to find anything telling me how to actually look at and/or change the protection level of a package - thus my question is "How do I change the protection level of an SSIS package?"
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.
I am getting this when I try to save my package. Any Ideas?
Failed to apply package protection with error 0xC0014061 "The protection level, ServerStorage, cannot be used when saving to this destination. The system could not verify that the destination supports secure storage capability.". This error occurs when saving to Xml.
I'm inserting records into an Access database using ADO. One of the fields is defined as a hyperlink. I figured out the #displayname#path#subpath# formatting, but at issue is how to describe a relative path (to a filename) - I'd like to programmatically retrieve the database property 'HyperlinkBase' so I can properly specify the relative path. Is there some provider-specific schema that I can use to get this info for the Access file the Connection object references? I find example code for getting hyperlink base and other builtin document properties for Word, PowerPoint, Visio, but can't seem to find this for Access.
I would like to standardize SSIS development so that developers all start with the same basic template. I have set it up so it is an available template ( http://support.microsoft.com/kb/908018 ) but I would like it to be the default when a new project or package is created. Is this an option?
I'm novice to SSIS and looking for some help on SSIS dtexec (SQL Server 2005).
Is it possible to change the BulkInsertTableName when running a package via dtexec /SET?
My test scenario contains:
- SQLServer 2005 SP2, servername: SDPM01, instancename: GWLINST1, databasename 1: TEST, databasename 2: DEV, tablename 1: Test_Table1 (both in TEST and DEV database), tablename 2: Test_Table2 (both in TEST and DEV database)
- 1 Data Flow task in BIDS (SSIS)
- 1 Data Flow Source: Flat File Source (Flat File Connection Manager name: FTP File Output + CSV file with a few lines of data that needs to be inserted in a SQL Server table)
- 1 Data Flow Destination: SQL Server Destination (OLE DB Connection Manager name: SDPM01GWLINST1.TEST
I can dynamically change the name of the database via:
I need to change the owner of an SSIS package. For some reason a developer created a package that is listed as <developer name>.Packagename. I'd lke to subsitute "dbo" for <developer name>TIA,barkingdog
In Past, I created DTS package on 2000 version, that import TXT file into SQL 2000 table.
Now I migrated the DTS to DTSX (SSIS) package, and all is working fine. but I can not find how can I edit or modify the target table name in DTSX(SSIS) package in BI Studio.
i searched and all i found is questions, not answers.
maybe it's a silly question, but i really can't find any documention / posts about this.
i have a scheduled job in sqlagent that executes a SSIS package that runs every minute. As a result, my application log in eventviewer gets filled very quickly.
i tried using "/REPORTING E" option with no luck.
i tried enabling logging on the package, and then select only the OnErro Event, no luck.
In the old DTS, we can use the ActiveX Script to change any task's property programmatically.
Can we still do it in SSIS? Using the Script task? It seems changing the value of variables then use a expression can do some of the work, but what if a task has no expression defined?
Say, I want to change the Fuzzy look up reference table name.
set the ReturnProviderSpecificTypes property of the OracleDataAdapter to true and have it read OracleNumber's instead of System.Decimal, which can't handle the value
I have been struggling trying to read and/or write package level variables from within my custom task. I'd like to be able to get and set values from within the Execute method of my custom task. I have searched this forum and the books online and can't seem to find the answer. I thought maybe I could use an expression on my task (mapping the package variable to a custom task public property) but that doesn't seem to be working for me. I also would have thought I could use the VariableDispenser object from within my task but the collection is empty. I have 3 package level variables configured and can't seem to find a way to access them (with intentions of getting/setting). Could someone point me to a good doc or provide an example that may accomplish this? Thanks!
(I'm using package level variables as a means of passing simple information between tasks that are not using a DB, if there is a better way I'm open to suggestions.)
Hello I have a gridview that I use on a products page, my problems is certain products have different attributes that I would like to display. Therefore what I would like to do is change the SelectCommand property to my SQLDatasource depending on the querystring that is passed. For instance in my page load event I would have a CASE statement with numerous SQLString Variables. Here is the current coding for my datasource <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT PS.ProductSizeMM AS [Coupling Size], PS.ProductWallThickness AS [To Suit], PS.Cost AS [Price], PS.Sold_By AS [Sold by] FROM tblProduct AS P INNER JOIN tblProductSize AS PS ON P.ProductCode = PS.ProductCode WHERE (P.ProductDescription = @ProductDescription) ORDER BY PS.Sorter"> <SelectParameters> <asp:QueryStringParameter Name="ProductDescription" QueryStringField="ProductDescription" /> </SelectParameters> </asp:SqlDataSource>I have tried declaring a string variable in my page load event (SQLString) then setting the SelectCommand="SQLString" but this causes a syntax error Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near 'SQLString'. Any help would be greatly appreicated!!
I have a question regarding a Language property on Report, Table and Cell levels. My reports must show monetary values in different formats depending on a currency symbol where the Client resides. For instance, money fields for USA, Canada, UK are shown as 123,456,789.00 and then "$" or "£" symbol; but European countries should have 123.456.789,00 format and a Euro symbol.
I have found that XXX.XXX.XXX,00 format corresponds to the Language property = "Italian". If I set the Language property = "Italian" on Report or Cell level at design time, the report shows the expected 123.456.789,00 format, no problem. (By the way, for some reason, on the Table level this property set does not work at all)
Unfortunately, I was not able to change the Language property to "Italian" on Report or Cell level on-fly using the following expression: =IIF((Parameters!Symbol.Value="$" OR Parameters!Symbol.Value="£"),"English (United States)","Italian") For debugging, I even tried: =IIF((Parameters!Symbol.Value="$" OR Parameters!Symbol.Value="£"),"Italian","Italian") But all numbers on the report are still shown in the 123,456,789.00 format regardless the Client's currency symbol.
I don't want to have 2 sets of my reports only because if the monetary format difference. And also I don't want to CAST the monetary value into a string and mask it myself with dots and commas.
I appreciate at advance any help or comment regarding the issue very much. This is a critical bug and it must be resolved ASAP.
I have a SSIS package loading Excel file. The Excel Source automatically give the length of 255 for all text columns. However, some of the column may exceed 255 length.
I cannot change the length of Error output columns. "Error at Data Flow Task [Excel Source [508]]: The data type for "output "Excel Source Error Output" (517)" cannot be modified in the error "output column "F45" (2345)". Error at Data Flow Task [Excel Source [508]]: Failed to set property "DataType" on "output column "F45" (2345)". "
How to change it or truncate it to 255? I am using 64bit VS.
I'm working on an SSIS package that uses a vb.net script to grab some XML from a webservice (I'd explain why I'm not using a web service task here, but I'd just get angry), and I wish to then assign the XML string to a package variable which then gets sent along to a DataFlow Task that contains an XML Source that points at said variable. when I copy the XML string into the variable value in the script, if do a quickwatch on the variable (as in Dts.Variable("MyXML").value) it looks as though the new value has been copied to the variable, but when I step out of that task and look at the package explorer the variable is its original value.
I think the problem is that the dataflow XML source has a lock on the variable and so the script task isn't affecting it. Does anyone have any experience with this kind of problem, or know a workaround?
The problem does not happen with the [User::RunID] variable or the [Initial Catalog] property of my [RSAnalytics] connection object. But I am not successful in setting the [ServerName] property.
What happens when executed is that the package retains the ServerName property of the deployed package (Value="RTG23SQLDB01UAT1QA"), instead of what I pass in via DTEXEC???
Is ServerName read-only or something? I've tried configuring the package connection to RTG23SQLDB01UAT1PROD and creating a package configuration that I specify in place of the /SET - but to no avail as well!
This package has to work against 10 instances. I really don't want to have to create a separate package for each instance, and then a hack to figure out which one to call.
AS SET NOCOUNT ON --lokale Variablen DECLARE @String VARCHAR(1024)
BEGIN TRY
-- next line just for testing linebreak SET @mailBody = 'line one in mail ' + char(13) + char(10) + 'next line in mail' SET @String='dtexec /Ser <myServerName> /SQ DELELPLGDB01/DTS-Pakete/pkt_sendMail /Set Package ask_sendMail.Variables[Benutzer::toAddress].Value;"'+@toAddress+'" /Set Package ask_sendMail.Variables[Benutzer::subject].Value;"'+@subject+'" /Set Package ask_sendMail.Variables[Benutzer::mailBody].Value;"'+@mailBody+'"' EXEC @exitcode = master.dbo.XP_CMDSHELL @String select @exitcode as exitcode
Hi, please I would like to use something like this>
=IIF(table1_group2 is Collapsed,True,False)
I want to generated some event based on actual state of e.g. report group. if user expand group make this event otherwise (group is collapsed) make another event.
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.
I am trying to start a package as a job and this does not work...
Referring to http://support.microsoft.com/?kbid=918760 I have checked the certain settings and I do not have set the ProtectionLevel to another setting then "DontSaveSensitive" - but my default setting in the template is "with encryption"
While starting the package from the package store using the technical user which is also used for the different service accounts all works fine.
After I created a NEW package and have set ProtectionLevel to DontSaveSensitive before doing any other step it works well also being started as a job...
BTW: Copying objects from one package to another is really a big mess! Is there hope that this issue will be solved shortly??
In a custom task I have a property of type Hashtable. This property gets changed by a custom UI. After changing the value and closing the UI, the Hashtable is properly filled during investigation in the validate() method.
Now saving the package and inspecting the XML file of the package, there is only this entry:
So it seems, that the value is empty and there is no further data to the object. Trying to reopen the saved package, the opening fails with something like (Had to translate it my own from german):
Error loading '<PackageName>' : Error loading a task. The contact information for the task is ''. This problem occurs on an error during task loading.
There should be a out of the box possibility to save collections or do you have to implement Load/Save XML your own if you have complex datatypes as properties? As the package has the element of the property included (but empty), it seems it tries to save it.
Anyone a hint. Anybody occuring the same behavior?
I have a ssis component that begins like below. I recently added a new customproperty to the package and needed a way to detect when an upgrade from an old version was needed. As per microsofts directions I tried to use the currentversion property for this. This seemed to work fine until I noticed that newly added component to the dataflow keep starting at version 0 and going thru an upgrade making an duplicate of the new property. As below the new version has currentversion = 2 as a property. So why is this ignored. Or how do i make a component start out with the proper version so no upgrades happen?
Code Snippet namespace itworkz.ssis.CustomComponents { [DtsPipelineComponent( DisplayName = "ODS Tool v2", Description = "proccess data for the operational data store", ComponentType = ComponentType.Transform, CurrentVersion = 2, UITypeName = "itworkz.ssis.CustomComponents.OdsTool2UI, OdsTool2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3276bb0510a3c305" )]
using custom tasks. My properties got saved properly the first time the task is added to the workspace. After that, changing values in the CustomUI updates the properties, but the package shows, that It doesn't need to get saved. So my properties don't get changed in the package XML. Moving my custom task on the workspace after changing properties, let the package go into "save me" state and my propertiy values get saved to XML.
So now, Im searching for a method or property I have to call or set to show the package it needs to get saved after closing my CustomUI.
Any hint?
Thanks
PS: When I change the property value in the task properties grid (lower right). The package gets notified about the need to get saved.
I have a very odd problem. I have a package which uses some custom tasks that were written in C#. When the package is deployed to our production server, *some* of the property values for *some* of the tasks are cleared. For example, I have these five tasks:
All of them inherit (of course) from Microsoft.SqlServer.Dts.Runtime.Task. All of them have custom members (some similar, some different), and of course, different implementation (though they are mostly the same). This test package has one instance of each of the different tasks.
As I said above, when we deploy to our production server, *some* of the property values for *some* of the tasks are cleared -- but when deployed to our dev server, everything remains intact.
Here is what is cleared:
- On 4 of the 5 tasks, the Description property (inherited by Task) is cleared, but the other one remained intact - On 3 of the 5 tasks, the Connection property (custom property in all tasks) is cleared, but the other two remained intact - 3 of the tasks have other string properties that were set, and all of these were cleared
We can reproduce this on two different production servers, and these two servers have some different configurations, suggesting these would not be the culprit:
- They have different service packs (one is build 2047, the other build 3042) - One has the custom SSIS components installed (in the GAC), the other one does not
Our development server, where the package is deployed as expected, has build 2047 w/ the components installed.
Here are the packages, where you can compare and see the differences (using a text comparison tool):
Dev-GOOD.xml Prod-BAD.dtsx
These were created after being deployed by importing within a Visual Studio SSIS project from the server.
Any suggestions would be *greatly* appreciated, as we are totally stumped as to why this is happening.
EDIT: Additional clues, this package is deployed to the MSDB. If it's deployed to the File System, it remains unmodified.
I have a Package and a DataFlow Task. The Package has TransactionOption=Required. The DataFlow Task has an OLE DB Source and an OLE DB Destination. The DataFlow Task has TransactionOption=Supported. The package executes on a Workstation and DataSources for the OLE DB Source and the OLE DB Destination are on a Server.
After the package had been launched an error message showed:
[OLE DB Destination [43]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "DWH_Destination" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. [DTS.Pipeline] Error: component "OLE DB Destination" (43) failed the pre-execute phase and returned error code 0xC020801C.
[Connection manager "DWH_Destination"] Error: The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.". [Connection manager "DWH_Destination"] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8004D024.
If I set TransactionOption=NotSupported in the DataFlow Task then the package executes successful.
This task or container has failed, but because FailPackageOnFailure property is FALSE, the package will continue. This warning is posted when the SaveCheckpoints property of the package is set to TRUE and the task or container fails.
I have just spotted the message above in one of my log files.
I've never noticed it before. Is it new in SP1? I'm guessing it must be.
If so - good job. This is a very important addition because the behaviour of checkpoints without setting FailPackageOnFailure=TRUE is not intuitive (in my opinion).
I have a pile of around 50 packages (*.dtsx files) or so, and we have found that not all of these packages are set to have the critical bits fail the package on failure of the critical bits. This gets to be slightly annoying when there is a job of some 20 or 30 packages running, and one of these fails and the rest of the job runs along as if nothing (bad) happened. This leads to having to hunt down what failed, diagnosing why it failed, and then re-running the parts that failed in different and inventive ways after the unhandled exception.
So far, I have broken open a couple of the offending SSIS packages in notepad, and the string "FailPackageOnFailure" appears in a number of places. Unfortunately, due to the fact that some of the packages have Sequence Containers that hold some of the SQLTasks (all of the "critical bits" are SQL Tasks, I believe), and this changes the XML path to the parts that I want to scan. This leaves me with the prospect of opening each package, wait for the package to be validated, going to the SQL Task in the package, right clicking for the properties of said SQL Task, and finding the Fail Package on Failure bit (OK, more likely I will delegate that task to some poor schmuck, but I promise I will feel some regret over it).
To make certain SSIS features work there are many properties that need to be set over and over for most containers in the package. For example with CheckpointRestart, you need to set (in most cases) all of the tasks' FailPackageOnFailure to True. If you miss one, the package may not restart properly and you might never know. There are other situations where as a development team we want certain properties to be usually set the same but differently from the SSIS default.
Is there a way to control the defaults that the SSIS IDE uses?
I remember back in classic VB that if you wanted to change the defaults of a bare form you could create a template form adjusted the way you like and put it in a templates folder. Then new forms added to a project would be based on the template form.