Weird Thing About OLE DB Connection In SSIS Packages
Apr 21, 2008
Hi, experts here,
I found a very strange problem with the OLE DB connection in SSIS package though.
What happened was when I set the connection type to be OLE DB, whenever I declare a package variable it still gives me the error saying: please declare the scalar variable.
Once I changed the connection type to be ADO.NET, then it works fine.
Why is that? Anything wrong with OLE DB connection?
Looking forward to hearing from you for any ideas on it.
I am trying to run a package outside of the Business Intelligence development Studio. It continuously fails and tell me that my username cannot logon due to a password failure. When I check my connections the password never shows in the connection string and remains blank in the connection properties although I have checked Save Password in the connection properties. Does anyone know how I can save the password in the connection string being utilized in the SSIS package?
I created a COM-visible .NET class that I want to use to run my SSIS packages. I did this so that I could store variables, connection strings and other options in a central database and have my class set the appropriate connections and variables in the packages and then run them and also log all of my package logging to one central database as well.
I got one package to work in this setting (the package used an ADO.NET connection to call a couple of stored procedures and an SMTP connection manager as well as 10-15 user variables). However my second project is not working when I call it using my .NET class (it works if I manually run the package from SQL Server). When I check my logging it says that it is encountering this error ("SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "INFERNO.Wyethport.Wizard+NET" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.") The only other error message that I get is ("component "OLE DB Destination" (1785) failed validation and returned error code 0xC020801C.")
I have set up my packages to save sensitive data with a password and my .NET class sets the password before loading and executing the package so it isn't that problem. Does anyone have any ideas? This has become increasingly frustrating as I don't feel like I understand the goals and concepts behind SSIS security so I am not sure that I am even attacking the problem correctly.
I have deployed to production a number of nested packages (parent packages that call child packages) to the SQL msdb via the Save As option rather than building a deployment utility. These packages reference configuration files in a static location off of the c: drive on the production server. In the development environment, when connection changes are made and I run the Reload with Upgrade option the connection manager takes on the new server and user id settings. However, out on the production side I get the following error from the SQL job log:
Cannot load the XML configuration file. The XML configuration file may be malformed or not valid.
As a result the SQL job uses the default connection information which references the development database rather than the production database. I did research the error but found no good solutions. Is there a way to ensure the configuration files are formed correctly and that the packages are correctly referencing the configuration files? We are trying to run the ETL updates via a SQL job.
I've run into a problem with SSIS packages wherein tasks that write or copy files, or create or delete directories, quit execution without any hint of an error nor a failure message, when called from an ASP.NET 2.0 application running on any other machine than the one where the package was created from. By all indications it appeared to be an identity/permissions problem.
Our application involves a separate web server and database server. Both have SQL Server 2005 installed, but the application server originally only had Integration services. The packages are file system-deployed on the application server, and are called using Microsoft.SqlServer.Dts.Runtime methods. For all packages that involve file system tasks, the above problem occurs.
When the above packages are run using the command prompt (either DTEXEC or DTEXECUI) the packages execute just fine. This is expected since we are using an administrative account. However when a ShellExecute of the same command is called from ASP.NET, the same problem occurs.
I've tried giving administrative permissions to the ASPNET worker process user to no avail.
I have likewise attempted to use the SQL Server Agent job approach but that approach might not be acceptable for our clients since it means installing SQL Server 2005 Database services on the application server.
I have read the relevant threads in this forum, namely http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1044739&SiteID=1 and http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=927084&SiteID=1 but failed to find any solution appropriate for our set up.
We manage some SSIS servers, which has only SSIS and SSIS tools installed on them and not the sql server DB.
SSIS packages and configuration files are deployed on a NAS. We run the SSIS packages through DTEXEC by logging in to the server.
We want to allow developers to run their packages on their own on the server, but at the same time we dont want to give them physical access on the server i.e we do not want to add them into RDP users list on server properties. We want them to allow running their packages remotely on the server.
One way We could think of is by using powershell remoting and we are working on that. But is there any other way or any tool already present for the same.
We have this purchasing software that utilzes a SQL database. For the purchasing software, we run SQL 2000 SP3a on a Windows Server 2003 SP2 machine. Here is the issue. I come in the morning, RDP into the terminal server with the purchasing software loaded, try to login and I get an error in the sql server logon process. We use an ODBC connection from the terminal server to the database server. On my machine, I have SQL client tools installed, so if I open up SQL Management studio and connect to the database server, then I can log in to the purchasing software and can do so all day. Something happens at night (while no one is logged in) which will not allow anyone to log into the purchasing software, but to allow logins again, If i create a connection to the database server from SQL Management Studio, then users can log in again. I don't understand what connecting to the database server with SSMS has to do with being able to log in. I don't have to stay connected, just that initial connection, then it will work the rest of the day. Very weird and frustrating. Any ideas?
I have 2 exact same sql tasks in different packages. Connection manager is defined for the same database for both. one of the sql task works, and other one throws out this error: [Execute SQL Task] Error: Failed to acquire connection "pdsprod.pdsdataread". Connection may not be configured correctly or you may not have the right permissions on this connection.
this is completely mind boggling. I have compared both sql tasks for each and every property and they are exactly the same. what is going on?
by the way I am on 64 bit box with Run64bitruntime= false.
i am having a weird problem with the send mail task in SSIS. I have tried to different things, and i end up with two different errors:
Firstly, i have setup a data dump to excel, and the send mail taks emails this to specific email addresses.
In the Send mail task i have validated to SMTP server, and its correct.
I have manually entered all the information in the Send mail task, and i am sending to multiple email addresses. These are all seperated by a semi colan. I run the task and it fails on the send mail task with the follwoing error:
Error: 0xC002F304 at Send Mail Task, Send Mail Task: An error occurred with the following error message: "Unable to send to all recipients.".
Task failed: Send Mail Task
I have validated all the email address and they are correct. I did some searching and someone suggested to replace the semi colan with a comma. I do this and i get the follwoing error"
Error: 0xC002F304 at Send Mail Task, Send Mail Task: An error occurred with the following error message: "Mailbox unavailable. The server response was: 5.7.1 Unable to relay for rpwallis@bigpond.com.au".
I have checked that the IP for the SQL server is on the list of allowed relays on our exchange server. Does it make a difference if i am running this from Visual studio on my laptop?? by this, does it pick up the ip of my laptop when i test this or does it use the ip address of the server?? This would explain the relay message error if so..
Could someone please explain if i should use comma's or semi colans to seperate email addresses? and also lead me in the right direction in relatio to my problems..
Is there any table where we have source connection and destination connection information about the DTS packages? None of these tables in the msdb have this information.
We want to use a single connection manager in different packages. IS there a way to do it? We tried copying the same connection manager in different package, but it makes a copy of the same in different package, so any change in the connection manager doesnt gets reflected in other package.
IS there a way to make all the different packages use the same connection manager?
130 dtsx packages using 4 matching connections. 3 of those connections are stored in an SSIS Configuration table in an Operational database. The last connection is in a shared data source and points to the Operational database so the packages can grab the others.
Problem:
It's time for deployment and all of those connections must change to production servers. The 3 are no issue, just change the ConfiguredValue in the SSIS Configuration table on the production box to point to the other production servers. However, the fourth one... I had made an assumption that when you changed a shared data source it filtered down throughout all the packages. We all know what assumptions do to you.... So. I need a way to change all 130 connections (and be able to change ALL packages quickly and simply for other projects in the future)
Solution:
It has been suggested that we use another package to run though all of the packages and change the connection with a script task. I can live with this (and more importantly so can our DBS's who have to deploy).
I have one snippet of code to ADD a connection using a variable holding the connection string, but we dont' want to add one, just change an existing one.
Has anyone else done this? Or had a similar problem and way to fix?
We are likely to have many projects in which the connections MUST change at deployment, and the idea of going into every package to make the change is sad at best... We would be more likely to move back to a competitor's product that has a connection repository, than continue with SSIS.
I have created SSIS (.dtsx) files and have stored in different servers. Now my query is I want to move all dtsx files from filesystem to Sqlserver2005 database how should i do it.
I need to create the ssis package in business intelligence developement studio i am need to sqlserver 2005.When i opened the BID studio i am not able to see the integration services packages type.. Please help the steps to design the package.
I have experience of using the 2000 in dts designer mode.
I upgraded to Microsoft SQL Server 2005 Service Pack 2 and now when I run the master SSIS package( that has several packages in it), all the packages run twice.
After removing SP2, they work fine. Any ideas how to make this work with SP2?
I am writing a vb application that is supposed to let the users set the connection string for the datasources in the package. After new connection strings are entered the application is supposed to run 8 packages in a certain order, but I haven't been able to set a new connection string successfully. Is there a way to programmatically modify the connection string of a package's datasource? (the packages are moving data from a D3 database to sql server 2005)
Here is what I have tried so far:
A. Dim pkgLocation As String Dim app As Application = New Application() pkgLocation = "c:Package1.dtsx" Dim pkg As Package = app.LoadPackage(pkgLocation, Nothing) Dim myConns As Connections = pkg.Connections
MessageBox.Show(myConns(0).ID.ToString) Dim myConnMgr As ConnectionManager = myConns(0) Dim connProperties As DtsProperties = myConnMgr.Properties
I am connecting to a DB2 mainframe to pull data into SQL 2005. Very simple import. SSIS package works fine on 32 bit. However, once deployed to the 64 bit machine, I get "invalid product license" on the Acquire Connection method.
I've worked with IBM support. I have the correct version of the DB2 Connect client installed. The license is there and in the right place. I can connect to the mainframe from the 64 bit server using the DB2 client tools. I just can't seem to execute the package from Integration Services or run a job in SQL Server that executes the package.
According to BOL, the package should automatically detect the 64 client I installed. It and the 32 bit client I developed with share the same name/id.
I read in Kirk Haselden's book "Microsoft SQL Server 2005 Integration Services" that if SQL Serfver 2005 and 2000 are installed on the same machine as seperate instances then you can view the SQL Server 2000 DTS packages in 2005 Management Studio under the Management tree, Legacy, Data Transformation Services node.
But in my case, I am not able to see DTS packages in Management Studio. Is there a property or a setting that we need to configure for that?
I'm still new to SSIS packages and I'm NOT a developer. I am in the process of doing preliminary/prepatory work for migrating our SQL 2000 platforms to SQL 2005.
I am having a REAL headache with migrating/moving DTS packages from SQL 2000 to SQL 2005. Here are things that I know :
1. I know that some packages cannot be migrated due to ActiveX issues and other issues. Fine.
2. I know that I can install DTS backwards compatibility components on the server in order to be able to edit the DTS packages using a SQL 2000 DTS GUI. Fine.
3. I know that I can use the Migration wizard to migrate packages (and that some of them can't be migrated this way). Fine.
Here's what I don't know/or am conjecturing:
1. In a clustered environment, I have to edit the <%Install Path%>/90/DTS/Bin/MsDtsSrvr.ini.xml file to set the <ServerName> property to the Virtual Server name. Correct? Why can't M$ do this for me?
2. Do I HAVE to export the SSIS package to a .DTSX file in order to be able to edit it with Visual Studio? Is there ANY way around this?
3. If I am running in a clustered environment and I use the File System for storing packages, then the pacakges must be stored on a shared volume, right?
4. I did not find SQL Server Integration services on the B- (Passive) node. Do I have to install it separately onto the B server (much like having to install the Client Tools)?
If anyone has some guidance or tips on running SSIS in this brave, new, wonderful world, I would sure appreciate it.
And yes, I am going to go out right now and order a new book on SSIS.
Hello, When I try to save modifies in packages with many components the system show me a information dialog telling me that there was a System.OutOfMemoryException
Anyone knows how to solve this problem without divide the package in 2 or more packages?
Hi All, I've been assigned a task by one of the programmer in my team to create packages from some of the databases(One from SQL2005&Other one from SQLEXPRESS) I've created and saved the packages using the export wizard.I saved the Packages as Integration Services Packages(On file System). Now he wants me to execute the packages using SSIS But in different time,like maybe after 5min.Other package runs. I really have no clue how to do that,I've added Both packages in SSIS,But i really dont know how to run them in different time. If anyone could help please do so!
I am in a situation where we are redesigning our Datawarehouse. Currently we have our Datawarehouse in SQL 2000 and we are rebuilding from scratch in SQL 2005. This means that even though we will get the same tables but we are planning to rename each & every attribute to make it more meaningful.
The question is like this:
We can migrate the current DTS packages to SSIS but since all the ODBC connections , field names(attributes) will change is it worth it to leverages the DTS packages ?
Also we convert the julian date to gregorian date in our DTS packages but since SSIS has a feature to convert julian date it would be redundant to migrate the packages and my feeling is to create new packages in SSIS and start on a clean slate.
I am asking something very basic and theoretical, here.
Are there any design tools available in the market for designing SSIS packages? By "design tools" I mean tools which enable us to "plan" or "design" the architecture of a SSIS Solution that will be implemented later, using SSIS, of course.
We have several design tools available for designing a Web Application solution, for example. Similarly do we have something for SSIS?
Are there any design approaches, best practices and/or design techniques published for designing a SSIS solution?
Please note that I am not talking about the SSIS Designer or the BIDS. I am talking about a tool/approach for designing the SSIS solution which can be delivered as a project artifact before the actual coding phase starts?
Well, I have tried to express myself as best as I could. If someone can help me with this, it will be really great!
On my local desktop, I can create and run ssis packages, when I try to do the same thing on server I get he following error right clicking on running packages or stored packages.
failed to retrieve data for this request. Library not Registered. (exception from HRESULT: 0x8002801D
there are 2 instances of SQL on this server. Both are named with one being use by SQLExpress and the other by SQL2005 Std
I am fairly new to SSIS and I have a number of questions concerning deploying SSIS packages and Configuration Files
The SSIS packages will be deployed to three environments (DEV, TEST,PROD - this is a clustered environment) and will be executed by SQL Server Agent Jobs. There will be a need for different configuration values for each environment (file import directory, database server connectivity) , the configurations will be reused by mulitple packages.
I have decided to deploy the packages and configuration files to a file directory in the format
1) I storing the packages/config files to a file directory the best approach, or should I be deploying the packages to SQL or file ( C:Program FilesMicrosoft SQL Server 90DTSPackages)
2) Is it best to have different configuration files for each environment (dDBConn_DEV.dtsconfig, dDBConn_TEST) or have the same config file and then change the values during deployment (via scripts).
3) What is the best way to deploy the packages and config files to the different environments (rather do it via scripts than the deployment utility)
4) Where is the best place to store the config files (I have one VS 2005 project per package, the confi files are used by multiple packages), TFS is our source control software
5) Does any one know of a good website to look at for best practice when deploying packages and config files