Page 1 of 1

Players Freeze With Video

Posted: Fri Dec 02, 2011 6:00 pm
by dljac
If you want to receive support we need this info to help you properly.
» Find Revision
L2J Revision 5101:
L2JDP Revision 8584:

Hello, I want to show video what happens to me.

Facts:
Windows Server 2008 R2 (clean install)
Latest version JDK.
Latest version mysql

machine:
Processor: AMD Athlon(tm) II X2 605e Processor 2.30Ghz
RAM: 16,0 GB
Sistem 64bits
HD Barracuda LP SATA 3Gb/s 1.5TB x2

Debug an attachment

Video:
http://www.youtube.com/watch?v=_rm2P3kQelE

P/D: UnAfraid
I use the code that you went and dropped a little but still the same

Link Code UnAfraid: http://pastebin.com/Zs8w6XHz

Note: this starts to happen after approximately 5 hours.

Thanks

Re: Players Freeze With Video

Posted: Fri Dec 02, 2011 6:36 pm
by MELERIX
are you using a npcbuffer or some other custom code ?

Re: Players Freeze With Video

Posted: Fri Dec 02, 2011 8:05 pm
by shoko
Why cpu useage getting to high

Re: Players Freeze With Video

Posted: Fri Dec 02, 2011 9:11 pm
by dljac
custom code use CORE:
AutoVoteRewardManager.java

Code: Select all

