Hi -
We have two SQL 2000 Servers. We have the linked server setup and we
can perform updates and inserts between the databases. But when we add
a trigger and insert something into a table, the database hangs. There
are NO processes blocking or being block in either database. This ONLY
occurs when we have one OS as Windows 2000 Server and the other OS as
Windows 2003 Server. This problem does not occur when both servers are
Windows 2000. Has anyone ran into anything similar to this???
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
We want to read data from a DB2 view so we set up a linked server in SQL7 (ODBC via Neon's Shadow Direct) but when we issue the following type of query from Query analyzer: select * from openrowset(my_db2link,'select * from test.myview where mycol = ''value''') it just hangs, and we can't kill the process (the Enterprise manager 'KIll Process' button has no effect!) - the only way we can get rid of these queries seems to be to stop/restart SQL Server When we look at current activity in Enterprise manager the process seems to be waiting for a resource (either MISCELLANEOUS or PAGEIOLATCH) The query works OK if I run it on the server using Shadow direct, so the error must be between SQL Server and Shadow direct Has anyone seen this error before? Thanks in advance, John
I have a procedure on SQLSERVER DB1 where i insert into few tables on SQL SERVER DB1 and delete a table on remote server SQL SERVER DB2 via linked server. Unfortunately, the delete is taking for ever. Procedure never completes. Data in that table is close to 500 records.
I have delete statement like Exec(delete linkserv.onedb.stg.tab1)
Later i modified the delete query as below but no luck
DELETE OPENQUERY(linkserv, 'Select * from onedb.stg.tab1')
What can i do here to get this fixed? Please see linked server properties below Enable promotion of distributed transactions for RPC:True Use Remote Collation: True All other properties : False
How can i debug my SQL Server procedure and find the issue. I came to know that i do not have permission to use debug feature on SSMS.
We have developed a solution that sends data from SQL Server to an Oracle server as the result of a stored procedure called by a job that runs every minute. While this development worked fine in our test environment, after moving it to production it ran successfully the first minute, but the second minute the stored procedure hung, and the process could not be killed. In order to stop the process I had to stop both the SQL Agent and the MSDTC services.
Our SQL Server box: SQL Server 2000 Standard Edition SP4 Windows 2003 Server R2 SP1
To setup the SQL box, I did the following: 1) Install Oracle Client Tools version 10.2.0.1 2) Restart Server 3) Modify the registry as follows: [HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTCMTxOCI] "OracleXaLib"="oraclient10.dll" "OracleSqlLib"="orasql10.dll" "OracleOciLib"="oci.dll" 4) Modified the PATH variable so that all references to SQL Server appear in front of Oracle path references 5) Added the linked server via sp_addlinkedserver '<tns name>','Oracle','MSDAORA','<tns name>' 6) Added linked server logins via sp_addlinkedsrvlogin '<tns name>','False','<SQL user>','<Oracle User name>','<password on oracle>' 7) Changed the registry for MSDTC to match this:
8) Stopped and restarted services in the following order: 1) MSDTC Stop 2) SQL Server Stop 3) MSDTC Start 4) SQL Server Start
The stored procedure: In a single transaction, the stored procedure compares a production table against a logging table. If a record exists in the production table that is not in the logging table, a record is inserted into logging table, and a record sent to Oracle via an INSERT INTO OPENQUERY('INSTANCE','SELECT Column1, column2, column3,... FROM SCHEMA.TABLE') SELECT column1,column2,column FROM SQLTable
This stored procedure has worked just fine for us in test, to either the test or production Oracle boxes, but it now fails, and hangs, in production to either the test or production Oracle boxes.
Additionally, I can run the following query via Query Analyzer from our test box to both the test Oracle and production Oracle and it runs successfully (this is NOT used in our stored procedure code, but is presented here as an indication that I think there is something wrong with the settings on our production SQL box):
SELECT * FROM OPENQUERY('INSTANCE','SELECT * FROM SCHEMA.TABLE')
When I run this same query via Query Analyzer on our Production SQL box, to either the test Oracle or production Oracle, it hangs, and I have to kill the process, and restart the MSDTC service. Other queries that hang are: SELECT * FROM SERVER..SCHEMA.TABLE
Additionally, I noticed that when I used this method to kill the process I would see errors like the following in the Application Event Log on the SQL box:
The XA Transaction Manager attempted to perform recovery with the XA resource manager. The XA resource manager reported that recovery was unsuccessful. DSN = MTxOCI.Dll.
Since I figured this was an aborted transaction still residing in the MSDTC log file, I would stop the MSDTC service, delete the MSDTC log file, reset the MSDTC log, and then restart the MSDTC service in order to prevent this error from occurring.
Not ALL queries from the production SQL box to production and test Oracle boxes fail. I can get results returned for this query:
SELECT COLUMN1, COLUMN2 FROM SERVER..SCHEMA.TABLE
I've been scouring the internet for about a week now, and I've run out of ideas on what to check on the production SQL box. Any suggestions would be greatly appreciated.
Hi,The SQL server 2000 Server hangs some times. It is not periodic. It isnot specific in any queries, which are taking more time to execute.Because, it is occurring for different types of applications on thesame server on different machines. For the same applications when wehad the SQL Server 7.0 we didn't have any problem.O/S: Windows 2000 advanced serverServer: Dell power edge 2600 4 way server with 2 GB RAMDB: SQL 2000 - Enterprise edition (Normal default installation)- Noservice packs.Are there any server settings to be done...?Thanks in advance..RegardsSeni
I am working in Powerbuilder and SQL Server 2000. Within the application I dynamically Drop then recreate a view named view_selection_list. When another user accesses any screen using view_selection_list the screen will hang on the statement "If Exists (SELECT name FROM sysobjects WHERE name = 'view_selection_list' AND type = 'V') DROP VIEW view_selection_list". I also went directly onto the database ran select * from view_selection_list from Query Analyzer. It hangs when the original user creating the view is still active. I know that the issue is locking. I don't know how to fix it.
For example ; String ls_sql ls_sql="If Exists ( SELECT name FROM sysobjects WHERE name = 'view_selection_list' AND type = 'V') DROP VIEW view_selection_list " Execute Immediate :ls_sql;
ls_sql="Create View view_selection_list as " Case 'State' ls_sql+=" Select distinct proj_id,'State - '+proj_state title from project where proj_state='"+is_data+"'"
Case 'Project' ls_sql+=" Select distinct proj_id,'Project - '+proj_nam title from project where proj_id='"+is_data+"'"
Case 'All Active Projects' ls_sql+=" Select proj_id,'Project -' +proj_nam title from project where proj_status = 4 and signed_acq_agmt = 'Y' "
End Choose
Execute Immediate :ls_sql;
The SQL Server connection in the application is: SQLCA.DBMS = "OLE DB" SQLCA.ServerName="acq" SQLCA.LogPass ="*******" SQLCA.LogId = "acq" SQLCA.Lock = "RU" SQLCA.AutoCommit = False SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='FSRFIN103'"
I upgraded from SQL server 7.0 to 2000 not long ago, I'm running 2000 SP3, WIN 2K. Things worked fine for several weeks after the upgrade but now I'm experiencing Enterprise Manager hang in the case of one database only, when I try to view the design of a VIEW. I can open the VIEW fine and look at the results, EM only hangs when I try to view design.
I have checked another of the active DBs on my server and it is fine, no EM hang.
Any ideas how to troubleshoot this?
thx
**I just realized that I'm running SP3, not SP4 (corrected above). Correct me if I'm wrong but does MS have a fix for this problem in SP4? I seem to recall a similar issue in the KB.
I am trying to execute a stored procedure on SQL server 2000 Developer edition through ODBC. I am using a VC++ client for the same. The stored procedure has 51 parameters. The issue is that the response on method SQLExecDirect is not consistent. At times it will return success or failure based on parameter values, otherwise it just hangs up. The code snippet is like -
It appears to be some locking issue but I am the only user for the database. This code works perfectly fine for other stored procedures. I have tested the parameters on SQL analyzer store procedure execution utility.
I am trying to run xp_cmdshell from the Query Analyzer using SQLServer 2000 running on Windows 98.It seems like it should be simple - I'm typingxp_cmdshell 'dir *.exe'in the Query Analyzer in the Master db. I'm logged in as sa.The timer starts running and never stops. No error message.Can anyone PLEASE help me with this? Any suggestions would beappreciated. Are SQL Server 2000 extended stored procedures notsupported in Windows 98? I've tried searching the Knowledge Base butcan't find anything.Thanks!
CREATE TRIGGERReportRequestINSERT_trg ONReportRequest_tbl FOR INSERTAS
Can an insert trigger like this successfully insert into a linked server's table? Replication is NOT an option. And I only need to do it in very limited circumstances anyway.
INSERT INTO [172.22.202.180].MultiVendor.dbo.ReportRequest_tbl ( ControlCustomerNumber, UserID, ReportName, RequestedDate ) SELECT ins.ControlCustomerNumber, ins.UserID, ins.ReportName, ins.RequestedDate FROM Inserted ins
I have a trigger on a table which when I do a direct update to throught QA seems to work fine. When a user developed application updates the record it locks their screen and record. I can't see where it could be causing it, but I am pasting it below. Any thoughts/comments greatly appreciated
CREATE TRIGGER tr_Patient_Updt2 ON patient_ FOR UPDATE AS if update(df_last_cholestero) begin declare @tstyears int declare @tdate datetime declare @sdate datetime declare @bdate datetime declare @ptage int declare @actid varchar(12)
select @bdate = convert(datetime,df_last_cholestero,101), @actid = account_id from inserted select @ptage = dbo.GetAge(convert(datetime,patient.Date_Of_Birth, 101), GETDATE()) from patient where patient.account_id = @actid select @sdate = convert(datetime,patient.Date_Of_Birth,101) from patient where patient.account_id = @actid select @tstyears = datediff(month,@bdate,getdate())
if @ptage between 18 and 65 begin transaction begin
if @tstyears < 12 begin set @ptage = @ptage + 5 set @sdate = DATEADD(year, @ptage, @sdate) update patient_ set df_next_cholestero = convert(char(08),@sdate,112) where patient_.account_id = @actid end
else if @tstyears >= 12 and @tstyears < 24 begin set @ptage = @ptage + 4 set @sdate = DATEADD(year, @ptage, @sdate) update patient_ set df_next_cholestero = convert(char(08),@sdate,112) where patient_.account_id = @actid end
else if @tstyears >= 24 and @tstyears < 36 begin set @ptage = @ptage + 3 set @sdate = DATEADD(year, @ptage, @sdate) update patient_ set df_next_cholestero = convert(char(08),@sdate,112) where patient_.account_id = @actid end
else if @tstyears >= 36 and @tstyears < 48 begin set @ptage = @ptage + 2 set @sdate = DATEADD(year, @ptage, @sdate) update patient_ set df_next_cholestero = convert(char(08),@sdate,112) where patient_.account_id = @actid end
if @tstyears > 48 begin set @ptage = @ptage + 1 set @sdate = DATEADD(year, @ptage, @sdate) update patient_ set df_next_cholestero = convert(char(08),@sdate,112) where patient_.account_id = @actid end
I have 2 database servers ( 2 hardware-servers : A and B ) and I ve written a trigger for update in server A to execute insert statement in server B through linked servers, is there other way to achieve this without linked servers?? All using T-SQL.
i have set up a linked server. i can query the linked server in query analyzer and also do update/delete. but when i try to run the same query for linked server through insert trigger, i get following error: [OLE/DB provider returned message. [Microsoft][ODBC Sql Server Driver]Distributed transaction error].btw, i am using Sql server 2000, SP4. main server is windows 2003 server and linked server is windows xp pro.any suggestions will be appreciated.
I'm writing an insert trigger in one SQL Server database that is supposed to insert another record into a linked SQL Server database. I have the linked server set up and have been using it for a few weeks in queries and stored procedure with no problem. Now that I'm trying to use it within a trigger and it just bombs.
I'm getting the following message in one of my logs and I don't know what it means... "Failed to obtain TransactionDispenserInterface: XACT_E_TMNOTAVAILABLE". I've googled around, but can't really find anything. Any help would be appreciated.
Used linked-server during logon trigger? is it possible? i know we can access tables, SPs, etc with in that server, if i want to check something in other server during logon trigger, can i do it?
Hei,We have 2 MS SQL SERVER 2000 installed on 2 different servers (2 separatedmachines).I am triing to connect them så that when one row is added to the table inthe database in main server - then the same row is added to the same tablein the second server database.I made the insert trigger on the table in the first server ( the secondserver is added as a linked server):-----------------------------------------------------------------------------------------create trigger ti_myTabe1 on myTable1 for insert asbegindeclare ........BEGINinsert into server2.myDatabase2.owner.myTable2(column1, column2, column3)SELECT column1, column2, column3FROM inserted insEND......end-----------------------------------------------------------------------------------------When I run the statement in "SQL Query Analyzer"on the first server:insert into Table1 values(va1,val2,val3)then error is coming:Server: Msg 7391, Level 16, State 1, Procedure ti_myTabe1 , Line 19The operation could not be performed because the OLE DB provider 'SQLOLEDB'was unable to begin a distributed transaction.[OLE/DB provider returned message: New transaction cannot enlist in thespecified transaction coordinator. ]OLE DB error trace [OLE/DB Provider 'SQLOLEDB'ITransactionJoin::JoinTransaction returned 0x8004d00a].The straing thing is: if I run the statement in "SQL Query Analyzer"on thefirst server:insert into server2.myDatabase2.owner.myTable2 values(va1,val2,val3)then it works!But not inside the trigger!!! - What I am doing wrong ?Any idea is greatly appeciated.
Hi there,I'm pretty new to SQL and am having some porblems with a linked server.I have a table on a SQL server which stores employee information.I also have a view on a linked server which stores the same information.What I would like to happen is, whenever the view changes on the linkedserver I want the information to be changed in the table on my server.I've been trying to write a trigger to do this, but have had noluck so far.Can anyone help me?ThanksSimon--Posted via http://dbforums.com
What is the syntax for creating a update trigger and passing the values which were updated to a stored procedure on a linked server?? Specifically need syntax for updated value, as well as the syntax for executing the stored proc on the linked server.
Msg 7399, Level 16, State 1, Procedure tr_cpD, Line 14
The OLE DB provider "SQLNCLI" for linked server "S2" reported an error. The provider did not give any information about the error.
Msg 7312, Level 16, State 1, Procedure tr_cpD, Line 14
Invalid use of schema or catalog for OLE DB provider "SQLNCLI" for linked server "S2". A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog or schema.
We are experiencing a problem with Sql Server 2000 linking to anAccess 97 file. We have two machines that link to this .mdb file, andwe recently upgraded one to newer hardware, SP3a, MDAC 2.8, etc. Thelink on this upgraded machine no longer works, giving this message:Server: Msg 7399, Level 16, State 1, Line 1OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.[OLE/DB provider returned message: Cannot open a database created witha previous version of your application.]OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'IDBInitialize::Initialize returned 0x80004005: ].The link on the older machine still works. We decided to tryconverting a copy of the file to Access 2000 to see if the newerpatches/drivers/whatever no longer supported 97. We set up a link onboth machines to this file, and they both work. However, on theupgraded machine, the following error is receievedServer: Msg 7399, Level 16, State 1, Line 1OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.[OLE/DB provider returned message: System resource exceeded.]OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'ICommandText::Execute returned 0x80004005: ].when making 1-3 connections to the the linked server, while the oldermachine supports at least 7 simultaneous queries connecting to thelinked server and still hasn't produced that error.Does anyone have any idea if there is a known issue with linking toAccess 97/2000 files under MDAC 2.8, Jet 4.0, etc? Any light anyonecan shine on this subject would be greatly appreciated.
I've done some searching, asking of friends, and searching every log file and event file I can think of. So now I'm coming here.
Recently I moved some of our databases from an NT4 box running SQL 7 to an Advanced 2000 box running SQL 2000. The web server is still on an NT4 box. It seems that about three times a day or so ASP type files will hang on the webserver. This server hosts different sites and all ASP type files will stop even if some of them hit the old SQL7 server.
Right now I moved the web server back to looking at the SQL 7 machine and things are going fine.
Can anyone offer me a direction to start looking? Why is it working fine to the old stuff but not the new stuff? Is there an issue with NT4 with its IIS trying to talk to an Advanced 2000 with its SQL2000?
I am trying to setup up a linked server using 'sp_addlinkedserver'. The host server is a SQL 2000 and the remote server is SQL 6.5. Both the servers are on the same domain.
When the system stored procedure is run, enterprise manager shows the name of the linked server but there are no tables.
I get error 'SQL Server does not exist or access denied' when trying to run query against a database on the remote server.
I hope someone out there can help, cos i really need it. We have a 2 node cluster + SAN that will be used as our SQL 2000 servers. We have setup the cluster ok, and have tested failover with no problems. However, when we try to install SQL 2000, it just hangs. I have copied the enterprise cd to the local drive, and am installing from there. We run the setup.bat, create the Virtual Server, and assign an ip address. At this point, it just hangs. Upon checking the SQLSTP.LOG file, this is the last entry in the log: Begin Action : DialogShowSdDiskGroups
I have found the Microsoft Technet Article 293788, which gives me a possible soloution, but we dont have any Resource Names or Groups that have the same name.
Can someone PLEASE give me an answer on how to fix this, or at least point me in the right direction.
I'm working with SQL Server 2000 installed in Windows 2000. When i tried to add the 'servername' as a linked server , i got the following message:
" Error: 15038. The Server 'servername' already exists."
When i execute "sp_linkedservers" , i could see the name "servername" in the list. But before doing this i had Restored the "MSDB" database on this server. Should i use "sp_droplinkedservers" and add them again.
I am trying to Query text file into SQL Server 2005 using linked server. In SQL Server 2000 here is what I have. Linked server configured to use following parameters Product Name : Customer_file Provider Name: Customer_File ( System DSN)
Hello, I have been searching the archives for information on problems that occur with creating a linked server to SQL Server 2000 from SQL Server 2005 x64, but the problem I am having seems to be slightly different.
I was able to create the linked server from the 2005 server this way;
I receive 'Command(s) completed successfully' for both. When I attempt to run either of the following queries from a connection to the 2005 server in Management Studio;
select top 100 * from 2kServer.database.dbo.table select * from Openquery(2kServer,'select top 10 * from database.dbo.table')
I get the following error
OLE DB provider "SQLNCLI" for linked server "2kServer" returned message "Communication link failure". Msg 10054, Level 16, State 1, Line 0 TCP Provider: An existing connection was forcibly closed by the remote host. Msg 18456, Level 14, State 1, Line 0 Login failed for user 'domaincdun2'.
I've seen a couple of ideas on this. One states the following; *************************************** When running 4 part reference query like this: select * from sql2000.mybase.dbo.mytable
SQL Server 2005 x64 runs the following query on remote SQL2000 server: exec [mybase]..sp_tables_info_rowset_64 N'mytable', N'dbo', NULL
Unfortunately there is no such a proc on SQL2k. However, sp_tables_info_rowset exists and does the same thing. The solution is to create wrapper on master database like this:
create procedure sp_tables_info_rowset_64 @table_name sysname, @table_schema sysname = null, @table_type nvarchar(255) = null as declare @Result int set @Result = 0 exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type
And then everything works fine. If you don't want to create "Microsoft like" objects on master database, use openquery instead of 4 part reference. ************************************** I put this proc on the 2kServer and tried again, but I got the same error. I've also seen this:
I went into the Sql Server Configuration Manager, Sql Native Client Configuration -> Protocols and disabled Shared Memory and made the TCP/IP protocol #1 in order. Then just restarted the Sql Service and it all started working!
I don't have access to the server to do this, but I wonder if it would solve the problem. I am a sys admin on both servers. The servers are in two different domains. Could this be a firewall issue?
Can anyone tell me if there's a recommended way to link from a SQL 2000 SP4 DB through a firewall to SQL 2005? I have tried with SQLOLEDB but this uses NETBios which is not secure. Or is there a way to tell it not to use NETBios? SET @provdetail = 'DRIVER={SQL SERVER};SERVER=<IP address>;Trusted_connection=Yes' EXEC Master..sp_addlinkedserver @server = ,'<IP address>', @srvproduct = '', @provider = 'SQLOLEDB', @provstr = @provdetail , @catalog = 'TestDB', @datasrc ='<IP address>DB1'
I have 2 linked servers on my dev 2005 instance (sp1-win 2003). My 2005 instance shares the physical server with a 2000 instance. This linked server works fine. The second linked server is on a separate server running sql 2000 sp3. I cannot connect to this server at all. I can connect the other way -- from the 2000 to the 2005. I have tried all kinds of combinations of security and options but nothing works. The only resolutions I have found referenced installing Management Studio on the 2000 server or creating an ODBC connection from the 2005 instance. Any ideas???
Here is the error I get:
OLE DB provider "SQLNCLI" for linked server "ALLFLDB6" returned message "Login timeout expired".
OLE DB provider "SQLNCLI" for linked server "ALLFLDB6" returned message "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.".
Msg 10061, Level 16, State 1, Line 0
TCP Provider: No connection could be made because the target machine actively refused it.
I€™m trying to resolve an issue and wonder if anybody has ever run into and possibly had a resolution for.
I wrote a custom conflict resolvers to manage data at the column level. What I needed to do to achieve this was to use a remote query to the mobile subscriber that raised the conflict. I€™m trying to put in a rule that if there are any issues connecting to the subscriber I want to use the default conflict resolver and move forward. Here is my issue, it seems there is no way I can test a connection without getting a critical error that I can€™t seem to trap. Example
I was trying to do
Select * from [linkedserver].[database].[dbo].[incident] If @@error <> 0 use default conflict resolver
What I did to test this was I changed the linked server authentication to an incorrect password to get the following error that there is no way to trap.
Server: Msg 18456, Level 14, State 1, Line 1 Login failed for user 'sa'.
Does anybody have an idea how to trap this? In SQL 2005 there is a stored procedure
sp_testlinkedserver to handle this but I need this to work in SQL 2000 also, it seems many people have ran into this issue on the web and I tried to get the one where sqldmo is used to test connection but that will not work since I wont always know the password. I would like to just check the @@error value after trying to run a remote query.