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