package com.l2jserver.gameserver.instancemanager;    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;    import com.l2jserver.Config;import com.l2jserver.L2DatabaseFactory;import com.l2jserver.gameserver.Announcements;import com.l2jserver.gameserver.ThreadPoolManager;import com.l2jserver.gameserver.model.L2World;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;    public class AutoVoteRewardManager{   private static Logger _log = Logger.getLogger(AutoVoteRewardManager.class.getName());          private static final String http = Config.LINK_HOPZONE;   private static final int initialCheck  = 1 * 1000;   private static final int delayForCheck = 900 * 1000;   private static final int[] itemId    = { 5575, 25100, 20034 };   private static final int[] itemCount = { 120000, 5, 20 };   private static final int votesRequiredForReward = Config.VOTES;    private static List<String> _ips = new ArrayList<String>();   private static int lastVoteCount = 0;         private AutoVoteRewardManager()   {       _log.info("VotosHopZone: Start.");       if (Config.SAVE_VOTES)           load();       ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);   }         private class AutoReward implements Runnable   {       @Override    public void run()       {           int votes = getVotes();           _log.info("VotosHopZone: " + votes + "/"+(getLastVoteCount()+votesRequiredForReward)+" voto(s). Next rev. "+(delayForCheck/1000)+" seg.");           Announcements.getInstance().announceToAll("¡Dont forgett! http://www.mydomain.com");            if (votes >= getLastVoteCount() + votesRequiredForReward)           {               Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().valueCollection();               {                   for (L2PcInstance onlinePlayer : pls)                   {                       if (onlinePlayer.isOnline() && !onlinePlayer.getClient().isDetached() && !_ips.contains(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress()))                       {                           for (int i = 0; i < itemId.length; i++)                           {                               onlinePlayer.addItem("vote_reward", itemId[i], itemCount[i], onlinePlayer, true);                           }                                             _ips.add(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress());                       }                   }               }               _log.info("VotosHopzone: Rewards sends!");               Announcements.getInstance().announceToAll("Rewards sends.");               setLastVoteCount(getLastVoteCount() + votesRequiredForReward);           }                           if (getLastVoteCount() == 0)           {               setLastVoteCount(votes);           }           else if ((getLastVoteCount() + votesRequiredForReward) - votes > votesRequiredForReward || votes > (getLastVoteCount() + votesRequiredForReward))           {               setLastVoteCount(votes);           }                         Announcements.getInstance().announceToAll("Have " + votes + " votes. Next rev. " + (getLastVoteCount()+votesRequiredForReward) + " votes.");           _ips.clear();       }   }         public static int getVotes()   {       URL url = null;       InputStreamReader isr = null;       BufferedReader in = null;       try       {           url = new URL(http);           URLConnection con = url.openConnection();           con.addRequestProperty("User-Agent", "Mozilla/4.76");            isr = new InputStreamReader(con.getInputStream());           in = new BufferedReader(isr);           String inputLine;           while ((inputLine = in.readLine()) != null)           {               // for top-zone               //if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))               //{                 //return Integer.valueOf(inputLine.split(">")[5].replace("</font", ""));               //}                           //for hopzone               if (inputLine.contains("Anonymous User Votes"))                   return Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));           }       }       catch (IOException e)       {           e.printStackTrace();       }       finally       {           try           {               in.close();           }           catch (IOException e)           {}           try           {               isr.close();           }           catch (IOException e)           {}       }       return 0;   }         private void setLastVoteCount(int voteCount)   {       lastVoteCount = voteCount;   }         private int getLastVoteCount()   {       return lastVoteCount;   }      private void load()   {       int votes = 0;       Connection con = null;       try       {           con = L2DatabaseFactory.getInstance().getConnection();           PreparedStatement statement = con.prepareStatement("SELECT vote FROM votes LIMIT 1");           ResultSet rset = statement.executeQuery();            while (rset.next())           {               votes = rset.getInt("vote");           }           rset.close();           statement.close();       }       catch (Exception e)       {           _log.log(Level.WARNING, "data error on vote: ", e);       }       finally       {           L2DatabaseFactory.close(con);       }             setLastVoteCount(votes);   }      public void save()   {       Connection con = null;       try       {           con = L2DatabaseFactory.getInstance().getConnection();           PreparedStatement statement = con.prepareStatement("UPDATE votes SET vote = ? WHERE id=1");           statement.setInt(1, getLastVoteCount());           statement.execute();           statement.close();       }       catch (Exception e)       {           _log.log(Level.WARNING, "data error on vote: ", e);       }       finally       {           L2DatabaseFactory.close(con);       }   }     public static AutoVoteRewardManager getInstance()   {       return SingletonHolder._instance;   }         @SuppressWarnings("synthetic-access")   private static class SingletonHolder   {       protected static final AutoVoteRewardManager _instance = new AutoVoteRewardManager();   }}
PvPColorSystem.java:

Code: Select all

/* This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */package com.l2jserver.gameserver.instancemanager; import java.util.Set; import com.l2jserver.Config;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; /** * * @author  Anarchy */public class PvPColorSystem{    public void updateTitleColor(L2PcInstance player)    {        Set<Integer> pvpscolors = Config.PVPS_COLORS_LIST.keySet();        for (Integer i : pvpscolors)        {            if (player.getPvpKills() >= i)            {                player.getAppearance().setTitleColor(Config.PVPS_COLORS_LIST.get(i));            }        }    }}
L2PcInstance Diff

Code: Select all

### Eclipse Workspace Patch 1.0#P L2j_ServerIndex: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java    (revision 5101)+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java    (working copy)@@ -91,6 +91,7 @@ import com.l2jserver.gameserver.instancemanager.InstanceManager; import com.l2jserver.gameserver.instancemanager.ItemsOnGroundManager; import com.l2jserver.gameserver.instancemanager.MapRegionManager;+import com.l2jserver.gameserver.instancemanager.PvPColorSystem; import com.l2jserver.gameserver.instancemanager.QuestManager; import com.l2jserver.gameserver.instancemanager.SiegeManager; import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;@@ -5823,6 +5824,10 @@            // Add karma to attacker and increase its PK counter            setPvpKills(getPvpKills() + 1);            +           //Update pvp colors+           PvPColorSystem pvpcolor = new PvPColorSystem();+           pvpcolor.updateTitleColor(this);+                       // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter            sendPacket(new UserInfo(this));            sendPacket(new ExBrExtraUserInfo(this));
UseItem.java Diff

Code: Select all

### Eclipse Workspace Patch 1.0#P L2j_ServerIndex: java/com/l2jserver/gameserver/network/clientpackets/UseItem.java===================================================================--- java/com/l2jserver/gameserver/network/clientpackets/UseItem.java    (revision 5101)+++ java/com/l2jserver/gameserver/network/clientpackets/UseItem.java    (working copy)@@ -172,6 +172,72 @@         }        +       int itemId = item.getItemId();+       if (!Config.SOE_FLAG && activeChar.getPvpFlag() > 0)+       {               +           switch (itemId)+           {+               case 736:+               case 1538:+               case 1829:+               case 1830:+               case 3958:+               case 5858:+               case 5859:+               case 6663:+               case 6664:+               case 7117:+               case 7118:+               case 7119:+               case 7557:+               case 7558:+               case 7559:+               case 7618:+               case 7619:+               case 9156:+               case 9647:+               case 10129:+               case 10130:+               case 10149:+               case 10150:+               case 10650:+               case 13129:+               case 13258:+               case 13731:+               case 13732:+               case 13733:+               case 13734:+               case 13735:+               case 13736:+               case 13737:+               case 13738:+               case 13739:+               {+                   activeChar.sendMessage("No use item when flag!.");+               }+                   return;             +           }+       }+               if (Config.DEBUG)            _log.log(Level.INFO, activeChar.getObjectId() + ": use item " + _objectId);
check next comment

Re: Players Freeze With Video

Posted: Fri Dec 02, 2011 9:12 pm
by dljac
AND Custom code use DP:
NPCBUFFER

Code: Select all

import sysfrom com.l2jserver.gameserver.model.actor.instance import L2PcInstancefrom java.util import Iteratorfrom com.l2jserver.gameserver.datatables import SkillTablefrom com.l2jserver                 import L2DatabaseFactoryfrom com.l2jserver.gameserver.model.quest import Statefrom com.l2jserver.gameserver.model.quest import QuestStatefrom com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest qn = "9998_NPCBuffer" NPC=[5009]ADENA_ID=57QuestId     = 9998QuestName   = "NPCBuffer"QuestDesc   = "custom"InitialHtml = "1.htm" print "NPCBuffer" class Quest (JQuest) :     def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)      def onEvent(self,event,st):        htmltext = event        count=st.getQuestItemsCount(ADENA_ID)        if count < 1 or st.getPlayer().getLevel() < 1 :            htmltext = "<html><head><body>Not have Adena<br></body></html>"        else:            st.takeItems(ADENA_ID,0)            st.getPlayer().setTarget(st.getPlayer())                        if event == "1":                st.takeItems(ADENA_ID,0)                return "1.htm"                      st.setState(COMPLETED)             #Wind Walk            if event == "2":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Decrease Weight            if event == "3":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1257,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Shield            if event == "4":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Might            if event == "5":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Mental Shield            if event == "6":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Bless the Body            if event == "7":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Bless the Soul            if event == "8":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Magic Barrier            if event == "9":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Resist Shock            if event == "10":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1259,4).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Concentration            if event == "11":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Berserker Spirit            if event == "12":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Bless Shield            if event == "13":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1243,6).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Vampiric Rage            if event == "14":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Acumen            if event == "15":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Empower            if event == "16":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Haste            if event == "17":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Guidance            if event == "18":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1240,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Focus            if event == "19":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Death Whisper            if event == "20":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1242,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             if event == "21":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer())                   return "3.htm"             if event == "22":                st.takeItems(ADENA_ID,0)                    SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "23":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "24":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "25":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "26":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "27":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "28":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "29":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "30":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "31":                st.takeItems(ADENA_ID,0)                        SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "32":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(366,1).getEffects(st.getPlayer(),st.getPlayer())                return "3.htm"             if event == "33":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer())                           return "3.htm"             if event == "34":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())                   return "4.htm"             if event == "35":                st.takeItems(ADENA_ID,0)                    SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "36":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "37":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "38":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "39":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "40":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "41":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "42":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "43":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"               if event == "44":                st.takeItems(ADENA_ID,0)                    SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "45":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"             if event == "46":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"                            if event == "47":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())                return "4.htm"                  st.setState(COMPLETED)                                            #Chant of Battle            if event == "48":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1007,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Shielding            if event == "49":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1009,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Fire            if event == "50":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1006,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Flame            if event == "51":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1002,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of life            if event == "52":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1229,18).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Fury            if event == "53":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1251,2).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Evasion            if event == "54":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1252,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Rage            if event == "55":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1253,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Revenge            if event == "56":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1284,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Vampire            if event == "57":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1310,4).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Eagle            if event == "58":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1309,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Predator            if event == "59":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1308,3).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Spirit            if event == "60":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #Chant of Victory            if event == "61":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                            #chant of magnus            if event == "62":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer())                return "5.htm"                st.setState(COMPLETED)                          #MPreg            if event == "63":                st.takeItems(ADENA_ID,1000)                SkillTable.getInstance().getInfo(1013,32).getEffects(st.getPlayer(),st.getPlayer())                return "1.htm"                      st.setState(COMPLETED)                       #greatmight            if event == "64":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #greatshield            if event == "65":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #holyresist            if event == "66":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #Unholyresist            if event == "67":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #pof            if event == "68":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #elemtprotect            if event == "69":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #wildmagic            if event == "70":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #advblock            if event == "71":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1304,3).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #divProtect            if event == "72":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #pow            if event == "73":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #powi            if event == "74":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1357,1).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)             #manaregen            if event == "75":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1047,4).getEffects(st.getPlayer(),st.getPlayer())                return "2.htm"                      st.setState(COMPLETED)                         #Bless of Seraphim            if event == "76":                            st.takeItems(ADENA_ID,0)                                 SkillTable.getInstance().getInfo(4702,13).getEffects(st.getPlayer(),st.getPlayer())                                return "6.htm"                st.setState(State.COMPLETED)                         #Gift of Seraphim            if event == "77":                            st.takeItems(ADENA_ID,0)                                 SkillTable.getInstance().getInfo(4703,13).getEffects(st.getPlayer(),st.getPlayer())                                return "6.htm"                st.setState(State.COMPLETED)                 #BoQ            if event == "78":                            st.takeItems(ADENA_ID,0)                                 SkillTable.getInstance().getInfo(4699,13).getEffects(st.getPlayer(),st.getPlayer())                                return "6.htm"                st.setState(State.COMPLETED)                         #GoQ            if event == "79":                            st.takeItems(ADENA_ID,0)                                 SkillTable.getInstance().getInfo(4700,13).getEffects(st.getPlayer(),st.getPlayer())                                return "6.htm"                st.setState(State.COMPLETED)             if event == "80":                 st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1354,1).getEffects(st.getPlayer(),st.getPlayer())                  SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer())                  SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())                   SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1284,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer())                return "1.htm"                st.setState(State.COMPLETED)             if event == "81":                 st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1354,1).getEffects(st.getPlayer(),st.getPlayer())                      SkillTable.getInstance().getInfo(1252,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer(),st.getPlayer())                  SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1077,2).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1242,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1240,3).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1243,6).getEffects(st.getPlayer(),st.getPlayer())                SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer())                return "1.htm"                st.setState(State.COMPLETED)              if event == "82":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(4094,12).getEffects(st.getPlayer(),st.getPlayer())                st.getPlayer().stopAllEffects()                return "1.htm"                st.setState(State.COMPLETED)             if event == "83":                st.takeItems(ADENA_ID,0)                SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer(),st.getPlayer())                return "1.htm"                st.setState(State.COMPLETED)                                                    if htmltext != event:                st.setState(State.COMPLETED)                st.exitQuest(1)        return htmltext      def onTalk (self,npc,player):       st = player.getQuestState(qn)       htmltext = "<html><head><body>Nothing</body></html>"       st.setState(State.STARTED)       return InitialHtml QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc) for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId)  

these codes is also used in the core STABLE and never had problems using it on the same machine

when I do a reboot the server returns to "normal" and after 5 or 6 hours starts again these cpu spikes

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 8:15 am
by UnAfraid
That's a debug while server is freezed?

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 11:30 am
by JIV
in debug log server is doing nothing

FastList: Recycled 3117 objects.Image

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 1:21 pm
by Stake
It seems GC spikes to me. Try some options for JVM. Here is the now best tuning idea.
"low pause times and high throughput"
http://java.sun.com/performance/referen ... ction4.2.6

Set heap sizes as high as you can, thus it will not perform gc's that often. Also consider setting MaxTenuringThreshold=0, thus it won't leave marked objects in the survivor space, so it will take less time at next short gc.

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 4:18 pm
by dljac
UnAfraid wrote:That's a debug while server is freezed?
if I did it when the server starts to do that.
as I say the peaks begin to appear so after about 5 or 6 hours.
there are peaks at the beginning but they are every few minutes
JIV wrote:in debug log server is doing nothing

FastList: Recycled 3117 objects.Image
today I'm going to do another debug and rise again.
Stake wrote:It seems GC spikes to me. Try some options for JVM. Here is the now best tuning idea.
"low pause times and high throughput"
http://java.sun.com/performance/referen ... ction4.2.6

Set heap sizes as high as you can, thus it will not perform gc's that often. Also consider setting MaxTenuringThreshold=0, thus it won't leave marked objects in the survivor space, so it will take less time at next short gc.
I could never do that well
Each time you change something such as:
REM If You have a big server and lots of memory, for example You Could experiment with
REM java-server-Xmx4096m-Xms2048m-Xmn1024m-XX: PermSize = 256m-XX: SurvivorRatio = 8-Xnoclassgc-XX: + AggressiveOpts

REM took the server and not restart: abnormal terminated gameserver

which would be the best JVM settings that you recommend?

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 8:17 pm
by Stake
dljac wrote:
Stake wrote:It seems GC spikes to me. Try some options for JVM. Here is the now best tuning idea.
"low pause times and high throughput"
http://java.sun.com/performance/referen ... ction4.2.6

Set heap sizes as high as you can, thus it will not perform gc's that often. Also consider setting MaxTenuringThreshold=0, thus it won't leave marked objects in the survivor space, so it will take less time at next short gc.
I could never do that well
Each time you change something such as:
REM If You have a big server and lots of memory, for example You Could experiment with
REM java-server-Xmx4096m-Xms2048m-Xmn1024m-XX: PermSize = 256m-XX: SurvivorRatio = 8-Xnoclassgc-XX: + AggressiveOpts

REM took the server and not restart: abnormal terminated gameserver

which would be the best JVM settings that you recommend?
Yes, because parameters should be separated by spaces. The OS takes every space as a different parameter input for commands. So instead of -Xmx4096m-Xms2048m it should be -Xmx4096m -Xms2048m.

The best setting i think is given in the official tuning whitepaper that i linked. But try with -XX:MaxTenuringThreshold=0. If it were worse, then set it back to 31.

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 8:32 pm
by Szponiasty
Run VisualVM when spikes occur again, and do snapshots showing what uses most CPU and RAM atm. Then you will have quick start where to look for the problem. Otherwise we can play guessing or fortune telling - if you like ;)

http://youtu.be/tT3TXlN_fo0

Re: Players Freeze With Video

Posted: Sat Dec 03, 2011 9:31 pm
by dljac
Stake wrote:
dljac wrote:
Stake wrote:It seems GC spikes to me. Try some options for JVM. Here is the now best tuning idea.
"low pause times and high throughput"
http://java.sun.com/performance/referen ... ction4.2.6

Set heap sizes as high as you can, thus it will not perform gc's that often. Also consider setting MaxTenuringThreshold=0, thus it won't leave marked objects in the survivor space, so it will take less time at next short gc.
I could never do that well
Each time you change something such as:
REM If You have a big server and lots of memory, for example You Could experiment with
REM java-server-Xmx4096m-Xms2048m-Xmn1024m-XX: PermSize = 256m-XX: SurvivorRatio = 8-Xnoclassgc-XX: + AggressiveOpts

REM took the server and not restart: abnormal terminated gameserver

which would be the best JVM settings that you recommend?
Yes, because parameters should be separated by spaces. The OS takes every space as a different parameter input for commands. So instead of -Xmx4096m-Xms2048m it should be -Xmx4096m -Xms2048m.

The best setting i think is given in the official tuning whitepaper that i linked. But try with -XX:MaxTenuringThreshold=0. If it were worse, then set it back to 31.

hello I have the gamserver.dat like this:

Code: Select all

 @echo offtitle Game Server Console:startecho Starting L2J Game Server.echo.REM -------------------------------------REM Default parameters for a basic server.java -Djava.util.logging.manager=com.l2jserver.util.L2LogManager -Xms1024m -Xmx1024m -cp ./../libs/*;l2jserver.jar com.l2jserver.gameserver.GameServerREMREM If you have a big server and lots of memory, you could experiment for example withREM java -server -Xmx1536m -Xms1024m -Xmn512m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOptsREM -------------------------------------if ERRORLEVEL 2 goto restartif ERRORLEVEL 1 goto errorgoto end:restartecho.echo Admin Restart ...echo.goto start:errorecho.echo Server terminated abnormalyecho.:endecho.echo server terminatedecho.pause 
i remove "REM" in:
java -server -Xmx1536m -Xms1024m -Xmn512m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts
and not see difference <------------ and restart dont work

could modify with your best optimization?, since every time you try to not see the difference. please thanks


Szponiasty wrote:Run VisualVM when spikes occur again, and do snapshots showing what uses most CPU and RAM atm. Then you will have quick start where to look for the problem. Otherwise we can play guessing or fortune telling - if you like ;)

http://youtu.be/tT3TXlN_fo0
thank you very much for the video
upload screenshots soon!