عرض مشاركة واحدة
قديم 05-03-2013, 02:41 PM   #1

Zenger



الصورة الرمزية Zenger

مـشـرف عـام TR-SRO , RU-SRO

• الانـتـسـاب » Jul 2008
• رقـم العـضـويـة » 26773
• المشـــاركـات » 1,620
• الـدولـة » Alex
• الـهـوايـة »
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 53
Zenger جـيـد

Zenger غير متواجد حالياً

87  



افتراضي معالجه جميع اخطاء ملفات السيرفير










موضوع انهارده : للشغال باي داتابيز غير اللي انا نزلتها

وطبعا كلها بتعمل Dump Files

وانت بتستسهل الموضوع وبتجيب برنامج يلغى ال dump files

طيب ليه منحلش الموضوع من غير اي برنامج

بمعني نخلي كفاءه الملفات 99% من غير اخطاء

طيب اي اللي بيخلي الاخطاء تيجي ؟؟

ان في حاجه في الداتا بيز مش مظبوطه


دلوقتي انا هقول على كام خطاء بيطلع في ملفات السيرفير واهمهم ال Global Manager

واللي يشوف اي خطاء من دول يصلحه بالكويري اللي هيبقى تحت الخطأ

نبتدى على البركه




(1)
الرساله :

كود:
failed to permanent removing of character ! [JID: 45234, CharID: 75375, ErrorCode: -10000]


الحل :

كود:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_DeleteCharPermanently]    Script Date: 02/14/2012 12:54:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO


--!!!CHECK!!!
ALTER              PROCEDURE [dbo].[_DeleteCharPermanently]
@CharID	as int
as
	------------------------------------
	-- 일단 삭제된 캐릭인지 부터 검사!
	------------------------------------
	if (not exists(select charid from _deletedchar where charid = @CharID))
	begin
		return -1
	end
	------------------------------------
	-- 삭제후 경과된 시간이 대략 7일이 맞는가 확인 (샤드에 혹시 버그가 있을지 모르니깐...)
	------------------------------------
	declare @deleted_date datetime
	declare @cur_date 	  datetime
	declare @elapsed_min int
	declare @UserJID		 int
--	declare @deleted_slot  int
	set @cur_date = getdate()
	select @UserJID = UserJID, /*@deleted_slot = CharSlot,*/ @deleted_date = deleteddate  from _deletedchar with (nolock) where charid = @CharID
	
	-- 삭제시킨지 6일 + 23시간 이상이 지난 캐릭인가? (1시간 정도의 오차라면 인정해 준다 냐하~)
	set @elapsed_min = datediff(minute, @deleted_date, @cur_date)
	if (@elapsed_min < ((60 * 24 * 6) + (60 * 23))) 
	begin
		return -2
	end
	------------------------------------
	-- 삭제된 캐릭이 맞는지 다시한번 확인
	------------------------------------
	declare @is_deleted tinyint
	select @is_deleted = deleted from _Char where CharID = @CharID
	if (@is_deleted <> 1)
	begin
		return -3
	end

	------------------------------------
	-- 지울 캐릭이 _User 에 있는 CharID와 일치하는가 검사
	------------------------------------
	declare @char_id_to_check	 	int
	set @char_id_to_check = 0

/*	-- commented by novice. for server integration.
	if (@deleted_slot = 0)
		begin	select @char_id_to_check = CharID1 from _User where UserJID = @UserJID end
	else if (@deleted_slot = 1)
		begin	select @char_id_to_check = CharID2 from _User where UserJID = @UserJID end
	else if (@deleted_slot = 2)
		begin	select @char_id_to_check = CharID3 from _User where UserJID = @UserJID end
	else
		begin
			return -4
		end
	-- 켁! 어떻게 된거야?  이상한 넘이 자리를 차지하고 있다!
	if (@char_id_to_check <> @CharID)
	begin
		return -5
	end
*/
	-- start by novice.
	select @char_id_to_check = CharID from _User where UserJID = @UserJID and CharID = @CharID
	
	if (@char_id_to_check = 0)
	begin
		-- 지울 캐릭터가 _User 에 없어?
		return -5
	end
	-- finish by novice.
	
