Deadlock in logs

03/22/2019 14:12 Phzyx#1
Can't seem to figure out why this issue is happening which is causing a mass dc/rollback at random times. Here are the logs


Any help at this point would be appreciated and yes ive looked on epvp for fixes and none of them are working
03/22/2019 14:37 elitonfarol9#2
Try this :


USE [PS_GameData]
GO

/****** Object: StoredProcedure [dbo].[usp_Save_Char_Info_E] Script Date: 03/22/2019 10:40:12 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



ALTER Proc [dbo].[usp_Save_Char_Info_E]

@CharID int,
@Level int, @[Only registered and activated users can see links. Click Here To Register...]Point smallint, @[Only registered and activated users can see links. Click Here To Register...] smallint, @[Only registered and activated users can see links. Click Here To Register...] smallint,
@Dex smallint,
@Rec smallint,
@Int smallint, @[Only registered and activated users can see links. Click Here To Register...] smallint,
@Luc smallint,
@Hp smallint,
@Mp smallint,
@Sp smallint,
@Map smallint,
@Dir smallint,
@Exp int,
@Money int,
@Posx real,
@Posy real,
@Posz real,
@Hg int,
@Vg int,
@Cg int,
@Og int,
@Ig int,
@K1 int = null,
@K2 int = null,
@K3 int = null,
@K4 int = null,
@KillLevel tinyint,
@DeadLevel tinyint

AS

SET NOCOUNT ON

DECLARE @[Only registered and activated users can see links. Click Here To Register...]ID int
SET @[Only registered and activated users can see links. Click Here To Register...]ID = 1

UPDATE Chars
SET [Level] = @Level, StatPoint = @[Only registered and activated users can see links. Click Here To Register...]Point, SkillPoint = @[Only registered and activated users can see links. Click Here To Register...],
[Str] = @[Only registered and activated users can see links. Click Here To Register...], dex = @Dex, Rec = @Rec, [int] = @Int, Wis = @[Only registered and activated users can see links. Click Here To Register...], Luc = @Luc,
HP = @Hp, Mp = @Mp, Sp = @Sp,
Map = @Map, dir = @Dir, [exp] = @Exp, [money] = @Money,
PosX = @Posx, PosY = @PosY, PosZ = @PosZ, hg = @Hg, vg = @Vg, cg = @Cg, og = @Og, ig = @Ig,
KillLevel=@KillLevel, DeadLevel=@DeadLevel,LeaveDate=GETDATE()
WHERE CharID = @CharID

IF( (@K1 IS NOT NULL) AND (@K2 IS NOT NULL) AND (@K3 IS NOT NULL) AND (@K4 IS NOT NULL))
BEGIN
UPDATE Chars SET K1=@K1, K2=@K2, K3=@K3, K4=@K4 WHERE CharID=@CharID
END

--EXEC PS_USERDB01.PS_UserData_IDC_T3.dbo.usp_Update_Char sPVPData_E @[Only registered and activated users can see links. Click Here To Register...]ID = @[Only registered and activated users can see links. Click Here To Register...]ID, @CharID = @CharID, @K1 = @K1, @K2 = @K2, @K3 = @K3, @K4 = @K4

IF(@@ERROR = 0 AND @@ROWCOUNT = 1)
BEGIN
RETURN 1
END
ELSE
BEGIN
RETURN -1
END

SET NOCOUNT OFF


GO
03/22/2019 15:11 Phzyx#3
Quote:
Originally Posted by elitonfarol9 View Post
Try this :


USE [PS_GameData]
GO

/****** Object: StoredProcedure [dbo].[usp_Save_Char_Info_E] Script Date: 03/22/2019 10:40:12 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



ALTER Proc [dbo].[usp_Save_Char_Info_E]

@CharID int,
@Level int, @[Only registered and activated users can see links. Click Here To Register...]Point smallint, @[Only registered and activated users can see links. Click Here To Register...] smallint, @[Only registered and activated users can see links. Click Here To Register...] smallint,
@Dex smallint,
@Rec smallint,
@Int smallint, @[Only registered and activated users can see links. Click Here To Register...] smallint,
@Luc smallint,
@Hp smallint,
@Mp smallint,
@Sp smallint,
@Map smallint,
@Dir smallint,
@Exp int,
@Money int,
@Posx real,
@Posy real,
@Posz real,
@Hg int,
@Vg int,
@Cg int,
@Og int,
@Ig int,
@K1 int = null,
@K2 int = null,
@K3 int = null,
@K4 int = null,
@KillLevel tinyint,
@DeadLevel tinyint

AS

SET NOCOUNT ON

DECLARE @[Only registered and activated users can see links. Click Here To Register...]ID int
SET @[Only registered and activated users can see links. Click Here To Register...]ID = 1

UPDATE Chars
SET [Level] = @Level, StatPoint = @[Only registered and activated users can see links. Click Here To Register...]Point, SkillPoint = @[Only registered and activated users can see links. Click Here To Register...],
[Str] = @[Only registered and activated users can see links. Click Here To Register...], dex = @Dex, Rec = @Rec, [int] = @Int, Wis = @[Only registered and activated users can see links. Click Here To Register...], Luc = @Luc,
HP = @Hp, Mp = @Mp, Sp = @Sp,
Map = @Map, dir = @Dir, [exp] = @Exp, [money] = @Money,
PosX = @Posx, PosY = @PosY, PosZ = @PosZ, hg = @Hg, vg = @Vg, cg = @Cg, og = @Og, ig = @Ig,
KillLevel=@KillLevel, DeadLevel=@DeadLevel,LeaveDate=GETDATE()
WHERE CharID = @CharID

IF( (@K1 IS NOT NULL) AND (@K2 IS NOT NULL) AND (@K3 IS NOT NULL) AND (@K4 IS NOT NULL))
BEGIN
UPDATE Chars SET K1=@K1, K2=@K2, K3=@K3, K4=@K4 WHERE CharID=@CharID
END

--EXEC PS_USERDB01.PS_UserData_IDC_T3.dbo.usp_Update_Char sPVPData_E @[Only registered and activated users can see links. Click Here To Register...]ID = @[Only registered and activated users can see links. Click Here To Register...]ID, @CharID = @CharID, @K1 = @K1, @K2 = @K2, @K3 = @K3, @K4 = @K4

IF(@@ERROR = 0 AND @@ROWCOUNT = 1)
BEGIN
RETURN 1
END
ELSE
BEGIN
RETURN -1
END

SET NOCOUNT OFF


GO
We tried this originally and thought the issue has been resolved, but sadly it wasnt. So we put in a new procedure then the error just move else where. So we are currently trying a whole new db to see if that could resolve it. Thanks though <3