Lag Problems!!

Support for the latest build of L2J Server, get help here with installations, upgrades, problems.
Do not post bugs reports here, use viewforum.php?f=77 instead.
There is no support for other server builds than the official provided by l2jserver.com
Forum rules
READ NOW: L2j Forums Rules of Conduct
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

Now there are 175 players and I dont have lag but after I while it will start, it is really weird really...
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

And error appear just right now!:

Image

And now after this error the disconnected, too many queues overflows are appearing again. just when the rates event finished, can it be the mistake?

Image
User avatar
pinkcore
Posts: 247
Joined: Fri Jul 24, 2009 3:04 am
Location: Czech Republic

Re: Lag Problems!!

Post by pinkcore »

ElessarMS wrote:And error appear just right now!:

Image

And now after this error the disconnected, too many queues overflows are appearing again. just when the rates event finished, can it be the mistake?

Image
Rate Event doing this.
It calls you there are unclossed connection, it becomes overflowed in some time. :) Just check the script or send it there.
Last edited by pinkcore on Wed Oct 27, 2010 3:56 pm, edited 1 time in total.
I'm not here only for food!
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

Yes, I will remove it right now to check what's going on because when is lagging is kicking like 3 or 4 players with the overflow stuff :S
User avatar
pinkcore
Posts: 247
Joined: Fri Jul 24, 2009 3:04 am
Location: Czech Republic

Re: Lag Problems!!

Post by pinkcore »

ElessarMS wrote:Yes, I will remove it right now to check what's going on because when is lagging is kicking like 3 or 4 players with the overflow stuff :S
Can you post the script?
I'm not here only for food!
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

Ofc, here it is:
I guess is bad coded as hell so.. dont mock at me guys >.<