begin transaction
	
	declare @GuildID int
	exec @GuildID = _DeleteCharPermanently_NoTX  @UserJID, @CharID --, @deleted_slot
	if (@GuildID is null)
		set @GuildID = -10000	
	if (@GuildID < 0)
	begin
		rollback transaction
		return @GuildID
	end	
commit transaction
	
	return @GuildID


(2)

الرساله :



الحل :

كود:
USE [SRO_VT_ACCOUNT]
GO
/****** Object:  StoredProcedure [dbo].[_RegisterAutomatedPunishment]    Script Date: 10/24/2011 05:46:38 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

ALTER PROCEDURE [dbo].[_RegisterAutomatedPunishment]
    @Account    VARCHAR(128),
    @Type          TINYINT,
    @Executor    VARCHAR(128),
    @Guide        VARCHAR(512),
    @Description    VARCHAR(1024),
    @BlockTimeElapse    INT
--    @BlockStartTime    DATETIME,
--    @BlockEndTime    DATETIME
AS
   
    DECLARE @BlockStartTime    VARCHAR(128)
    DECLARE @BlockEndTime    VARCHAR(128)

    SET @BlockStartTime     = getdate()
    SET @BlockEndTime    = dateadd(minute, 10, getdate())
    ------------------------------------------------------------------------------------

    DECLARE @UserJID INT
    SET @UserJID = 0
    DECLARE @NewSerialNo int    
    SET @NewSerialNo = 0
    -- Á¸ÀçÇϴ ij¸¯ÅÍ À̸§ÀÎÁö? JID ¾÷¾î¿ÀÀÚ.
    SELECT @UserJID = JID FROM TB_User WITH (NOLOCK) WHERE strUserID = @Account
    IF @@ERROR <> 0 OR @UserJID = 0
    BEGIN
        SELECT -1
        RETURN
    END

    -- ÀÌ¹Ì ºí·° °É¸° À¯ÀúÀ̳Ä?
    IF( EXISTS ( SELECT UserJID FROM _BlockedUser WITH (NOLOCK) WHERE UserJID = @UserJID AND Type = @Type))
    BEGIN
        select -2
        RETURN    
    END

    
    
    INSERT _Punishment values( @UserJID, @Type, @Executor, 0, '', '', '', @Guide, @Description, @BlockStartTime, @BlockStartTime, @BlockEndTime, @BlockStartTime, 0)
    set @NewSerialNo = @@identity
    if( @@rowcount = 0 or @@error <> 0 or @NewSerialNo = 0 or @NewSerialNo is null)
    BEGIN
        SELECT -3
        RETURN        
    END

    INSERT _BlockedUser values( @UserJID, @Account, @Type, @NewSerialNo, @BlockStartTime, @BlockEndTime)
    if( @@rowcount = 0 or @@error <> 0 )
    BEGIN
        SELECT -4
        RETURN        
    END

    SELECT @UserJID


(3)

شويه كويري استخدمها هتظبطلك حاجات في الداتا

كود:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_DeleteCharPermanently_NoTX]    Script Date: 02/14/2012 12:54:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

ALTER PROCEDURE [dbo].[_DeleteCharPermanently_NoTX]
	@UserJID	INT
,	@CharID		INT
AS
	------------------------------------
	-- Inventory¶û ±×¾È¿¡ °¡Áö°í ÀÖ´ø ¾ÆÀÌÅÛµé ³¯·Á¹ö¸®ÀÚ...
	------------------------------------
	-------------- Æê ¼Òȯ ¾ÆÀÌÅÛºÎÅÍ ÀÏ´Ü »èÁ¦ ----------------
	declare @result int
	declare @Slot tinyint
	declare @RefItemID int
	
	declare pc_inv_cursor cursor fast_forward for
	select inv.slot
	from _Inventory as inv join _Items as it on inv.ItemID = it.ID64 
	where 
	(inv.CharID = @CharID and inv.Slot >= 13 and inv.ItemID > 0) and 	-- Àåºñâ Á¦¿ÜÇÏ°í ¾ÆÀÌÅÛ ÀÖ´Â ¼ø¼ö Àκ¥Å丮 ¾È¿¡ µé¾îÀÖÀ¸¸ç
	(it.Data <> 0) 											 and	-- ¼Òȯ¼ö¸¦ °¡Áö°í ÀÖ´Â
	(exists (select top 1 ID from _RefObjCommon where ID = it.RefItemID and TypeID1 = 3 and TypeID2 = 2)) -- Æê¼Òȯ ¾ÆÀÌÅÛµé ã¾ÆÁà~
	
	open pc_inv_cursor 
	fetch next from pc_inv_cursor  into @slot
	while @@fetch_status = 0
	begin
			exec @result = _STRG_DEL_ITEM_NoTX 1, @CharID, @Slot	
			if (@result < 0)
			begin
				close pc_inv_cursor 
				deallocate pc_inv_cursor 
				return @result
			end
						
			fetch next from pc_inv_cursor  into @Slot
	end
	
	close pc_inv_cursor 
	deallocate pc_inv_cursor 
	------------------- ³²Àº ¾ÆÀÌÅÛµé ¸ùâ »èÁ¦  -------------------
	-- ¾ÆÀÌÅÛÀÌ Çϳª¶óµµ ÀÖ´Ù¸é...
	if (exists (select top 1 itemID from _Inventory where CharID = @CharID AND ItemID <> 0))
	begin
		update _ItemPool Set InUse = 0 
		from _ItemPool as pool join _Inventory as inv on pool.ItemID = Inv.ItemID
		where Inv.CharID = @CharID and Inv.ItemID <> 0
	end
	----------- ¾ÆÀÌÅÛµé ³¯·ÈÀ¸´Ï ÃÖÁ¾ÀûÀ¸·ç Àκ¥Å丮 »èÁ¦  ------------
	delete from _Inventory where CharID = @CharID
	if (@@error <> 0)
	begin
		return -10001
	end

	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	--		APPLY_AVATAR_SYSTEM (Çã½Â¿í) 
	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

	------------------- ³²Àº ¾Æ¹ÙŸ Àκ¥Å丮 ¾ÆÀÌÅÛµé ¸ùâ »èÁ¦  -------------------
	-- ¾ÆÀÌÅÛÀÌ Çϳª¶óµµ ÀÖ´Ù¸é...
	if (exists (select top 1 itemID from _InventoryForAvatar where CharID = @CharID AND ItemID <> 0))
	begin
		update _ItemPool Set InUse = 0 
		from _ItemPool as pool join _InventoryForAvatar as InvAva on pool.ItemID = InvAva.ItemID
		where InvAva.CharID = @CharID and InvAva.ItemID <> 0
	end
	----------- ¾ÆÀÌÅÛµé ³¯·ÈÀ¸´Ï ÃÖÁ¾ÀûÀ¸·ç ¾Æ¹ÙŸ Àκ¥Å丮 »èÁ¦  ------------
	delete from _InventoryForAvatar where CharID = @CharID
	if (@@error <> 0)
	begin
		return -10008
	end

	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	--		APPLY_AVATAR_SYSTEM (Çã½Â¿í) 
	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

	------------------------------------
	-- COS »èÁ¦
	------------------------------------
/*
	declare @engaged_cos int
	set @engaged_cos = 0
	select @engaged_cos = EngagedCOS from _char with (nolock) where CharID = @CharID
	
	if (@engaged_cos = 0)
	begin
		-- ¿Ö ¹ß»ýÇÏ´Â Áö Àß ¸ð¸£°ÚÁö¸¸... ¾ÆÁÖ µå¹°°Ô COS ¸¸ ³²¾ÆÀÖ´Â °æ¿ì°¡ ÀÖ´õ¶ó°í... -_-;
		select @engaged_cos = ID from _CharCOS with (nolock) where OwnerCharID = @CharID
		if (@engaged_cos is null)
			set @engaged_cos = 0
	end
	if (@engaged_cos is not null and @engaged_cos <> 0)
	begin
		declare @Return_Del_COS int
		exec @Return_Del_COS = _DeleteCharCOS_NoTX  @CharID, @engaged_cos
		if (@Return_Del_COS < 0)
		begin
			return -10002
		end
	end
*/
	------------------------------------
	-- Trijob µ¥ÀÌÅÍ »èÁ¦
	------------------------------------
	delete from _CharTrijob where CharID = @CharID
	------------------------------------
	-- ½ºÅ³ »èÁ¦
	------------------------------------
	delete _CharSkill where CharId = @CharID
	delete _CharSkillMastery where charId = @CharID
	------------------------------------
	-- Äù½ºÆ® »èÁ¦
	------------------------------------
	delete _CharQuest where CharID = @CharID
	------------------------------------
	-- ±æµå ¸â¹ö »èÁ¦
	------------------------------------
	-- !!! ¸¸¾à ¿©±â¼* Guild ¸â¹ö »èÁ¦°¡ ÀϾÁö ¾ÊÀ¸¸é ShardManager ¿¡¼* 
	-- _Guild_DelMember È£ÃâÇØ ÁÖµµ·Ï ¼öÁ¤ÇØ¾ß ÇÑ´Ù! Áö±ÝÀº ±× °úÁ¤Àº SkipÇÏ°í 
	-- ¸Þ¸ð¸®¿¡¼* »èÁ¦¸¸ ÀϾ°Ô µÇ¾î Àְŵ¢...
	declare @GuildID int
	set @GuildID = 0
	select @GuildID = GuildID from _char where charid = @CharID
	if (@GuildID is not null and @GuildID <> 0)
	begin
		if (not exists (select ID from _Guild where ID = @GuildID))
		begin
			update _Char set GuildID = 0 where CharID = @CharID
		end
		else
		begin
			declare @Return_Del_GuildMember int
			exec @Return_Del_GuildMember = _Guild_DelMember_NoTX @GuildID, @CharID
			if (@Return_Del_GuildMember < 0)
				return -10003
		end
	end

	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	--		APPLY_MENTOR_SYSTEM (ÃÖÀÎÈ£) 
	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	DECLARE @CampID INT
	SET @CampID = 0
	SELECT @CampID = CampID FROM _TrainingCampMember WHERE CharID = @CharID 
	IF (@CampID IS NOT NULL AND @CampID <> 0)
	BEGIN
		DECLARE @Ret_DelCampMember INT
		EXEC @Ret_DelCampMember = _TRAINING_CAMP_DELMEMBER @CampID, @CharID, 0
		IF (@Ret_DelCampMember < 0)
			RETURN -10007
	END

	-- ÀÖÀ¸¸é Áö¿ö¹ö¸®ÀÚ~ ¹¹.
	DELETE FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @CharID

	-- °æÇèÄ¡ ¹öÇÁ ·¹Äڵ嵵~~ ¤»¤»
	DELETE FROM _TrainingCampBuffStatus WHERE CampID = @CampID

	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	--		APPLY_MENTOR_SYSTEM (ÃÖÀÎÈ£) 
	--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

	-----------------------------------
	-- Ä£±¸ ¸®½ºÆ® »èÁ¦ ( ³ªÀÇ Ä£±¸ ¸®½ºÆ® + Ä£±¸ÀÇ Ä£±¸ ¸®½ºÆ®Áß ³ª )
	-----------------------------------
	-- ³» Ä£±¸µé..
	declare @FriendCharID	int
	declare @cursor_var 	cursor
	
	set @cursor_var = cursor fast_forward
	for
	select FriendCharID
	from _Friend
	where CharID = @CharID
	
	open @cursor_var
	
	fetch next from @cursor_var into @FriendCharID
	
	while( @@FETCH_STATUS = 0 )
	begin
		delete _Friend where CharID = @FriendCharID and FriendCharID = @CharID
	
		fetch next from @cursor_var into @FriendCharID
	end
	close @cursor_var
	deallocate @cursor_var
	-- ³ª..
	delete _Friend where CharID = @CharID
	-----------------------------------
	-----------------------------------
	-- ÂÊÁö »èÁ¦
	-----------------------------------
	delete _Memo where CharID = @CharID
	------------------------------------
	-- TimedJob »èÁ¦Çϱâ
	------------------------------------
	delete _TimedJob where CharID = @CharID
	------------------------------------
	-- Static Avatar Á¤º¸ »èÁ¦
	------------------------------------	
	delete from _staticavatar where charid = @charid
	------------------------------------
	-- ±Ó¸» ºí·° Á¤º¸ »èÁ¦
	------------------------------------	
	delete from _BlockedWhisperers where OwnerID = @charid	
	------------------------------------
	-- ÆÄƼÃÊ´ë ºí·° Á¤º¸ »èÁ¦ 10.06.07
	------------------------------------
	DELETE FROM _BlockedPartyInviter WHERE CharID = @charid	
	------------------------------------
	-- _DeletedChar Entry »èÁ¦
	------------------------------------
	delete from _DeletedChar where CharID = @CharID
	if (@@error <> 0)
	begin
		return -10004
	end
	-- start by novice.
	DELETE FROM _User WHERE UserJID = @UserJID and CharID = @CharID
	-- finish by novice.

	------------------------------------
	-- commit !!!
	------------------------------------
	
	-- Ŭ¶óÀ̾ðÆ®¿ë Äü½½·Ô Á¤º¸ ÀúÀå Å×ÀÌºí ³¯¸®±â!!!
	exec _RemoveClientConfig @CharID		-- by novice...... for saving client configurations...
	return @GuildID

