Quantcast
Channel: SQL Server Replication forum
Viewing all articles
Browse latest Browse all 4054

Why is Replication Throwing Error 3930 When Insert, and Update Triggers are added to the Subscriber Tables? Help Please!

$
0
0

Message Message:

2012-10-22 15:18:07.143 Copyright (c) 2008 Microsoft Corporation
2012-10-22 15:18:07.143 Microsoft SQL Server Replication Agent: distrib
2012-10-22 15:18:07.143 
2012-10-22 15:18:07.143 The timestamps prepended to the output lines are expressed in terms of UTC time.
2012-10-22 15:18:07.143 User-specified agent parameter values:
-Subscriber WAUSQL42\WAUSQL42
-SubscriberDB PM_Warehouse
-Publisher WAUSQL42\WAUSQL42
-Distributor WAUSQL42\WAUSQL42
-DistributorSecurityMode 1
-Publication pm_warehouse_publication
-PublisherDB Oracle_Replication
-Continuous
-XJOBID 0x471EF961AB4A1E4F88CB0C4577F22CB7
-XJOBNAME WAUSQL42\WAUSQL42-Oracle_Replication-pm_warehouse_publicat-WAUSQL42\WAUSQL42-3
-XSTEPID 2
-XSUBSYSTEM Distribution
-XSERVER WAUSQL42\WAUSQL42
-XCMDLINE 0
-XCancelEventHandle 0000000000000900
-XParentProcessHandle 0000000000000B54
2012-10-22 15:18:07.143 Startup Delay: 3244 (msecs)
2012-10-22 15:18:10.393 Connecting to Distributor 'WAUSQL42\WAUSQL42'
2012-10-22 15:18:10.456 Parameter values obtained from agent profile:
-bcpbatchsize 2147473647
-commitbatchsize 100
-commitbatchthreshold 1000
-historyverboselevel 1
-keepalivemessageinterval 300
-logintimeout 15
-maxbcpthreads 1
-maxdeliveredtransactions 0
-pollinginterval 5000
-querytimeout 1800
-skiperrors 
-transactionsperhistory 100
2012-10-22 15:18:10.456 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:18:10.549 Initializing
2012-10-22 15:18:10.690 
42000 The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction. 3930
2012-10-22 15:18:10.690 
42000 Uncommittable transaction is detected at the end of the batch. The transaction is rolled back. 3998
2012-10-22 15:19:32.410 Disconnecting from Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:19:32.410 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:19:32.426 Error executing a batch of commands. Retrying individual commands.
2012-10-22 15:20:56.256 Disconnecting from Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:20:56.256 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:20:56.256 Error executing a batch of commands. Retrying individual commands.
2012-10-22 15:22:33.007 Disconnecting from Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:22:33.007 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:22:33.007 Error executing a batch of commands. Retrying individual commands.
2012-10-22 15:24:11.338 Disconnecting from Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:24:11.338 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:24:11.338 Error executing a batch of commands. Retrying individual commands.
2012-10-22 15:26:07.887 Disconnecting from Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:26:07.887 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:26:07.902 Error executing a batch of commands. Retrying individual commands.
2012-10-22 15:28:12.983 Disconnecting from Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:28:12.983 Connecting to Subscriber 'WAUSQL42\WAUSQL42'
2012-10-22 15:28:12.998 Error executing a batch of commands. Retrying individual commands.
2012-10-22 15:29:32.359 Agent message code 3998. Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.
2012-10-22 15:29:32.391 Category:COMMAND
Source:  Failed Command
Number:  
Message: if @@trancount > 0 rollback tran
2012-10-22 15:29:32.391 Category:NULL
Source:  Microsoft SQL Server Native Client 10.0
Number:  3998
Message: Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.

Sample Insert and Update Triggers

ALTER TRIGGER [dbo].[TRG_SHIP_WAVE_PARM_Insert] 
ON [dbo].[SHIP_WAVE_PARM]
AFTER INSERT
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

