Jump to content

Recommended Posts

Posted

Well I'm currently rewriting the buffer, but there's one thing - I will share only a promo buffer, that won't have scheme system, pet buffing and some of the configuration features. So what I say is - only beta testers, chosen by me, will get full version of the buffer, and the rest of you will be able to buy it for 5$ or so. The price isn't that high. As far as I know, it's like buying 2 large bottles of coke in Europe.

Posted

Well I'm currently rewriting the buffer, but there's one thing - I will share only a promo buffer, that won't have scheme system, pet buffing and some of the configuration features. So what I say is - only beta testers, chosen by me, will get full version of the buffer, and the rest of you will be able to buy it for 5$ or so. The price isn't that high. As far as I know, it's like buying 2 large bottles of coke in Europe.

When you have it ready, pm me , i will buy for sure =)

  • 4 weeks later...
Posted

i think, all ppl already sayed that, but, nice works!

realy.

He works like a charm on my epilogue server.

The question is: how i can fix this console error?

 

10 sept. 2010 00:19:44 com.l2jserver.L2DatabaseFactory$ConnectionCloser run
ATTENTION: Unclosed connection! Trace: sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
java.lang.RuntimeException
    at com.l2jserver.L2DatabaseFactory.getConnection(L2DatabaseFactory.java:223)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.python.core.PyReflectedFunction.__call__(Unknown Source)
    at org.python.core.PyMethod.__call__(Unknown Source)
    at org.python.core.PyObject.__call__(Unknown Source)
    at org.python.core.PyInstance.invoke(Unknown Source)
    at org.python.pycode.serializable._pyx1284070287676.onAdvEvent$14(__init__.py:768)
    at org.python.pycode.serializable._pyx1284070287676.call_function(__init__.py)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyFunction.__call__(Unknown Source)
    at org.python.core.PyMethod.__call__(Unknown Source)
    at org.python.core.PyObject.__call__(Unknown Source)
    at org.python.core.PyObject._jcallexc(Unknown Source)
    at org.python.core.PyObject._jcall(Unknown Source)
    at org.python.proxies.main$Quest$432.onAdvEvent(Unknown Source)
    at com.l2jserver.gameserver.model.quest.Quest.notifyEvent(Quest.java:405)
    at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.processQuestEvent(L2PcInstance.java:1790)
    at com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:221)
    at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:93)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

 

nvm, thx for sharing.

  • 2 weeks later...
  • 5 months later...
Posted

The reason for this post is to report a problem that can seriously affect the performance of your servers. Some of you maybe have not noticed, ought not to have many people using the buffer at the same time, but in my case 1 week ago, I had two total freezes when the whole server (500-700 players) attempted use the bufer after an event ;D. But I found something, a person is enough to knock over a server, with many people. Looks this code in script both original rin4a's buffer and my version have a problem, but is easy to fix.

 

as you can see in these lines of code, is open a connection to the database but is never closed, every time a user attempted to remove a buff of his scheme, open a new connection that was never closed causing a total server freeze.

 

                          if event == "remove_buff" :
                                      event = eventParam1.split("_")
                                      scheme = event[0]
                                      skill = event[1]
                                      level = event[2]
                                      con=L2DatabaseFactory.getInstance().getConnection()
                                      rem=con.prepareStatement("DELETE FROM buffer_scheme_contents WHERE scheme_id=? AND skill_id=? AND skill_level=? LIMIT 1")
                                      rem.setString(1, scheme)
                                      rem.setString(2, skill)
                                      rem.setString(3, level)
                                      try : rem.executeUpdate()
                                      except : pass

 

to fix the problem only adds to what I show below  :). thats all!

 

                          if event == "remove_buff" :
                                      event = eventParam1.split("_")
                                      scheme = event[0]
                                      skill = event[1]
                                      level = event[2]
                                      con=L2DatabaseFactory.getInstance().getConnection()
                                      rem=con.prepareStatement("DELETE FROM buffer_scheme_contents WHERE scheme_id=? AND skill_id=? AND skill_level=? LIMIT 1")
                                      rem.setString(1, scheme)
                                      rem.setString(2, skill)
                                      rem.setString(3, level)
                                      try :
                                                   rem.executeUpdate()
                                                   rem.close()         # <------------ADD----------
                                                   con.close()         # <------------ADD----------
                                      except : pass

 

After this modification, the performance of my server increase substantially (not more freezing, less lagg).

 

PD: I would recommend that only allow certain people to use the buffer for servers with more than 100 users (Use the VIP Option, i used and everything is fine).

 

I added that lines on your VIP buffer but when server try to load the script i got this error:

 

Error on: C:\Server\gameserver\data\scripts\custom\55555_NPCBUFFER\__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 1216, 17, '                con.close()'))

 

i see you fixed this for the first buffer (555), can you fix this for the other version too (555555) ?

 

here is mine with your fix (not working) http://www.mediafire.com/?j9mmoh3c839stqz

 

thanks!

  • 4 weeks later...
Posted

Well I'm currently rewriting the buffer, but there's one thing - I will share only a promo buffer, that won't have scheme system, pet buffing and some of the configuration features. So what I say is - only beta testers, chosen by me, will get full version of the buffer, and the rest of you will be able to buy it for 5$ or so. The price isn't that high. As far as I know, it's like buying 2 large bottles of coke in Europe.

When done it, pm me , i will buy them ;]

  • 3 weeks later...
  • 2 months later...
Guest
This topic is now closed to further replies.

×
×
  • Create New...