كود:
USE [SRO_VT_ACCOUNT]
GO
/****** Object:  StoredProcedure [dbo].[_ManageShardCharName]    Script Date: 02/14/2012 12:56:27 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER procedure [dbo].[_ManageShardCharName]
	@job		tinyint,
	@UserJID   	int,
	@ShardID   	smallint,
	@CharName 	varchar(64),
	@OldName 	varchar(64)
as
	-- add new char name
	if (@job = 0)
	begin
		if (not exists(select * from SR_ShardCharNames where UserJID = @UserJID and ShardID = @ShardID and CharName = @CharName))
		begin
			insert SR_ShardCharNames values(@UserJID, @ShardID, @CharName)
		end
	end
	-- remove char name
	else if (@job = 1)
	begin
		delete SR_ShardCharNames where UserJID = @UserJID and ShardID = @ShardID and CharName = @CharName
	--	delete SR_CharAppoint where UserJID = @UserJID and ShardID = @ShardID and CharID = @CharName
	end
	-- rename previous one
	else if (@job = 2)
	begin
		update SR_ShardCharNames set CharName = @CharName where UserJID = @UserJID and ShardID = @ShardID and CharName = @OldName
		-- update SR_CharAppoint set CharID = @CharName where UserJID = @UserJID and ShardID = @ShardID and CharID = @OldName
	end


ارجو ان الموضوع افادكم وحل معظم مشاكل ملفات السيرفير


وفي اخر الموضوع اهداء صغير للي بيحصل الايام ديه






توقيع Zenger :
__________________________________________________ __________

اقتباس:
تقدر تتابعني وتتواصل معايا على
Youtube
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]

Discord
Zenger#9214

Facbook
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]


رد مع اقتباس
إعلانات google