DECLARE 
@SHIP_WAVE_PARM_ID decimal(5),
@REC_TYPE nvarchar(8),
@WHSE nvarchar(24),
@SHIP_WAVE_NBR nvarchar(96),
@WAVE_DESC nvarchar(320),
@WAVE_PARM_ID decimal(5),
@PERF_PICKNG_WAVE nvarchar(8),
@PICK_WAVE_NBR nvarchar(96),
@PERF_RTE nvarchar(8),
@PERF_PKT_CONSOL nvarchar(8),
@PERF_PULLDOWN_FROM_PNH nvarchar(8),
@CREATE_DATE_TIME datetime,
@MOD_DATE_TIME datetime,
@USER_ID nvarchar(120),
@STAT_CODE decimal(5),
@PNH_PARM_ID decimal(5),
@RTE_WAVE_PARM_ID decimal(5),
@SQLError_ID int,
@Action_Type char(3) = 'TIN'
 
SET @SQLError_ID = error_number()

--assign inserted values to local variables
SELECT 
@SHIP_WAVE_PARM_ID = i.SHIP_WAVE_PARM_ID,
@REC_TYPE = i.REC_TYPE,
@WHSE = i.WHSE,
@SHIP_WAVE_NBR = i.SHIP_WAVE_NBR,
@WAVE_DESC = i.WAVE_DESC,
@WAVE_PARM_ID = i.WAVE_PARM_ID,
@PERF_PICKNG_WAVE = i.PERF_PICKNG_WAVE,
@PICK_WAVE_NBR = i.PICK_WAVE_NBR,
@PERF_RTE = i.PERF_RTE,
@PERF_PKT_CONSOL = i.PERF_PKT_CONSOL,
@PERF_PULLDOWN_FROM_PNH = i.PERF_PULLDOWN_FROM_PNH,
@CREATE_DATE_TIME = i.CREATE_DATE_TIME,
@MOD_DATE_TIME = i.MOD_DATE_TIME,
@USER_ID = i.[USER_ID],
@STAT_CODE = i.STAT_CODE,
@PNH_PARM_ID = i.PNH_PARM_ID,
@RTE_WAVE_PARM_ID = i.RTE_WAVE_PARM_ID
FROM inserted i;

--delete record based on primary key value
DELETE 
FROM PM_Warehouse_Reporting.dbo.SHIP_WAVE_PARM
WHERE [SHIP_WAVE_PARM_ID] = @SHIP_WAVE_PARM_ID