Code: Select all

 package events.Rates; import java.util.Calendar; import com.l2jserver.Config;import com.l2jserver.gameserver.Announcements;import com.l2jserver.gameserver.model.actor.L2Npc;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;import com.l2jserver.gameserver.model.quest.Quest; public class Rates extends Quest{    private static final boolean ANNOUNCE = true; // announce the rate changes or not.    private static final int MULTIPLIER = 2; // rate multiplier, choose with caution!    private static final int DURATION = 30; // in minutes.    private static final int DELAY = 30; // Delay between server start/script load and event start in minutes.     private static final Byte START_DAY = 0; // zero to disable. !!!Starts with SUNDAY as 1st day of week!!! Accepted values 1-7.    private static final Byte START_HOUR = 0; // zero to disable. 24 hour system. Must be set if using START_DAY,                                                                                            //otherwise will start at midnight (unless that's what you want).    private static final Byte START_MINUTE = 30;     private static final int FREQUENCY = 120; // Time between event re-run in minutes, 0 to use daily/weekly system.     public Rates(int questId, String name, String descr)    {        super(questId, name, descr);         if (loadGlobalQuestVar("exprate") == "")        {            if (START_DAY > 0 || START_HOUR > 0)                startQuestTimer("START", setStartTime(START_DAY, START_HOUR, START_MINUTE), null, null);            else                startQuestTimer("START", DELAY * 60000, null, null);        }        else // in case your server crashed before restoring rates...            startQuestTimer("RESTORE", 60000, null, null);    }     private long setStartTime(Byte day, Byte hour, Byte minute)    {        Calendar starttime = Calendar.getInstance();        if (day > 0 && day < 8)            starttime.set( Calendar.DAY_OF_WEEK, day );        else _log.info("Rates event: wrong day of week set. Skipped.");        if (hour > 0 && hour < 24)            starttime.set( Calendar.HOUR_OF_DAY, hour );        else _log.info("Rates event: wrong hour of day set. Skipped.");        if (minute > 0 && minute < 60)            starttime.set( Calendar.MINUTE, minute );        else if (minute > 60)            starttime.set( Calendar.MINUTE, minute % 60 );        if ((starttime.getTimeInMillis() - Calendar.getInstance().getTimeInMillis()) > 0)            return (starttime.getTimeInMillis() - Calendar.getInstance().getTimeInMillis());        else return 60000L;    }     public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)    {        if (event.equalsIgnoreCase("START"))        {            saveGlobalQuestVar("exprate", String.valueOf(Config.RATE_XP));            Config.RATE_XP = MULTIPLIER * Config.RATE_XP;            saveGlobalQuestVar("sprate", String.valueOf(Config.RATE_SP));            Config.RATE_SP = MULTIPLIER * Config.RATE_SP;            saveGlobalQuestVar("droprate", String.valueOf(Config.RATE_DROP_ITEMS));            Config.RATE_DROP_ITEMS = MULTIPLIER * Config.RATE_DROP_ITEMS;            saveGlobalQuestVar("adenarate", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(57)));            Config.RATE_DROP_ITEMS_ID.put(57, (int) Config.RATE_DROP_ITEMS_ID.get(57) * MULTIPLIER);            saveGlobalQuestVar("GArate", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9143)));            Config.RATE_DROP_ITEMS_ID.put(9143, (int) Config.RATE_DROP_ITEMS_ID.get(9143) * MULTIPLIER);            saveGlobalQuestVar("CFire", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9552)));            Config.RATE_DROP_ITEMS_ID.put(9552, (int) Config.RATE_DROP_ITEMS_ID.get(9552) * MULTIPLIER);            saveGlobalQuestVar("CWater", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9553)));            Config.RATE_DROP_ITEMS_ID.put(9553, (int) Config.RATE_DROP_ITEMS_ID.get(9553) * MULTIPLIER);            saveGlobalQuestVar("CEarth", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9554)));            Config.RATE_DROP_ITEMS_ID.put(9554, (int) Config.RATE_DROP_ITEMS_ID.get(9554) * MULTIPLIER);            saveGlobalQuestVar("CWind", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9555)));            Config.RATE_DROP_ITEMS_ID.put(9555, (int) Config.RATE_DROP_ITEMS_ID.get(9555) * MULTIPLIER);            saveGlobalQuestVar("CDark", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9556)));            Config.RATE_DROP_ITEMS_ID.put(9556, (int) Config.RATE_DROP_ITEMS_ID.get(9556) * MULTIPLIER);            saveGlobalQuestVar("CHoly", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9557)));            Config.RATE_DROP_ITEMS_ID.put(9557, (int) Config.RATE_DROP_ITEMS_ID.get(9557) * MULTIPLIER);            saveGlobalQuestVar("FireS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9546)));            Config.RATE_DROP_ITEMS_ID.put(9546, (int) Config.RATE_DROP_ITEMS_ID.get(9546) * MULTIPLIER);            saveGlobalQuestVar("WaterS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9547)));            Config.RATE_DROP_ITEMS_ID.put(9547, (int) Config.RATE_DROP_ITEMS_ID.get(9547) * MULTIPLIER);            saveGlobalQuestVar("EarthS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9548)));            Config.RATE_DROP_ITEMS_ID.put(9548, (int) Config.RATE_DROP_ITEMS_ID.get(9548) * MULTIPLIER);            saveGlobalQuestVar("WindS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9549)));            Config.RATE_DROP_ITEMS_ID.put(9549, (int) Config.RATE_DROP_ITEMS_ID.get(9549) * MULTIPLIER);            saveGlobalQuestVar("DarkS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9550)));            Config.RATE_DROP_ITEMS_ID.put(9550, (int) Config.RATE_DROP_ITEMS_ID.get(9550) * MULTIPLIER);            saveGlobalQuestVar("HolyS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9551)));            Config.RATE_DROP_ITEMS_ID.put(9551, (int) Config.RATE_DROP_ITEMS_ID.get(9551) * MULTIPLIER);            saveGlobalQuestVar("Masterys", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9627)));            Config.RATE_DROP_ITEMS_ID.put(9627, (int) Config.RATE_DROP_ITEMS_ID.get(9627) * MULTIPLIER);            saveGlobalQuestVar("BEAS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(6578)));            Config.RATE_DROP_ITEMS_ID.put(6578, (int) Config.RATE_DROP_ITEMS_ID.get(6578) * MULTIPLIER);            saveGlobalQuestVar("BEWS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(6577)));            Config.RATE_DROP_ITEMS_ID.put(6577, (int) Config.RATE_DROP_ITEMS_ID.get(6577) * MULTIPLIER);             if (ANNOUNCE)                Announcements.getInstance().announceToAll("Crazy Rates Event!: The rates have been changed! For the next " + DURATION + " minutes the rates will be multiplied by "+ MULTIPLIER +"!");            startQuestTimer("RESTORE", DURATION * 60000, null, null);            _log.info("Rate event: rates changed, vars set. Restoring rates in " + DURATION + "minutes.");        }         if (event.equalsIgnoreCase("RESTORE"))        {            Config.RATE_XP = Float.valueOf(loadGlobalQuestVar("exprate"));            Config.RATE_SP = Float.valueOf(loadGlobalQuestVar("sprate"));            Config.RATE_DROP_ITEMS = Float.valueOf(loadGlobalQuestVar("droprate"));            Config.RATE_DROP_ITEMS_ID.put(57, Float.valueOf(loadGlobalQuestVar("adenarate")));            deleteAllGlobalQuestVars();            _log.info("Rate event: rates restored, vars deleted.");             if (ANNOUNCE)                Announcements.getInstance().announceToAll("The rates are restored. See you till the next Crazy event!");            if (START_DAY > 0 || START_HOUR > 0)                startQuestTimer("START", setStartTime(START_DAY, START_HOUR, START_MINUTE), null, null);            else if (FREQUENCY > 0)                startQuestTimer("START", FREQUENCY * 60000, null, null);        }        return "";    }     public static void main(String[] args)    {        new Rates(-1, "Rates", "events");    }}  
_DS_
L2j Veteran
L2j Veteran
Posts: 3437
Joined: Wed Apr 30, 2008 8:53 am
Location: Russia

Re: Lag Problems!!

Post by _DS_ »

This event running very limited amount of time (only during rate change) and should not do anything bad.
Commiter of the shit
public static final int PI = 3.1415926535897932384626433832795;
User avatar
pinkcore
Posts: 247
Joined: Fri Jul 24, 2009 3:04 am
Location: Czech Republic

Re: Lag Problems!!

Post by pinkcore »

ElessarMS wrote:Ofc, here it is:
I guess is bad coded as hell so.. dont mock at me guys >.<

Code: Select all

 package events.Rates; import java.util.Calendar; import com.l2jserver.Config;import com.l2jserver.gameserver.Announcements;import com.l2jserver.gameserver.model.actor.L2Npc;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;import com.l2jserver.gameserver.model.quest.Quest; public class Rates extends Quest{    private static final boolean ANNOUNCE = true; // announce the rate changes or not.    private static final int MULTIPLIER = 2; // rate multiplier, choose with caution!    private static final int DURATION = 30; // in minutes.    private static final int DELAY = 30; // Delay between server start/script load and event start in minutes.     private static final Byte START_DAY = 0; // zero to disable. !!!Starts with SUNDAY as 1st day of week!!! Accepted values 1-7.    private static final Byte START_HOUR = 0; // zero to disable. 24 hour system. Must be set if using START_DAY,                                                                                            //otherwise will start at midnight (unless that's what you want).    private static final Byte START_MINUTE = 30;     private static final int FREQUENCY = 120; // Time between event re-run in minutes, 0 to use daily/weekly system.     public Rates(int questId, String name, String descr)    {        super(questId, name, descr);         if (loadGlobalQuestVar("exprate") == "")        {            if (START_DAY > 0 || START_HOUR > 0)                startQuestTimer("START", setStartTime(START_DAY, START_HOUR, START_MINUTE), null, null);            else                startQuestTimer("START", DELAY * 60000, null, null);        }        else // in case your server crashed before restoring rates...            startQuestTimer("RESTORE", 60000, null, null);    }     private long setStartTime(Byte day, Byte hour, Byte minute)    {        Calendar starttime = Calendar.getInstance();        if (day > 0 && day < 8)            starttime.set( Calendar.DAY_OF_WEEK, day );        else _log.info("Rates event: wrong day of week set. Skipped.");        if (hour > 0 && hour < 24)            starttime.set( Calendar.HOUR_OF_DAY, hour );        else _log.info("Rates event: wrong hour of day set. Skipped.");        if (minute > 0 && minute < 60)            starttime.set( Calendar.MINUTE, minute );        else if (minute > 60)            starttime.set( Calendar.MINUTE, minute % 60 );        if ((starttime.getTimeInMillis() - Calendar.getInstance().getTimeInMillis()) > 0)            return (starttime.getTimeInMillis() - Calendar.getInstance().getTimeInMillis());        else return 60000L;    }     public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)    {        if (event.equalsIgnoreCase("START"))        {            saveGlobalQuestVar("exprate", String.valueOf(Config.RATE_XP));            Config.RATE_XP = MULTIPLIER * Config.RATE_XP;            saveGlobalQuestVar("sprate", String.valueOf(Config.RATE_SP));            Config.RATE_SP = MULTIPLIER * Config.RATE_SP;            saveGlobalQuestVar("droprate", String.valueOf(Config.RATE_DROP_ITEMS));            Config.RATE_DROP_ITEMS = MULTIPLIER * Config.RATE_DROP_ITEMS;            saveGlobalQuestVar("adenarate", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(57)));            Config.RATE_DROP_ITEMS_ID.put(57, (int) Config.RATE_DROP_ITEMS_ID.get(57) * MULTIPLIER);            saveGlobalQuestVar("GArate", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9143)));            Config.RATE_DROP_ITEMS_ID.put(9143, (int) Config.RATE_DROP_ITEMS_ID.get(9143) * MULTIPLIER);            saveGlobalQuestVar("CFire", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9552)));            Config.RATE_DROP_ITEMS_ID.put(9552, (int) Config.RATE_DROP_ITEMS_ID.get(9552) * MULTIPLIER);            saveGlobalQuestVar("CWater", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9553)));            Config.RATE_DROP_ITEMS_ID.put(9553, (int) Config.RATE_DROP_ITEMS_ID.get(9553) * MULTIPLIER);            saveGlobalQuestVar("CEarth", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9554)));            Config.RATE_DROP_ITEMS_ID.put(9554, (int) Config.RATE_DROP_ITEMS_ID.get(9554) * MULTIPLIER);            saveGlobalQuestVar("CWind", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9555)));            Config.RATE_DROP_ITEMS_ID.put(9555, (int) Config.RATE_DROP_ITEMS_ID.get(9555) * MULTIPLIER);            saveGlobalQuestVar("CDark", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9556)));            Config.RATE_DROP_ITEMS_ID.put(9556, (int) Config.RATE_DROP_ITEMS_ID.get(9556) * MULTIPLIER);            saveGlobalQuestVar("CHoly", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9557)));            Config.RATE_DROP_ITEMS_ID.put(9557, (int) Config.RATE_DROP_ITEMS_ID.get(9557) * MULTIPLIER);            saveGlobalQuestVar("FireS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9546)));            Config.RATE_DROP_ITEMS_ID.put(9546, (int) Config.RATE_DROP_ITEMS_ID.get(9546) * MULTIPLIER);            saveGlobalQuestVar("WaterS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9547)));            Config.RATE_DROP_ITEMS_ID.put(9547, (int) Config.RATE_DROP_ITEMS_ID.get(9547) * MULTIPLIER);            saveGlobalQuestVar("EarthS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9548)));            Config.RATE_DROP_ITEMS_ID.put(9548, (int) Config.RATE_DROP_ITEMS_ID.get(9548) * MULTIPLIER);            saveGlobalQuestVar("WindS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9549)));            Config.RATE_DROP_ITEMS_ID.put(9549, (int) Config.RATE_DROP_ITEMS_ID.get(9549) * MULTIPLIER);            saveGlobalQuestVar("DarkS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9550)));            Config.RATE_DROP_ITEMS_ID.put(9550, (int) Config.RATE_DROP_ITEMS_ID.get(9550) * MULTIPLIER);            saveGlobalQuestVar("HolyS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9551)));            Config.RATE_DROP_ITEMS_ID.put(9551, (int) Config.RATE_DROP_ITEMS_ID.get(9551) * MULTIPLIER);            saveGlobalQuestVar("Masterys", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(9627)));            Config.RATE_DROP_ITEMS_ID.put(9627, (int) Config.RATE_DROP_ITEMS_ID.get(9627) * MULTIPLIER);            saveGlobalQuestVar("BEAS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(6578)));            Config.RATE_DROP_ITEMS_ID.put(6578, (int) Config.RATE_DROP_ITEMS_ID.get(6578) * MULTIPLIER);            saveGlobalQuestVar("BEWS", String.valueOf(Config.RATE_DROP_ITEMS_ID.get(6577)));            Config.RATE_DROP_ITEMS_ID.put(6577, (int) Config.RATE_DROP_ITEMS_ID.get(6577) * MULTIPLIER);             if (ANNOUNCE)                Announcements.getInstance().announceToAll("Crazy Rates Event!: The rates have been changed! For the next " + DURATION + " minutes the rates will be multiplied by "+ MULTIPLIER +"!");            startQuestTimer("RESTORE", DURATION * 60000, null, null);            _log.info("Rate event: rates changed, vars set. Restoring rates in " + DURATION + "minutes.");        }         if (event.equalsIgnoreCase("RESTORE"))        {            Config.RATE_XP = Float.valueOf(loadGlobalQuestVar("exprate"));            Config.RATE_SP = Float.valueOf(loadGlobalQuestVar("sprate"));            Config.RATE_DROP_ITEMS = Float.valueOf(loadGlobalQuestVar("droprate"));            Config.RATE_DROP_ITEMS_ID.put(57, Float.valueOf(loadGlobalQuestVar("adenarate")));            deleteAllGlobalQuestVars();            _log.info("Rate event: rates restored, vars deleted.");             if (ANNOUNCE)                Announcements.getInstance().announceToAll("The rates are restored. See you till the next Crazy event!");            if (START_DAY > 0 || START_HOUR > 0)                startQuestTimer("START", setStartTime(START_DAY, START_HOUR, START_MINUTE), null, null);            else if (FREQUENCY > 0)                startQuestTimer("START", FREQUENCY * 60000, null, null);        }        return "";    }     public static void main(String[] args)    {        new Rates(-1, "Rates", "events");    }}  
Problems are not caused by this scripts, there is no database connection opened.
Are you using Scheme Buffer?
I'm not here only for food!
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

Yes, this is my scheme buffer:

http://pastebin.com/9VAVMZhg

My Events:

http://pastebin.com/UiL0UyWs

My gatekeeper:

http://pastebin.com/63N3JLhW
User avatar
pinkcore
Posts: 247
Joined: Fri Jul 24, 2009 3:04 am
Location: Czech Republic

Re: Lag Problems!!

Post by pinkcore »

Yea Rin4a's Buffer. Janiii has fixed it long time ago. I think fixed script is on this forum.
I'm not here only for food!
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

The thing is that this is a new version for freya because the Html were fucked up in rin4a's original buffer, so I don't know if Janiii fixed this script based in the new one for Freya version. Do you think the buffer is the problem? Because when the people get overflow they're not buffing themselves or close to the buffer (or this doesnt matter?).
User avatar
pinkcore
Posts: 247
Joined: Fri Jul 24, 2009 3:04 am
Location: Czech Republic

Re: Lag Problems!!

Post by pinkcore »

ElessarMS wrote:The thing is that this is a new version for freya because the Html were fucked up in rin4a's original buffer, so I don't know if Janiii fixed this script based in the new one for Freya version. Do you think the buffer is the problem? Because when the people get overflow they're not buffing themselves or close to the buffer (or this doesnt matter?).
It's not caused by player at time. If player do something at buffer, connection stay opened, and when emulator reaches connection limits its going to close some connections automatically. (MySQL overflow)

Code: Select all

Index: script.py===================================================================--- script.py   (revision 0)+++ script.py   (working copy)@@ -713,6 +713,7 @@                    ins.close()                    con.close()                except : pass+           try : con.close()            return rebuildMainHtml(st)                    if event == "delete" :@@ -722,7 +723,7 @@            try :                 rem.executeUpdate()                rem.close()-               con.close()+               conn.close()            except : pass            rem=conn.prepareStatement("DELETE FROM buffer_scheme_contents WHERE scheme_id=?")            rem.setString(1, eventParam1) 
Try this, I catched some unclossed connections.
I'm not here only for food!
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

Ok dude, im going to try it to see if it works and I'll come back with a feedback!.
ElessarMS
Posts: 51
Joined: Wed Oct 13, 2010 10:11 pm

Re: Lag Problems!!

Post by ElessarMS »

Ok, I have working the buffer, gatekeeper and rate events, the first thing you told me to edit (the "try : con.close()" I had to quit it because when I was initializing the GS was giving me an error son I just let the second change. Now after 30 min the server working it gave me this error and the overflows started again:

Image
_DS_
L2j Veteran
L2j Veteran
Posts: 3437
Joined: Wed Apr 30, 2008 8:53 am
Location: Russia

Re: Lag Problems!!

Post by _DS_ »

Remove buffer and test again.
Commiter of the shit
public static final int PI = 3.1415926535897932384626433832795;
Post Reply