I have a quarterly update package that I run from the backend of our system that uses an Excel (2007 format) document as a data source. The package stages the data from the Excel document to a table within the database, where it is processed and loaded in the production system.
Today, I received the Q2 update for April 2015, and attempted to run the new file into the staging system through Visual Studio as I have in the past. But for some reason today, VS / SSIS appears to be stuck "Validating Excel Source". I've let it sit for up to 10 minutes, before having to kill my Visual Studio instance through Task Manager.
The source document is small and relatively uncomplicated on 6 columns and less that 300 Kb in size, so I can't understand the validation issue all of a sudden. It appears to be the same excel version and format as my previous runs.
This package has been untouched for the better part of year, only having to change a series of parameters for each quarterly run.
I've deleted the connection managers and excel components from the package and recreated them but still appear to have the same issue. I've also recreated the source document.
I attempted tp disabled the DelayValidation and ValidateExternalMetaData properties, in hopes that it might give me a meaningful error dialogue, but have yet to get past the "Validating Excel Source" message.
Any input would be appreciated, Thank you.
I appear to have found a resolution to the issue.
It appears that a recent update to my installed Office suite altered the driver for Excel on my machine.
The following articles helped me resolve the issue, but as it turned out I needed to reinstall the Office 2007 System Driver: Data Connectivity Components...(linked in the 2nd article)
Once installed I was able to reopen my solution and view the Excel document.
Thank you for the assistance.
Using Excel 2012 file in Excel Connection Manager
How to fix errors: "the 'microsoft.ace.oledb.12.0' provider is not registered on the local machine"
Remove the excel file that the connection manager is looking for from the directory that it is pointing to. Once you do that the Validation of the Excel source should fail when it can not find the file it is looking for. This should allow you to get into the package and set Delay Validation = True in the properties.
The package validates the excel connection manager the same as it would any other OLE DB connection manager. It confirms connection and then runs your statement to validate the return of data. If you take away its source it should flame out quickly.
I have found that background processing on your machine can block this validation or processing of the request the same as a priority query might in SQL. If you machine is in a state with a number of priority tasks running this validation is put on the back burner and can and will take forever. In cases like this the connection used to the source being used to validate with either disconnect or timeout and it is not handled in the UI so it just hangs and locks up.
Related
I am working with SQL Server 2014. I have applied the Microsoft Access Database Engine 2010 Redistributable to my server. I have tried both the 32-bit and 64-bit drivers. With the 32-bit driver, I can export to Excel 97-2003 without a problem. If I try to export to Excel 2007, my Varchar(1000) column fails with the following error:
Error 0xc0202009: Data Flow Task 1:
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x00040EDA.
An OLE DB record is available.
Source: "Microsoft Access Database Engine"
Hresult: 0x80040E21
Description: "The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.".
(SQL Server Import and Export Wizard)
If I go with Varchar(255) instead of Varchar(1000), it works fine in both versions of Excel. The column maps from Varchar(1000) to Longtext and I set it to ignore truncation errors.
I have run into this with various projects, this project requires the full length of the column and truncation is not accepted. I have tried running the wizard from SMSS and from the Start menu (both 32-bit and 64-bit, although it seems SMSS runs the 32-bit version if the 32-bit driver is installed).
I could probably stick with Excel 97-2003 for a while, but eventually it will go over 65,536 rows and will have to go to Excel 2007. I cannot export to csv, as my client requirements are that it be placed into an Excel file. They would rather have .xlsx files, but will accept .xls files for the time being.
The export needs to be run on a regular basis, so I need to save the package as a .dtsx file.
Does anyone have any ideas on how to fix this?
One of the workarounds I found on a website sais:
You have to include the account you use to execute the package in the
performance counters group.
But I don't know how to apply this in SSIS, I will look for this and try to update my question.
a little background, I really don't know any technical terms from Oracle. My company have a pre built machine and I'm trying not having to go there backup my files and lose a day of job because I cant.
Recently I'm learning how to use Oracle Designer (6i) to build a diagram and later a table so I can request it to be created... While using the software it requested to install some file for the repository... after doing it, It screwed up every Oracle product I was using... I couldn't connect to PLSQL or even the designer...
After fixing some registry to point to the right TNSNAME and manually adjusting PLSQL, I managed to access both. The problem in hand is in oracle Designer at the "Designer Editor", when I right click a table and select generate, the message bellow shows up
Message
-------
CDD-23564: The file "C:\ORACLE\DSG6I\BIN\cds61.dll" could not be loaded or does not exist.
Cause
-----
The specified file or one its dependent files could not be loaded.
This may be because a file has not been installed, or is not
correctly defined in the system registry.
As an example dependency, the Forms Generator files require the
Form Builder files installed as part of Developer.
Action
------
Check the registry settings for the location of the required
file. Also check the product and any required dependencies
e.g.Developer have been installed correctly.
If necessary, try reinstalling.
The dll mentioned IS and EXISTS on the mentioned folder.
Considering I don't have the Oracle Developer 6i intaller, what can I do? What registry entry should I update?
Designer 6 is long out of support. Oracle has a free tool, SQL Developer Data Model, which does not break.
Even Designer 9i was flaky and would crash at random intervals and poke along with larger schemas. Anything over hundred tables could take days to edit. Ah, good times...
I managed to fix the problem by copying and replacing the whole ORACLE_HOME\DSG6I folder (in my case c:\Oracle\DSG6I, for those confused in terms like me) and the oracle system registry (regedit > HKEY_LOCAL_MACHINE\SOFTWARE\Oracle) from a coworker machine!
Although my title states my current goal, I am open to alternative solutions. In short, I have a series of SSIS packages that are scheduled to run on a nightly basis, on our SQL Server machine.
Due to various updates that happen in the ether of my corporate-IT, some times these exports brake and the process will stop working, in the middle of the job. To troubleshoot this process, I fire up BIDS on my workstation and restart which ever process fails. This is useful because it's been my experience that any error generated from within BIDS are much more useful than anything I've found from within SQL Server/Package Execution History or the servers event logs.
Historically, my problem has been that not all problems will occur in BIDS, but they will, consistently on the server. These issue have been painful to diagnose and have cost me a lot of time.
As such, what I would like to do is publish my package to the SSIS server, start the server instance from BIDS and monitor the project as it runs. Is this possible?
If not, is there something else that I can do so that I can monitor the internal steps as the process executes?
I fear that none of this may be possible but I have to ask. It will make my debugging and troubleshooting life so much easier.
Possible option:
You need to make use of Logging feature in SSIS. It allows you to configure the events for which you would like to capture the messages. I usually prefer the log OnWarning and OnError to keep track of all the warning and error messages that occur in the package. You have various provider to save the logging data. I prefer to use SQL Server so that I can query the logging information.
Logging options shown from SSIS 2012:
To enable logging in a package, you need to click the package Business Intelligence Development Studio (BIDS) if you are developing packages in SSIS 2005 - 2008 R2 or SQL Server Data Tools (SSDT) if you are developing packages in SSIS 2012.
Click SSIS menu and then click Logging...
You will see the Configure SSIS Logs dialog.
On the left side, you can check the package or individual tasks to log the event data.
On the Providers and Logs tab, you can select an appropriate provider to which you can save the log information. The below screenshot shows that event information are captured in a SQL Server database using the connection manager OLEDB_PracticeDB.
On the Details tab, you can select which events you would like to capture. The below screenshot shows that I am capturing the following events.
OnError
OnInformation
OnTaskFailed
OnWarning
Thanks to #William Todd Salzman for recommending OnTaskFailed event
Sample package illustration:
Let's say we have a package named SO_15004109.dtsx with a Data Flow Task and Script Task. Data Flow Task is just a dummy with no components inside.
Script task has the following code in Main method to fire custom information, warning and error messages so we can observe how it is captured in the logging data source. The code is written for SSIS 2012 so you may need to alter it for SSIS 2005. I chose VB.NET instead of C# because you have tagged this question under sql-server-2005 and SSIS 2005 only supports VB.NET.
Script Task code in VB.NET for SSIS 2005 and above.
#Region "Imports"
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
#End Region
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
Public Sub Main()
Dim fireAgain As Boolean = False
Dts.Events.FireInformation(101, "Custom Script Information", "This is a test information message.", String.Empty, 0, fireAgain)
Dts.Events.FireWarning(201, "Custom Script Warning", "This is a test warning message.", String.Empty, 0)
Dts.Events.FireError(201, "Custom Script Error", "This is a test error message.", String.Empty, 0)
Dts.TaskResult = ScriptResults.Success
End Sub
#Region "ScriptResults declaration"
Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum
#End Region
End Class
If we execute the package, it will fail because we raised an error within the Script Task.
If you navigate to the data source where you logged the errors, you will notice that SSIS creates a table to log the information if you chose SQL Server logging provider. Below table lists the logging table that SSIS creates in the SQL Server database chosen to be the log provider.
SSIS Version Log table name Table type
-------------- ---------------- ----------
SSIS 2005 dbo.sysdtslog90 User
SSIS 2008 dbo.sysdtslog100 User
SSIS 2008 R2 dbo.sysssislog System
SSIS 2012 dbo.sysssislog System
Below query was executed in the database to view the events captured by this sample package. You will notice some messages twice because the events are logged for each containers and tasks. The table is named dbo.sysssislog because the package was created in SSIS 2012.
select id, event, source, message from dbo.sysssislog;
Personal experience with logging:
I have had fairly good success in just viewing the logging error messages to understand what went wrong. Debugging packages in production environment is not advisable, in my opinion. However, capturing log events is preferable.
When I worked in SSIS 2005 and 2008, I have created SSRS based reports that queries the log table to generate daily report of the job executions and send a PDF attachment to persons of interest.
Things have improved in SSIS 2012 that the tool comes with in-built reporting capabilities with Integration Services Catalog that creates a database named SSIDB.
At my current gig, we've started using a product from Pragmatic Works called BIxPress, which includes tools to inject logging code into existing SSIS packages and monitor running packages as they execute. It's not cheap, but we have found it helpful. (Especially since it means we don't have to roll our own monitoring code...)
I am running SQLManagementStudio_x86_2012_ENU.exe to install SQL Server 2012. I came across a problem and I was hunged on it too long.
I have seen the same problem in SO and they are give a solution for that. I also over come that problem but again stuck again in half way through. So I am going to ask this again(not a spam)
Problem: When I ran above mentioned exe it was installed fine, Then I tried to create a instance of the server. I used SQL Server Installation Center in configuration tools. then I selected new SQL Server and it asks me to select the SQL Server Installation Media. I selected C:\Program Files (x86)\Microsoft SQL Server but it was invalied.
then I figured out that it is asking for the Installation media itself. So I extracted the .exe file to a folder and selected that path. that was taken as a valid media.
I refered to this link.
some have mentioned that this was a bug here.
when I clicked next it gives the following error. so that I can not proceed and create a instance. Can some one help me on this.
thanks in advance.
I have tried lot of things to come up with a solution for this. As you can see in the picture, there are only 2 check boxes which are already checked and disabled. This is not the right .exe file to run(I was unable to create a server instance using this). I downloaded the right SQL server installation file from here.
There are several .exe files that gives different functionality enhancements. I chose SQL server with tools which is about 1GB. I did not have to uninstall the existing sql server installation. I installed this and it worked fine. I will post back if I found a way to create a SQL server form the given installation. If you have the same problem as described above, most probably you are using the wrong .exe file.
Good luck with your fix.
I created SSIS packages a while ago, today I need to re-point them to a different SQL server. I have a bunch of "Execute SQL Task" tasks, which need their Connection property changed to a different server.
I created a new connection manager, double-clicked on each of the sql tasks, changed their Connection property to the new one, ran. It failed, the error was that it could not find the old connection. I restarted the project, none of the SQL Server tasks seem to pick up the new Connection Manager. I opened up the .dtsx files, tried to find the old server name somewhere and manually change it, but I could not find the old server.
What do I have to change to get rid of the old SQL Server and make it connect to the new, correct data source.
I work in VS2005, on Windows 2008 x64 machine (I don't know if it matters or not).
Thank you.
I've seen this occur before when Package Configurations are enabled. Make sure that this is not the case, recompile, and try again.
all you had to do is change the connection string in the old connection manager
make a new one if you deleted the old one and in all the tasks select the new one, even if you create a new one with the same name as the old one it won't work because somewhere internal a guid is used
Check to see if package configuration is enabled. The package may still be getting the configuration of the old server from the package configuration.
try recompiling after making the changes.