--insert new record to the reporting table
INSERT INTO PM_Warehouse_Reporting.dbo.SHIP_WAVE_PARM(
[SHIP_WAVE_PARM_ID],
[REC_TYPE],
[WHSE],
[SHIP_WAVE_NBR],
[WAVE_DESC],
[WAVE_PARM_ID],
[PERF_PICKNG_WAVE],
[PICK_WAVE_NBR],
[PERF_RTE],
[PERF_PKT_CONSOL],
[PERF_PULLDOWN_FROM_PNH],
[CREATE_DATE_TIME],
[MOD_DATE_TIME],
[USER_ID],
[STAT_CODE],
[PNH_PARM_ID],
[RTE_WAVE_PARM_ID]

VALUES (
@SHIP_WAVE_PARM_ID,
@REC_TYPE,
@WHSE,
@SHIP_WAVE_NBR,
@WAVE_DESC,
@WAVE_PARM_ID,
@PERF_PICKNG_WAVE,
@PICK_WAVE_NBR,
@PERF_RTE,
@PERF_PKT_CONSOL,
@PERF_PULLDOWN_FROM_PNH,
@CREATE_DATE_TIME,
@MOD_DATE_TIME,
@USER_ID,
@STAT_CODE,
@PNH_PARM_ID,
@RTE_WAVE_PARM_ID
)

--update the duplicate date in the PM_Warehouse_Reporting table
IF NOT EXISTS (SELECT 1 FROM PM_Warehouse.del.DELETES_SHIP_WAVE_PARM WHERE [SHIP_WAVE_PARM_ID] = @SHIP_WAVE_PARM_ID)
BEGIN
UPDATE PM_Warehouse_Reporting.dbo.SHIP_WAVE_PARM
SET [DUPLICATE_DATE] = GETDATE()
WHERE [SHIP_WAVE_PARM_ID] = @SHIP_WAVE_PARM_ID
END
ELSE
BEGIN
UPDATE PM_Warehouse.del.DELETES_SHIP_WAVE_PARM
SET [ACTION] = 'UPD'
WHERE [SHIP_WAVE_PARM_ID] = @SHIP_WAVE_PARM_ID
UPDATE PM_Warehouse.err.ERROR_SHIP_WAVE_PARM
SET [ACTION] = 'UPD'
WHERE [SHIP_WAVE_PARM_ID] = @SHIP_WAVE_PARM_ID
END
END

ALTER TRIGGER [dbo].[TRG_SHIP_WAVE_PARM_Update]
   ON [dbo].[SHIP_WAVE_PARM]
   AFTER UPDATE
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

    -- Insert statements for trigger here
DECLARE 
@SHIP_WAVE_PARM_ID decimal(5),
@REC_TYPE nvarchar(8),
@WHSE nvarchar(24),
@SHIP_WAVE_NBR nvarchar(96),
@WAVE_DESC nvarchar(320),
@WAVE_PARM_ID decimal(5),
@PERF_PICKNG_WAVE nvarchar(8),
@PICK_WAVE_NBR nvarchar(96),
@PERF_RTE nvarchar(8),
@PERF_PKT_CONSOL nvarchar(8),
@PERF_PULLDOWN_FROM_PNH nvarchar(8),
@CREATE_DATE_TIME datetime,
@MOD_DATE_TIME datetime,
@USER_ID nvarchar(120),
@STAT_CODE decimal(5),
@PNH_PARM_ID decimal(5),
@RTE_WAVE_PARM_ID decimal(5),
@Error_ID int,
@Action_Type char(3) = 'TUP'

SET @Error_ID = error_number()

SELECT 
@SHIP_WAVE_PARM_ID = i.SHIP_WAVE_PARM_ID,
@REC_TYPE = i.REC_TYPE,
@WHSE = i.WHSE,
@SHIP_WAVE_NBR = i.SHIP_WAVE_NBR,
@WAVE_DESC = i.WAVE_DESC,
@WAVE_PARM_ID = i.WAVE_PARM_ID,
@PERF_PICKNG_WAVE = i.PERF_PICKNG_WAVE,
@PICK_WAVE_NBR = i.PICK_WAVE_NBR,
@PERF_RTE = i.PERF_RTE,
@PERF_PKT_CONSOL = i.PERF_PKT_CONSOL,
@PERF_PULLDOWN_FROM_PNH = i.PERF_PULLDOWN_FROM_PNH,
@CREATE_DATE_TIME = i.CREATE_DATE_TIME,
@MOD_DATE_TIME = i.MOD_DATE_TIME,
@USER_ID = i.[USER_ID],
@STAT_CODE = i.STAT_CODE,
@PNH_PARM_ID = i.PNH_PARM_ID,
@RTE_WAVE_PARM_ID = i.RTE_WAVE_PARM_ID
FROM inserted i;

UPDATE  PM_Warehouse_Reporting.dbo.SHIP_WAVE_PARM
SET [SHIP_WAVE_PARM_ID]=@SHIP_WAVE_PARM_ID,
[REC_TYPE]=@REC_TYPE,
[WHSE]=@WHSE,
[SHIP_WAVE_NBR]=@SHIP_WAVE_NBR,
[WAVE_DESC]=@WAVE_DESC,
[WAVE_PARM_ID]=@WAVE_PARM_ID,
[PERF_PICKNG_WAVE]=@PERF_PICKNG_WAVE,
[PICK_WAVE_NBR]=@PICK_WAVE_NBR,
[PERF_RTE]=@PERF_RTE,
[PERF_PKT_CONSOL]=@PERF_PKT_CONSOL,
[PERF_PULLDOWN_FROM_PNH]=@PERF_PULLDOWN_FROM_PNH,
[CREATE_DATE_TIME]=@CREATE_DATE_TIME,
[MOD_DATE_TIME]=@MOD_DATE_TIME,
[USER_ID]=@USER_ID,
[STAT_CODE]=@STAT_CODE,
[PNH_PARM_ID]=@PNH_PARM_ID,
[RTE_WAVE_PARM_ID]=@RTE_WAVE_PARM_ID
WHERE [SHIP_WAVE_PARM_ID] = @SHIP_WAVE_PARM_ID
END


tae yang


Viewing all articles
Browse latest Browse all 4054

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>