[ priki @ 23.11.2006. 12:07 ] @
naime, radi se o sledecem
imam server A na koji sam linkovao server B preko sp_addlinkedserver ...

na serveru A na tabeli imam jednu proceduru koja treba da unese isti slog u server B

set xact_abort on
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
SET REMOTE_PROC_TRANSACTIONS OFF

BEGIN DISTRIBUTED TRAN pepe
insert into openquery(MIRAN, 'select * from proba_linked.dbo.test where 1=0')
values(5, 'proba 1')
COMMIT TRAN pepe

set xact_abort oFF
SET ANSI_NULLS OFF
SET ANSI_WARNINGS OFF
SET REMOTE_PROC_TRANSACTIONS ON

kad se ovi upiti rucno kucaju u QA sve radi, bez problema
medjutim
kad se ovo stavi u proceduru i kad se ta procedura pokrene iz QA,
procedura pocne da radi i nikad ne zavrsi
ne daje rezultate, ne daje errore, samo executing ........
moram da stopiram MS DTC da bi se prekinulo izvrsavanje

ima li neko ideju oko ovoga
Hvala
Srdjan





[ logic_rabbit @ 23.11.2006. 13:25 ] @
Ideja je sledeca:
proveri koji Service Pack imas instaliran.Kod service packa 4 ima slicnih problema.Pozzz.
[ priki @ 23.11.2006. 13:46 ] @
testiram ga na dva racunara
server je win 2000 sa sp4
na njemu je MS SQL 2000 SP4

na drugom racunaru je Win XP sp2 i MS SQL 2000 SP2
na trecem racunaru je Win XP sp2 i MS SQL 2000 SP4

isto se desava, ceo dan citam resenja na grupama i sta god da primenim
uvek isto

?!
[ DarkMan @ 23.11.2006. 20:40 ] @
Jesi li aktivirao Remote Procedure Call za linkovan server?
Ako nisi RPC mozes aktivirati iz Enterprise Manager-a ili sledecom skriptom:
Code:

exec sp_serveroption N'<ime linkovanog servera>', N'rpc', N'true' 
exec sp_serveroption N'<ime linkovanog servera>', N'rpc out', N'true' 
[ logic_rabbit @ 24.11.2006. 06:58 ] @
Ja mislim da treba da probas MSSQL SP3, i da na serveru sa ovim service packom izvrisis proceduru.
[ priki @ 24.11.2006. 07:26 ] @
jesam aktivirao sam upravo i isto se desava, ne znam vise gde da gledam,
DTC su aktivirani na svim mašinama
na mreži je domen, ali nema nikakvih posebnih permission-a
svi portovi unutar mreže su otvoreni

šta pokušavam, pa ako se na jednoj mašini u nekoj tabeli unese slog
da isti taj slog ode i na drugi server u identičnu bazu i tabelu
(collation je isti i na bazi i na tabeli)

jedino, jel moze biti problem ako mi je taj server virtual masina a
racunari su fizicki pristuni


evo i skripte
hvala
Srdjan
****************************************************

use master
go

IF EXISTS(SELECT * FROM master.dbo.sysservers WHERE srvname ='MIRAN')
EXEC sp_dropserver 'MIRAN','droplogins'

exec sp_addlinkedserver @server = N'MIRAN',
@srvproduct = N'',
@provider = N'SQLOLEDB',
@catalog = N'proba_linked'
go

exec sp_addlinkedsrvlogin 'MIRAN','false', 'sa', 'sa', 'passwdw'
go

exec sp_serveroption N'MIRAN', N'rpc', N'true'
go
exec sp_serveroption N'MIRAN', N'rpc out', N'true'
go


use proba_linked
go

set ansi_nulls off
GO
set ansi_warnings off
go

if exists(select * from sysobjects WHERE name='test' and type='U ')
drop table test
GO

create table test (
sifra int NOT NULL PRIMARY KEY,
naziv nvarchar(50))
go

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'TEST_INSERT' AND type = 'TR')
drop trigger TEST_INSERT
GO

SET XACT_ABORT ON
go
SET IMPLICIT_TRANSACTIONS OFF
go
SET REMOTE_PROC_TRANSACTIONS OFF
go
SET ANSI_NULLS ON
go
SET ANSI_WARNINGS ON
go
CREATE TRIGGER [TEST_INSERT] ON [dbo].[test]
FOR INSERT
AS
SET XACT_ABORT ON

BEGIN DISTRIBUTED TRAN pepe

INSERT INTO OPENQUERY(MIRAN, 'select sifra, naziv from proba_linked.dbo.test where 1=0')
SELECT sifra, naziv
FROM inserted

COMMIT TRAN pepe

SET implicit_transactions on
SET REMOTE_PROC_TRANSACTIONS ON
GO

INSERT INTO TEST(sifra,naziv)
values(1,'prvi unos')
GO


[ priki @ 24.11.2006. 07:37 ] @
a najsmesnije je to sto mi iz Query Analyzer-a taj OPENQUERY radi
[ priki @ 24.11.2006. 07:43 ] @
pardon

ovako linkujem server

EXEC sp_addlinkedserver
@server='MIRAN',
@srvproduct=N'SQL Server'
GO
[ DarkMan @ 24.11.2006. 16:50 ] @
Citat:
priki: pardon

ovako linkujem server

EXEC sp_addlinkedserver
@server='MIRAN',
@srvproduct=N'SQL Server'
GO


Fali ti @datasrc = '<naziv drugog racunara>' inace se linkujes ponovo na isti server.
[ priki @ 25.11.2006. 07:47 ] @
čudna životinjka je ovaj MS SQL
pa evo, postavio sam ovako

exec sp_addlinkedserver @server = N'MIRAN',
@srvproduct = N'',
@provider = N'SQLOLEDB',
@catalog = N'proba_linked'
go


pa smo dobili napredak, sad javi ovu poruku:

Server: Msg 7391, Level 16, State 1, Procedure TEST_INSERT, Line 8
The 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 the specified transaction coordinator. ]
[ priki @ 25.11.2006. 09:28 ] @
kao i M$ odgovor, za ovo ću morati uposliti našeg administratora

http://msdn2.microsoft.com/en-us/library/ms686976.aspx