Lock A Table Until Package Execution Finishes
Feb 23, 2007
Hello,
I need to lock a table in startup of my package so that access calls from other applications are put on "wait" by sql server until I unlock.
Any idea how would I do it ?
Or is it possible or not ?
Thanks,
Fahad
View 3 Replies
ADVERTISEMENT
Jul 27, 2006
I am cleaning up a large database table that has Date keys instead of real DateTimes. To do this, I am running the following query...
UPDATE MQIC.DBO.OBSERVATION_F
SET MQIC.DBO.OBSERVATION_F.OBS_DATE = MQIC.DBO.DATE_D.ACTUAL_DATE
FROM MQIC.DBO.OBSERVATION_F INNER JOIN MQIC.DBO.DATE_D
ON MQIC.DBO.OBSERVATION_F.DATE_KEY = MQIC.DBO.DATE_D.DATE_KEY
where Actual_Date is what is being stored, and the Date_Key is to be dropped.
The particulars are this -
Date_D table - 92,000 rows - 40 MB
Observation_F - 2,000,000 rows - 3.2 GB
This is being run on a remotedly hosted rack server with an AMD processor, 1 GB RAM, 60 GB harddisk space, 20 GB used.
SQL-Server 2005 Express - SP1
If I do the same query as a SELECT Statement,
UPDATE MQIC.DBO.OBSERVATION_F
SELECT MQIC.DBO.OBSERVATION_F.DATE_KEY, MQIC.DBO.DATE_D.ACTUAL_DATE
FROM MQIC.DBO.OBSERVATION_F INNER JOIN MQIC.DBO.DATE_D
ON MQIC.DBO.OBSERVATION_F.DATE_KEY = MQIC.DBO.DATE_D.DATE_KEY
it runs to completion in about 15 min - during the entire time there is extensive used of CPU from Task Manager.
If I do the above statement, it seems to use lots of resources (50% +) for about 5 min, then falls to 5%. It just seems to sit there, for an hour + at which time I've killed the query.
This is actually the second time I tried this. The first time was on a different machine, with the P4, 3GB RAM, plenty of disk space, and using SQL-Server 2005 Standard - SP1. Exactly the same decrease in resources happened, and even though it ran several hours, no results.
Any thoughts here - not waiting long enough, memory leaks, etc.?
Thanks!
View 6 Replies
View Related
Jan 11, 2008
I have a package which truncates files, fills them with data andshould send a mail with the files as attachment when it finishesrunning. In between, when the task is still running mail is sent withempty files. When I take a look at the directory (at the end of thetask), where the files are created I find out that the files are notempty.(e.g. in task: doA->doB->doC->SendMail. But instead of waiting tilldoB->doC finishes, it does the following: doA->SendMail ... may bebecause doB takes long.)Can I indicate anywhere that it should delay the mail until at the endof the task?Thanks in advance.Harp
View 1 Replies
View Related
May 21, 2007
Hi,
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
View 4 Replies
View Related
May 23, 2001
Hi,
I want to lock a table so others cannot lock it but able to read it inside transactions.
The coding I need is something like this: set implicit_transactions on begin transaction select * from table1 with (tablock, holdlock) update table2 set field1 = 'test' commit transaction commit transaction
I have tried the coding above, it won't prevent others from locking table1.
So, I changed the tablock to tablockx to prevent others from locking table1. But this will also prevent others from reading table1. So, how can I lock table1 so others cannot lock it but still able to read it?
Thank you for any help
View 1 Replies
View Related
May 15, 2001
I have already created package which loads a text file to database.I wanted to execute that package based on the availability of the file using Visual Basic,Perl or VBSCRIPT whichever is easier.Please advise.Thanks
View 4 Replies
View Related
Oct 30, 2000
I wrote a stored procedure that calls a DTS package that imports a file into a SQL Server table, then executes some commands on that table. How can I tell that the DTS package has completed, so that I can continue with the next command? Here is my code:
-- Run the DTS package
EXEC @Result = msdb..sp_start_job @job_name = 'MyJob'
WAITFOR DELAY '00:00:02'
-- Call the table that the package created
SELECT * FROM <imported_table> WHERE ...
I had to insert a WAITFOR statement to make this work. Any other suggestions as to how to know when to continue?
Thank you.
View 4 Replies
View Related
Mar 18, 2004
Is there a method to either:
A) Kick of a DTS package directly from a stored procedure without shelling out to the DTSRun facility.
B) Kick off a scheduled job containing a DTS task from a stored procedure?
What's the best method?
View 2 Replies
View Related
Feb 11, 2008
Hi Friends,
I need help from you.
I am working on SSIS packages for ETL purpose.
The version of SQL Server i am using is SQL Server 2005.
In Brief , the working of current ETL is as follows.
In ODS database i have 2 tables i.e Table_A & Table_B which gets loaded from another 2 staging tables A & B.
And using this 2 tables data will be loaded into a target table i.e Trg_A.
The ETL packages are executed by stored procedures by creating a job within the stored procedure.
The loading of the trg table is little tricky.
Before that loading of Table_A is implemented in a single SSIS package.
and loading of Table_B is been implemented in another SSIS package.
In the trg table there are two columns which will be getting updated as and when each table is loaded.
so for the first time if i run the package which is resposible for loading Table_A, it loads values into Table_A and once done it will updates (col1) in the target table.
Once after the complete of the execution of Package1.
Now i will kick off the second ssis package which loads the data into Table_B and updates the trg table's columns (col2).
Now the actual problem what i am facing is:
For loading Table_A and updating the col1 in Trg table i will be receving more than 5 excel file every month on weekly basis.
I cannot even gather all the files and run using a For-Loop counter.
So presently i am loading data excel file per week .
Similarly loading of table_B.
For a week if i am executing both the packages which loads the Table_A and updates the Trg(col1) and Table_B and updates Trg(col2), then i am getting a Deadlock Error and the entire ETL is getting messed up.
Now my requirement is , Eventhough the 2 packages are run in parallel , there could certain milli seconds time difference while start of the execution in Job Monitor.
I need to implement a Queing Mechanism which takes care of running the packages in a sequential manner rather than in parallel. i .e i need to ensure only one SSIS package is running in Job Monitor. Only after successful execution of either one the package, then only the second package should start its execution.
If we can implement such a queing mechanism , then my problem is solvedl.
I need some suggestions on this regard in implementing the Queing mechanism in a programatic approach using SQL Server Job Related MetaData Tables.
or else is there in server parameter or initialization parameters which can be set at Database level which suffice my requirement.
Any suggestions would be greatly appreciated.
Looking for sincere comments on this regards.
Thanks in advance.
View 3 Replies
View Related
Nov 17, 2004
I have a package that has 12 data pump tasks all executing in parallel.
It is transferring raw data from an AS400 DW to a MSSQLSvr Staging area.
Each pump task on completion assigns values to a set of global variables, then having done this passes these as parameters to a sproc which inserts them into a table.
This seems to work for 4 or 5 of the pump tasks but, the rest of the rows in the table are all the same because the remaining pump tasks are all executing before the sprocs.
Is there a way to make sure that the entire set of job steps completes, before starting another job set of steps while still keeping them running in parallel.
I had wondered if there was a way to use the PumpComplete phase of each pump step to fire off the sproc, but can't see how you execute the step.
Any ideas would be much appreciated.
View 1 Replies
View Related
Nov 25, 2004
I want to finsih the execution of a DTS package from an ActiveX task. If a condition is ok, the package would continue as normal. If not, I want to finish the package without any error. Just without executing the next tasks. Do you have any idea?
Thanks
View 1 Replies
View Related
Jun 11, 2007
Hi:
I need a user to pass an input to a package from a VB form, and then want to show progress/errors in the form.
I have been able to use Application. LoadFromSqlServer and I then set pkg.Variables.(MyVariable) to the required value before calling Execute.
Works fine so far.
I dont know how to show progress. The DTSExecResult just returns a Cryptic Success /Failure status message.
Is there a way to log the errors if any to my Windows form? I have seen samples on Console Apps(see below) but I would prefer to show it in my Windows form in a text Box or something, appending each error result to the text.
TIA
Kartik
Code Snippet
Class EventListener
Inherits DefaultEvents
Public Overrides Function OnError(ByVal source As Microsoft.SqlServer.Dts.Runtime.DtsObject, _
ByVal errorCode As Integer, ByVal subComponent As String, ByVal description As String, _
ByVal helpFile As String, ByVal helpContext As Integer, _
ByVal idofInterfaceWithError As String) As Boolean
' Add application€“specific diagnostics here.
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description)
Return False
End Function
End Class
View 1 Replies
View Related
Feb 28, 2008
I have basic knowledge of SSIS and will appreciate if some can suggest a way (with example if possible), to solve this problem.
I have an SSIS package that requires execution of another package, lets say B. This I am able to do using the 'Execute package' task. Now, what I really want to do is, I wish to check if a perticular table 'A' has rows that satisfy a given condition. In other words, I wish to execute Package 'B' onle if Table 'A' has rows. How can I do this?
Thanks in advance.
View 8 Replies
View Related
Aug 2, 2006
Hello all
I want to cause the package to fail in DataFlow. I wanted use the script component for this purpose.
How I can do it?
Thanks
View 1 Replies
View Related
Nov 24, 2006
I tried to execute the package,which is importing the data from the Flat file(flat file from map network drive on other computer).But Packages are created and executed on Server.While i executing that package it shows error as "Package could not be found.".
Please help me ASAP.
Thanks in advance
View 2 Replies
View Related
Feb 21, 2007
hello to every body.. well i have a problem.. well i created a package the task of which is to update thedimensions and the fact tables from the tables of source.
i created a configuration file with all the parameters that are nedded (connections managers; parameters of packages).this config file will include all the paremeters need for the execution of other packages
In that package i call an other package (execution package task). this package normally will take the parameters of the parent package isn't it??(i put the parameters of this package to the config file of the parent package).
i must also note that for the second package called there is also a package...
i must also note that i have 2 DWHs (a and b) for testing.
the problem is that when i execute the parent package to DWH b , the sacond package called do not take the parameters of the parent package. instaed it looks to its XML configuration file(in a different location of the config file of the parent package) which contains the connection parameters to DWH a and it calls strored procedures from the DWH a (instead of calling at SP from DHW b).
any ideas??
thnx a LOT0
View 3 Replies
View Related
Sep 13, 2006
Hi All,
I have a problem in getting the info about the execution of a DTS Package.
I have a SQL-2000 Client installation on my Desktop to connect to SQL-2000 Server Database system to do all of my work. i had a DTS package stored in my SQL Server2000 Local Packages. Now i have to schedule the DTS Package from my Desktop. And the DTS package is processing some files from a shared network folder. when i used to run the DTS package manually from my desktop my desktop login have access to that shared folder so there is no problem to run the package.
suppose i scheduled the DTS to execute on daily basis at 10:00 AM. Now my doubt is wher the DTS will be executed after scheduling, which starts DTS execution and is it required my Desktop to be up daily at 10:00 AM, and how the network shared folder is going to be accessed by the DTS, means where to specify the authentication to the shared folder.
somebudy plz help me out.
Thanks in advance.
View 2 Replies
View Related
Apr 4, 2008
Hi all,
Which is the best way to execute SSIS packages? I have no problem to use dtexec command but I want it to run every night. Is this going to be done through the SQL Server (SQL Server Agent under Jobs)? Is the type going to be Operating System (CmdExec) or Transact Sql? How exactly is the command written there?
Thanks in advance.
View 6 Replies
View Related
Jul 13, 2007
I am running into some issue that i have found any good clue on this forum... although have seen a few threads dicussions. I have a master package which invokes a dozen of child packages.
1) If I only open master package inside IDE, I am keeping getting the following error when i run the master packages inside Visual Studio 2005 IDE.
The connection type "FLATFILE" specified for connection manager "XXXXX Flat File Destination Connection Manager" is not recognized as a valid connection manager type. This error is returned when an attempt is made to create a connection manager for an unknown connection type. Check the spelling in the connection type name
2) If I opened up all child packages inside IDE, the master package run fine most of time.
Any suggestions?
View 26 Replies
View Related
May 9, 2008
Hi everyone,
I just deployed my first interface and below is the error message
failure". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E4D Description: "TCP Provider: An existing connection was forcibly closed by the remote host. ". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E4D Description: "Login failed for user 'EUROPExxx123$'.". End Error Error: 2008-05-09 11:01:13.00 Code: 0xC020801C Source: Load New Data Into TransDat... The package execution fa... The step failed.
The interface is just to copy the data from 1 database to another based on a date. I suspect that i could have missed a step during the deployment, can someone tell me if the error is caused me forgetting to configure something during the step up of the job or is it network related
Regards
Ash
View 2 Replies
View Related
Jul 17, 2006
I have 10 or so packages with package scope variables. I would like to create a package that not only runs all the packages but also sets the variables within the packages being executed.
A) Whats the best way to run all the packages from one (package??)?
B) Whats the best way to set the variables in the child packages, without having to change them manually everytime I run it.
Thanks,
Mardo
View 3 Replies
View Related
Dec 21, 2006
Hi all,
I am Hazara. I am trying to call a SSIS package from a web service. But package.execute() method is returning 'failure'. Though I am able to execute the same package from a normal .Net project and it is working fine (using the same code that i have used in web service).
I have also tried to execute it through stored procedure for which firstly I created a .dll in c#(which is perfectly working) and then I registered this .dll in sqlserver-2005 using following command.
CREATE ASSEMBLY asmPackageExecuter FROM 'C:WINDOWSMicrosoft.NETFrameworkv2.0.50727PackageExecuter.dll'
WITH PERMISSION_SET = UNSAFE
GO
Now on calling the method of .dll (which is responsible to execute the package) I am getting the DTSExecResult as 'success' but data is not getting transfered from one able to other as was expected from the package.
Please help me. I have searched it everywhere on net but didn't get any solution.
I want to execute package only through web-service or stored-procedure
Thanks
Hazara.
View 3 Replies
View Related
Jul 24, 2007
Hi all,
I have a package which updates a table which contains a large amount of rows, when this package is runnning the process consumes 100% CPU and other services are crashing (SSAS, SPS, SSRS).
Is there any parameter which could be set to avoid SSIS to consume 100% of the CPU during the execution of this package ?
View 4 Replies
View Related
Nov 13, 2007
I have a pacakage wich loads data from a .csv file into my database. When I run the package from Visual Studio there is a Progress/Execution Results tab where I see information about the progress. I would like to insert some of these messages into my database. I tried to handle the OnProgress event with an Execute SQL Task and insert the Progress descriptions, but that doesn't seem to give all the information I see on the above mentioned tab (moreover, I get different numbers of events running the package from VS and running it programmatically from c#, why is that?).
What I really would like to get are the messages from the Progress tab which look like these:
[Agreement File [11773]] Information: The processing of file "D:****files*********.csv" has started.
[Agreement File [11773]] Information: The total number of data rows processed for file "D:****files*********.csv" is 201.
[Agreement File [11773]] Information: The processing of file "D:****files*********.csv" has ended.
[DTS.Pipeline] Information: "component "OLE DB Destination" (12598)" wrote 200 rows.
Any help would be appreciated.
View 3 Replies
View Related
Jan 12, 2006
I am trying to design package which would copy all tables and stored procedures from one server to another. It used to be simple task in SQL 2000, there was wizard. However the new wizard does not work...
I wrote SSIS package, but when I execute I get the following error: "Can not apply value null to property Login..."
Any idea? It seems to me that this new SQl2005 is not that simple to use like 2000. 2000 was a great product. I am considering to rollback to 2000. Very frustrated with the new one...
View 31 Replies
View Related
Apr 29, 2008
Hello again to everyone,
Because of aleatory problems some of our Analysis Services Tasks fails and sometimes success with not know reasons. You run the task and it fails, the next time it fails, the next time is success, and so on aleatorily.
The solution of this is to put those tasks in a loop (ore someting similar) that only ends if all of the Analysis Services Tasks succeeds. If not, those tasks starts again. Do you know what I mean? How can I build this? I have investigated with checkpoints, with For Loops ... but still I dont find the way to do it.
Does anybody can help me? I suppose it's not so difficult, but I'm stuck in finding the solution...
Thankx once again.
JohnSSIS
View 3 Replies
View Related
May 21, 2007
Hi,
I have 5 different packages out of which one needs to be run on a weekday basis. I wanted to have some kind of condition or varaiable to be set in a different Package which would determine which out of 5 packages needs to be Run.
I am thinking of setting a variable and then passing a value that would determine the particular package but then I dont know how set that in "Execute Package Task".
Could somebody help me on this .
Cheers
View 3 Replies
View Related
Feb 2, 2007
I simply made my script task (or any other task) fail
In my package error handler i have a Exec SQL task - for Stored Proc
SP statement is set in following expression (works fine in design time):
"EXEC [dbo].[us_sp_Insert_STG_FEED_EVENT_LOG] @FEED_ID= " + (DT_WSTR,10) @[User::FEED_ID] + ", @FEED_EVENT_LOG_TYPE_ID = 3, @STARTED_ON = '"+(DT_WSTR,30)@[System::StartTime] +"', @ENDED_ON = NULL, @message = 'Package failed. ErrorCode: "+(DT_WSTR,10)@[System::ErrorCode]+" ErrorMsg: "+@[System::ErrorDescription]+"', @FILES_PROCESSED = '" + @[User::t_ProcessedFiles] + "', @PKG_EXECUTION_ID = '" + @[System::ExecutionInstanceGUID] + "'"
From progress:
Error: The Script returned a failure result.
Task SCR REIL Data failed
OnError - Task SQL Insert Error Msg
Error: A deadlock was detected while trying to lock variable "System::ErrorCode, System::ErrorDescription, System::ExecutionInstanceGUID, System::StartTime, User::FEED_ID, User::t_ProcessedFiles" for read access. A lock could not be acquired after 16 attempts and timed out.
Error: The expression ""EXEC [dbo].[us_sp_Insert_STG_FEED_EVENT_LOG] @FEED_ID= " + (DT_WSTR,10) @[User::FEED_ID] + ", @FEED_EVENT_LOG_TYPE_ID = 3, @STARTED_ON = '"+(DT_WSTR,30)@[System::StartTime] +"', @ENDED_ON = NULL, @message = 'Package failed. ErrorCode: "+(DT_WSTR,10)@[System::ErrorCode]+" ErrorMsg: "+@[System::ErrorDescription]+"', @FILES_PROCESSED = '" + @[User::t_ProcessedFiles] + "', @PKG_EXECUTION_ID = '" + @[System::ExecutionInstanceGUID] + "'"" on property "SqlStatementSource" cannot be evaluated. Modify the expression to be valid.
Warning: The Execution method succeeded, but the number of errors raised (4) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
And how did I get 4 errors? - I only set my script task result to failure
View 11 Replies
View Related
Jun 15, 2001
Hello!
I'm trying to execute DTS package using dtsrun utility from MSDOS Prompt
and getting error message "Cannot Open user default database '<ID>'.Using master database instead".
here's the syntax
dtsrun -Stestserver -Utestuser -Ptestuser -Ncustomers
How can I resolve this?
Thank you
Lena
View 2 Replies
View Related
Nov 1, 2000
Hi,
After executing a dts package to load data from a file to a SQL table. I need to rename the file after the load.
Could any one give me a code sample so that I can add that as a task after the execution of the load in the same package
Ramam
View 3 Replies
View Related
Jan 16, 2007
I have a MSSQL DTS Package where it needs to loop/execute 3 times because the main task is to import data from 3 excel files (different location) into 1 SQL table. I used a global variable vCounter and I use an ActiveX Script.
ActiveX Script 1
Option Explicit
Function Main()
Dim vDate, vCounter, vBranchCode, vPath
vDate="011207"
vCounter=DTSGlobalVariables("gVarCounter").Value
IF vCounter<=3 THEN
IF vCounter=1 THEN
vBranchCode="ALB"
vPath="D:PROJECTSHRISALB"
ELSEIF vCounter=2 THEN
vBranchCode="MOA"
vPath="D:PROJECTSHRISMOA"
ELSEIF vCounter=3 THEN
vBranchCode="PSQ"
vPath="D:PROJECTSHRISPSQ"
END IF
DTSGlobalVariables("gVarPath").Value=vPath & vDate & "_" & vBranchCode & ".xls"
Main = DTSTaskExecResult_Success
ELSE
<This is where i will initialize the global variable gVarCounter, so in the next execution..the value should be back to 1>
DTSGlobalVariables("gVarCounter").Value=1
<DTS Process should stop execution...how is this?>
END IF
End Function
After excel to sql dts
ActiveX Script2
Function Main()
IF gVarCounter<=3 then
DTSGlobalVariables("gVarCounter").Value=DTSGlobalVariables("gVarCounter").Value+1
DTSGlobalVariables.Parent.Steps("DTSStep_DTSActiveScriptTask_1").ExecutionStatus=DTSStepExecStat_Waiting
Main = DTSTaskExecResult_Success
END IF
End Function
Thanks a lot.
View 4 Replies
View Related
Feb 11, 2008
Hi Friends,
I need help from you.
I am working on SSIS packages for ETL purpose.
The version of SQL Server i am using is SQL Server 2005.
In Brief , the working of current ETL is as follows.
In ODS database i have 2 tables i.e Table_A & Table_B which gets loaded from another 2 staging tables A & B.
And using this 2 tables data will be loaded into a target table i.e Trg_A.
The ETL packages are executed by stored procedures by creating a job within the stored procedure.
The loading of the trg table is little tricky.
Before that loading of Table_A is implemented in a single SSIS package.
and loading of Table_B is been implemented in another SSIS package.
In the trg table there are two columns which will be getting updated as and when each table is loaded.
so for the first time if i run the package which is resposible for loading Table_A, it loads values into Table_A and once done it will updates (col1) in the target table.
Once after the complete of the execution of Package1.
Now i will kick off the second ssis package which loads the data into Table_B and updates the trg table's columns (col2).
Now the actual problem what i am facing is:
For loading Table_A and updating the col1 in Trg table i will be receving more than 5 excel file every month on weekly basis.
I cannot even gather all the files and run using a For-Loop counter.
So presently i am loading data excel file per week .
Similarly loading of table_B.
For a week if i am executing both the packages which loads the Table_A and updates the Trg(col1) and Table_B and updates Trg(col2), then i am getting a Deadlock Error and the entire ETL is getting messed up.
Now my requirement is , Eventhough the 2 packages are run in parallel , there could certain milli seconds time difference while start of the execution in Job Monitor.
I need to implement a Queing Mechanism which takes care of running the packages in a sequential manner rather than in parallel. i .e i need to ensure only one SSIS package is running in Job Monitor. Only after successful execution of either one the package, then only the second package should start its execution.
If we can implement such a queing mechanism , then my problem is solvedl.
I need some suggestions on this regard in implementing the Queing mechanism in a programatic approach using SQL Server Job Related MetaData Tables.
or else is there in server parameter or initialization parameters which can be set at Database level which suffice my requirement.
Any suggestions would be greatly appreciated.
Looking for sincere comments on this regards.
Thanks in advance.
View 4 Replies
View Related
Nov 23, 2005
Hi,Say, you have two inter-dependent packages of pA and pB. With thesuccessful execution of pA you would proceed to execute pB. And sincethey would perform some repeatitive tasks on regular basis they arescheduled as a job. But you don't want to the job to make attempt torun pB if you know pA has failed and you want to nofiy sys adm of it.And let's say pA has log option checked (so, there's a log file forit). Now, it would seem to me quite clumsy to check this potentiallyhuge file to see if a particular package (pA here) is successful beforerunning pB. Any other viable and clean solution?Yes, one could possibly combine pA and pB into one big package (pBIG),however, for the sake of a clean and clear business process this is notdesirable since pA and pB handlestotally different business processes.TIA.
View 8 Replies
View Related