Share Transaction Between ADO.Net And OLEDB Connections To Same SQL Server
Mar 27, 2007
I have a package that is basically a container for using the Execute Package task to call many "child" packages. Each child package basically uses a data flow to move data from one database to another database on the same SQL Server. In the case of the child packages, I've used a combination of OLEDB and ADO.Net connections on the destinations. I ensured that all tasks and packages are set to TransactionOption.Supported and that the "parent" package has Required set at the package level. Anyway, the problem I'm finding is that one of the OLEDB connections is being blocked. When I look in SQL Server Activity Monitor I see that there are numerous ADO.Net connections that are on multiple processes (all belonging to these packages) even though when I check the Details, I can see that it has completed the final statement of the package the process belongs to. Thinking this may have been a multithreading issue, I changed MaximumConcurrentExecutables to 1 in all of the packages. Basically, even though all of the packages appear to have their own processes, when I look at the locks for the objects I'm working with, they all show up on the lowest process ID. My assumption here is that since the processID is associated with the first package, it is the "owner" of the transaction and even though the packages have their own processIDs, they show up on the first process because they're in the transaction. If I change the connection from OLEDB to ADO.Net, it resolves the issue and the blocking does not occur. So my question is, if I have an OLEDB connection manager and ADO.Net connection manager, can they share in the same transaction or are they in their own transactions?
I deployed a package on mssql-server. How can I save passwords for OLEDB connections of the package? I want to launch the package from server agent according to the schedule, but I don't know how can I save passwords for connectons?
Hi there, Here we have got a asp.net application that was developed when database was sitting on SQL server 6.5. Now client has moved all of their databases to SQL server 2000. When the database was on 6.5 the previous development team has used oledb connections all over. As the databases have been moved to SQL server 2000 now i am in process of changing the database connection part. As part of the process i have a login authorization code. Private Function Authenticate(ByVal username As String, ByVal password As String, ByRef results As NorisSetupLib.AuthorizationResult) As Boolean Dim conn As IDbConnection = GetConnection() Try Dim cmd As IDbCommand = conn.CreateCommand() Dim sql As String = "EDSConfirmUpdate" '"EDSConfirmUpdate""PswdConfirmation" 'Dim cmd As SqlCommand = New SqlCommand("sql", conn)
cmd.CommandText = sql cmd.CommandType = CommandType.StoredProcedure NorisHelpers.DBHelpers.AddParam(cmd, "@logon", username) NorisHelpers.DBHelpers.AddParam(cmd, "@password", password) conn.Open() 'Get string for return values Dim ReturnValue As String = cmd.ExecuteScalar.ToString 'Split string into array Dim Values() As String = ReturnValue.Split(";~".ToCharArray) 'If the return code is CONTINUE, all is well. Otherwise, collect the 'reason why the result failed and let the user know If Values(0) = "CONTINUE" Then Return True Else results.Result = Values(0) 'Make sure there is a message being returned If Values.Length > 1 Then results.Message = Values(2) End If Return False End If Catch ex As Exception Throw ex Finally If (Not conn Is Nothing AndAlso conn.State = ConnectionState.Open) Then conn.Close() End If End Try End Function ''' ----------------------------------------------------------------------------- ''' <summary> ''' Getting the Connection from the config file ''' </summary> ''' <returns>A connection object</returns> ''' <remarks> ''' This is the same for all of the data classes. ''' Reads a specific connection string from the web.config file for the service, creates a connection object and returns it as an IDbConnection. ''' </remarks> ''' ----------------------------------------------------------------------------- Private Function GetConnection() As IDbConnection 'Dim conn As IDbConnection = New System.Data.OleDb.OleDbConnection Dim conn As IDbConnection = New System.Data.SqlClient.SqlConnection conn.ConnectionString = NorisHelpers.DBHelpers.GetConnectionString(NorisHelpers.DBHelpers.COMMON) Return conn End Function in the above GetConnection() method i have commented out the .net dataprovider for oledb and changed it to .net dataprovider for SQLconnection. this function works fine. But in the authenticate method above at the line Dim ReturnValue As String = cmd.ExecuteScalar.ToString
for some reason its throwing the below error. Run-time exception thrown : System.Data.SqlClient.SqlException - @password is not a parameter for procedure EDSConfirmUpdate. If i comment out the Dim conn As IDbConnection = New System.Data.SqlClient.SqlConnection and uncomment the .net oledb provider, Dim conn As IDbConnection = New System.Data.OleDb.OleDbConnection then it works fine. I also have changed the webconfig file as below. <!--<add key="Common" value='User ID=**secret**;pwd=**secret**;Data Source="ESMALLDB2K";Initial Catalog=cj_common;Auto Translate=True;Persist Security Info=False;Provider="SQLOLEDB.1";' />--> <add key="Common" value='User ID=**secret**;pwd=**secret**;Data Source="ESMALLDB2K";Initial Catalog=cj_common;' />
Another requirement has cropped up with regard to picking up connection settings for data sources from an external File.
My source and target are both in SQL Server. What i need is that if my source or target changes I should just change my external file and same should reflect in my package.
How can I accomplish it? Please suggest some solution.
OLEDB transaction is making difference in my migrated application powerbuilder 10.5 which has new oledb driver which is replaced by MSS driver in previous Powerbuilder version.
1.)I am facing the below error on update/save this was not faced during my previous versino drive MSS in powerbuilder.This is oocure only after the change to oledb driver.
"Row change between retrieve and update.".
in front end of my application the error is poped as "(STD1007) This row has been modified by another user. Save is canceled! ".
I have integrated Share Point server 2007 with Reports Server to publish the reports on share point site. I did all steps involved for integration
I have share point server, reports server and database server on three different machines configured and when I am trying to publish the reports from my local Dev box, setting the below project properties, target datasource folder: http://vstsvr:168/sites/wsL/ReportsLibrary/ target report folder: http://vstsvr:168/sites/wsL/ReportsLibrary/ target Server url: http://vstsvr:168/sites/wsL/
I am getting the following error:
TITLE: Microsoft Report Designer ------------------------------ A connection could not be made to the report server http://vstsvr:168/sites/wsL/. ------------------------------ ADDITIONAL INFORMATION: Client found response content type of 'text/html; charset=utf-8', but expected 'text/xml'. The request failed with the error message: -- <HTML dir="ltr"> <HEAD><meta name="GENERATOR" content="Microsoft SharePoint" /><meta name="progid" content="SharePoint.WebPartPage.Document" /><meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" /><meta HTTP-EQUIV="Expires" content="0" /><meta name="ROBOTS" content="NOHTMLINDEX" /><title>
<table width=100% border=0 class="ms-titleareaframe" cellpadding=0> <TR> <TD valign=top width="100%" style="padding-top: 10px" class="ms-descriptiontext"> <span id="ctl00_PlaceHolderMain_LabelMessage">The file you are attempting to save or retrieve has been blocked from this Web site by the server administrators.</span> <P><span class="ms-descriptiontext"> <span id="ctl00_PlaceHolderMain_helptopic_troubleshooting"><A Title="Troubleshoot issues with Windows SharePoint Services. - Opens in new window" HREF="javascript:HelpWindowKey('troubleshooting')">Troubleshoot issues with Windows SharePoint Services.</A></span>
I got an error when i do an OLE db Source pointing to an sql 2000 database and executing a sql query inside the OLE Source. The ole source will point to an OLE DB destination which is an sql 2005 database.
But i got the below error:
Error at Data Flow Task [OLE DB Destination [245]]: the column firstname cannot be processed because more than one code page (936 and 1252) are specified for it.
Error at Data Flow Task [DTS.Pipeline]: "component "OLE DB destination" (245)" failed validation and returned validation status "VS_ISBROKEN".
Error at Data Flow Task [DTS.Pipeline]: One or more component failed validation.
Error at Data Flow TaSK: There were errors during task validation.
I have SQL Server 2014 (Enterprise) on Server A. The service runs under DomainAAdmin.
The Client machine is B, User credentials DomainBUser.
DomainBUser has a share on B that contains a BCP data file. DomainAAdmin has full access to this file.
If I log onto A (the server machine) with either DomainAAdmin or DomainBUser credentials, and run SQL Server Management Studio with Windows Authentication I can run BCP sucessfully using the following:
BULK INSERT [MyTable] from 'Bsharedatafle.tsv' WITH ( KEEPNULLS , KEEPIDENTITY ) However, if I log onto B, (the client machine and the machine hosting the share) and try to run the same bcp command, I get "Access is Denied".
I am trying to deploy the report into share point server through Visual Studio by using the [URL]..... But I am getting errors like [URL] .... could not be found.
I'm, using my script to many location to create folder to save output files and if the folder is removed/not present it can create it without any noise. But the problem is, while I use the same sort of script to check if a folder is present in the sharedpath it will not create it to copy all bkp files from local to remote path works good, but if you delete the folder or rename the exisitng folder and if the below script tries to create the folder it created as "fILE", very interesting. Per IT team they have given SQL Server account the full rights to create/delete/alter folder/files.
Do I need to use seperate script or way to create / alter folders in the sharepath?
I am setting up a two active instances of MS SQL Server on a clustered box. In the past I have set up using the nomenclature SQLCLUSTERNAMEINSTANCE-NAME such as SQLCLUS1INST1 and SQLCLUS2INST2.
But, this time the client will like it installed such as SQLCLUS1INST1 and SQLCLUS1INST2. I did not think this is possible --- That is I assumed that cluster resource names have to be unique. But, nevertheless I have tried to do so for the last few days, but no luck.
Can someone please let me know if it is indeed possible to have two separate instances in a single cluster.
BTW, I know this is quite possible with non-clustered instances --- where the SQLSERV1INST1 refers to an actual server name, and not a resource name.
I need some advise/help how to deploy a small sql server compact 3.5 database on networkshare where about 8 people have access to it(install de client ) and can modify the database with aprox 3000 records. I'm using visual basic 2008 and created a compact database and filled it with one table of an export of an access database done with data port console. And created a new windows forms application and saved the project. Publish is not the problem but how too set it up...... There is not much info to find on how to get a sql server 3.5 database running on a network share. Who can help ???
I want to use service SIDs for my SQL Service accounts but also want to have the data files on a NetApp filer CIFS share. The 2014 installer prevents installation if CIFS and Service SIDs are used. I tried to install with domain account on CIFS, and then to swap back to Service SIDs afterwards, but couldn't find a way to do it.
I granted the AD Computer account Full Control to the CIFS share, so it should work, but I just can't work it out at the moment.
SQL server 20005 SP2 is install in my WIN XP machine. I implement a SSRS report and try to deliver the report to a share folder in window 2000 server.
I create and set permissions on a shared folder as per the information in http://msdn2.microsoft.com/en-us/library/ms345228.aspx. The account that I use in subscription is local admin account in the target machine.
I have try path \<servername>c$XXX and \<servername>XXX. Both is not ok.
I find following error message in the log file of reporting service.
ReportingServicesService!library!d!04/29/2008-00:03:40:: e ERROR: Throwing Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareProvider+NetworkErrorException: A logon error occurred when attempting to access the file share. The user account or password is not valid., A logon error occurred when attempting to access the file share. The user account or password is not valid.; Info: Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareProvider+NetworkErrorException: A logon error occurred when attempting to access the file share. The user account or password is not valid. ---> System.Runtime.InteropServices.COMException (0x8007052E): Logon failure: unknown user name or bad password. (Exception from HRESULT: 0x8007052E) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at RSRemoteRpcClient.RemoteLogon.GetRemoteImpToken(String pRPCEndpointName, Int32 type, Guid dataSourceId, String pUserName, String pDomain, String pPassword) at Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareProvider.GetImpersonationToken(String userName, String domain, String userPwd) --- End of inner exception stack trace ---
If I try to deliver same report to a share folder in WIN XP in the same way. It is ok.
I have Full database backup upto previous day and transaction logfile of Today transaction. my database has crashed. I have restored previous day's Full backup. I have faced difficulty to restore today's transaction from today's transaction log. What are the steps to restore full database back and one day's transaction log file. Note: there is no differential database backup and transaction backup.
I have a Windows Server 2012 R2 2 node cluster with SQL Server 2014 FCI installed. Data files are on a separate Windows Server 2012 R2 file server. Data files share has been permissioned to the SQL Server service and SQL Server Agent service accounts as Full Control. NTFS Permissions are Full Control.
When I try to attach a database CREATE DATABASE AdventureWorksDW2012 ON (FILENAME = 'apricotmssql_VIOLETMSSQL12.MSSQLSERVERMSSQLDATAAdventureWorksDW2012_Data.mdf') FOR ATTACHI get this error: Msg 5120, Level 16, State 101, Line 4 Unable to open the physical file "apricotmssql_VIOLETMSSQL12.MSSQLSERVERMSSQLDATAAdventureWorksDW2012_Data.mdf". Operating system error 5: "5(Access is denied.)".
If I log into the file server (called APRICOT) and look at the NTFS permissions they all look good. I have also reapplied the NTFS permissions from the root folder down.
EDIT If I log on to one of the nodes in the cluster as the SQL Server service account and navigate to apricotmssql_VIOLETMSSQL12.MSSQLSERVERMSSQLDATA and copy and paste the data file, it works fine.
EDIT2: If I log on to the file server and Enable Inheritance at the root level, then Replace all child objects with inheritable permission entries from this object, I get this error:
User Account Control settings on all nodes and the file server are set to Never notify
I have just installed MS SQL Server 2005 Express edition along with the SSMSE. I am using windows authentication. When I open SSMSE it connects me to a 'local instance' of the server. From there I right click on Database and select to add a new Database and I get the error above. I think I only need to allow local connections to the engine but I have tried allowing remote conections with all varations of named pipes and TCP/IP. I am running on Windows XP SP2 (home).
We have a Customized share point application with Very minimal data usage and we have used only 5 to 6 lists and libraries only in the share point.
Configuration is
Clients -- fire wall --- Load Balancer ---- WF1 and WF2 --- SQL DB
ROUTING IS VIA FIRE WALL.
SUDDENLY THE SITE GOT DEAD SLOW AND UNABLE TO TRACE THE PROBLEM AS EVERY THING LOOKS FINE.
Checked with the firewall Team and they stated its fine from their end & even we have verified the counters, CPU, Memory & Page life expectancy, buffer counters all looks good and even we do not have huge data in the database. We have only 50 concurrent users are working...
I'm getting this when executing the code below. Going from W2K/SQL2k SP4 to XP/SQL2k SP4 over a dial-up link.
If I take away the begin tran and commit it works, but of course, if one statement fails I want a rollback. I'm executing this from a Delphi app, but I get the same from Qry Analyser.
I've tried both with and without the Set XACT . . ., and also tried with Set Implicit_Transactions off.
set XACT_ABORT ON Begin distributed Tran update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.TRANSACTIONMAIN set REPFLAG = 0 where REPFLAG = 1 update TSADMIN.TRANSACTIONMAIN set REPFLAG = 0 where REPFLAG = 1 and DONE = 1 update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.WBENTRY set REPFLAG = 0 where REPFLAG = 1 update TSADMIN.WBENTRY set REPFLAG = 0 where REPFLAG = 1 update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.FIXED set REPFLAG = 0 where REPFLAG = 1 update TSADMIN.FIXED set REPFLAG = 0 where REPFLAG = 1 update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.ALTCHARGE set REPFLAG = 0 where REPFLAG = 1 update TSADMIN.ALTCHARGE set REPFLAG = 0 where REPFLAG = 1 update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.TSAUDIT set REPFLAG = 0 where REPFLAG = 1 update TSADMIN.TSAUDIT set REPFLAG = 0 where REPFLAG = 1 COMMIT TRAN
It's got me stumped, so any ideas gratefully received.Thx
I have a design a SSIS Package for ETL Process. In my package i have to read the data from the tables and then insert into the another table of same structure.
for reading the data i have write the Dynamic TSQL based on some condition and based on that it is using 25 different function to populate the data into different 25 column. Tsql returning correct data and is working fine in Enterprise manager. But in my SSIS package it show me time out ERROR.
I have increase and decrease the time to catch the error but it is still there i have tried to set 0 for commandout Properties.
if i'm using the 0 for commandtime out then i'm getting the Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.
and
Failed to open a fastload rowset for "[dbo].[P@@#$%$%%%]". Check that the object exists in the database.
I am getting this error :Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.OleDb.OleDbException: Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.have anybody idea?!
i have a sequence container in my my sequence container i have a script task for drop the existing tables. This seq. container connected to another seq. container. all these are in for each loop container when i run the package it's work fine for 1st looop but it gives me error for second execution.
Message is like this:
Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.
i am getting this error "Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.".
my transations have been done using LINKED SERVER. when i manually call the store procedure from Server 1 it works but when i call it through Service broker it dosen't work and gives me this error.
An SSIS package to transfer data from a DB instance on SQL Server 2005 to SQL Server 2000 is extremely slow. The package uses an OLEDB Source to OLEDB Destination for data transfer which is basically one table from sql server 2005 to sql server 2000. The job takes 5 minutes to transfer about 400 rows at night when there is very little activity on the server. During the day the job almost always times out.
On SQL Server 200 instances the job ran in minutes in the old 2000 package.
Is there an alternative to this. Tranfer Objects task does not work as there is apparently a defect according to Microsoft. Please let me know if there is any other option other than using a Execute 2000 package task or using an ActiveX Script to read records from one source and to insert them into the destination source, which I am not certain how long it might take and how viable will that be?
I am using WIN XP, SQL Server 2000 database and vb, asp application running on MTS. I have a transaction where it will process 500 items and write to the tables in database. When opening the connection I tried to cache the connection and made use of it when ever the code is called. Here is how I did it.
Public Function GetCachedADOConn(ByVal eConnect As DBConnectVar, Optional ByVal blnUseShapeRS As Boolean = False) _ As ADODB.Connection
Dim cnnADO As ADODB.Connection
On Error GoTo EH
If m_CachedConnection Is Nothing Then Set cnnADO = New ADODB.Connection ' Check if we need to load the cache first... If Len(mstrConnect(eConnect - 1)) = 0 Then Call CacheOneConnectionSet(eConnect)
' Now just return the cached data With cnnADO If blnUseShapeRS Then .ConnectionString = "Provider=MSDataShape;Data " & mstrConnect(eConnect - 1) Else .ConnectionString = mstrConnect(eConnect - 1) End If
My site works fine in VWD2008 express, but I get this error when I try to use it on my live website. An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. According to this article: http://support.microsoft.com/kb/914277 I am supposed to:
1. Click Start, point to Programs, point to Microsoft SQL Server 2005, point to Configuration Tools, and then click SQL Server Surface Area Configuration. Ok, there is no such program in this folder. The only thing in there is "SQL Server Error and Usage Reporting"... The other thing I am greatly concerned with is this: All is want is for my webpages to be able to access my database for user authentication. I DO NOT want to grant the internet rights to remote connect to my database.
I can connect to a remote SQL server with ADO.NET but not with OLEDB.
I get
------------------------------
Test connection failed because of an error in initializing provider. Login timeout expired An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. Named Pipes Provider: Could not open a connection to SQL Server [233].
------------------------------
Through the SQL Server Connection Manager, if I disable Named Pipes and enable TCP/IP, I get for OLEDB connection:
------------------------------
Test connection failed because of an error in initializing provider. Unable to complete login process due to delay in opening server connection
------------------------------ with Connection and General Timeout are both 0. Appreciate the help