Page 2 of 3

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 2:34 pm
by ElessarMS
Now there are 175 players and I dont have lag but after I while it will start, it is really weird really...

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 2:41 pm
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

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 3:55 pm
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.

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 3:56 pm
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

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 3:57 pm
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?

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:05 pm
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");    }}  

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:11 pm
by _DS_
This event running very limited amount of time (only during rate change) and should not do anything bad.

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:12 pm
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?

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:23 pm
by ElessarMS
Yes, this is my scheme buffer:

http://pastebin.com/9VAVMZhg

My Events:

http://pastebin.com/UiL0UyWs

My gatekeeper:

http://pastebin.com/63N3JLhW

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:28 pm
by pinkcore
Yea Rin4a's Buffer. Janiii has fixed it long time ago. I think fixed script is on this forum.

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:39 pm
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?).

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:42 pm
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.

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 4:55 pm
by ElessarMS
Ok dude, im going to try it to see if it works and I'll come back with a feedback!.

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 6:11 pm
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

Re: Lag Problems!!

Posted: Wed Oct 27, 2010 7:26 pm
by _DS_
Remove buffer and test again.