Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 04-22-2008, 11:07 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

I didn't even try to use one area for the quest, I have them on both servers, as this too would probably help keep the load balanced, unless it's world that's running all the quests anyway. Coders will have to let us know if the code allows for drive changes to the locations or just folder/directory changes.

If you get the Templates running, you can start up your world and then LOCK it via the Templates OR, make it LOCKED by default on boot up and then UNLOCK it when all the ones are up.

Glad I was able to help you get it up and running.
__________________
Random Segments of Code....
Reply With Quote
  #2  
Old 04-22-2008, 02:48 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Well, nexus crashed and for some reason restarted on 7050 which made the zone unreachable. I don't know why it would restart on another port when port 7002 was still available...

Code:
delveb (delveb)	7000	Players	View Log	Restart - Kill
potimeb (potimeb)	7001	Players	View Log	Restart - Kill
solrotower (solrotower)	7003	Players	View Log	Restart - Kill
veeshan (veeshan)	7004	Players	View Log	Restart - Kill
Dynamic: Idle	7039	Players	View Log	Restart - Kill
Dynamic: Idle	7040	Players	View Log	Restart - Kill
Dynamic: Idle	7041	Players	View Log	Restart - Kill
Dynamic: potimeb (potimeb)	7042	Players	View Log	Restart - Kill
Dynamic: frozenshadow (frozenshadow)	7043	Players	View Log	Restart - Kill
Dynamic: Idle	7044	Players	View Log	Restart - Kill
Dynamic: Idle	7045	Players	View Log	Restart - Kill
Dynamic: povalor (povalor)	7046	Players	View Log	Restart - Kill
Dynamic: Idle	7047	Players	View Log	Restart - Kill
Dynamic: stillmoonb (stillmoonb)	7048	Players	View Log	Restart - Kill
Dynamic: Idle	7049	Players	View Log	Restart - Kill
nexus (nexus)	7050	Players	View Log	Restart - Kill
Anyone that has been running a server with multiple zone servers for a while able to lend a hand, please lol?
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #3  
Old 04-22-2008, 07:09 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Quote:
Originally Posted by trevius View Post
Well, nexus crashed and for some reason restarted on 7050 which made the zone unreachable. I don't know why it would restart on another port when port 7002 was still available...
Anyone that has been running a server with multiple zone servers for a while able to lend a hand, please lol?
Then you may want to rethink your launching setup... The Launcher has to connect to world and you said you are starting the zone server first, so it may start it's zones first, but now World see's the higher zone numbers last. I would start the world locked and wait until all zones are up and running, then unlock the world, but that's just me.
__________________
Random Segments of Code....
Reply With Quote
  #4  
Old 04-22-2008, 07:47 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

The problem is that there is no way to set a zone server to use any specific port when a zone crashes and restarts. It will just use the next available one, but I don't think it ever uses the same one it was on before.

Unfortunately, this means that there is no way in the current system for me to setup my servers to run zones on both of them without risking zones being unavailable due to being on the wrong port.

I am going to make a post in the bugs section about the launcher_zones table port setting being completely pointless. I am also going to make a feature request for an entry in the config file to let it set port assignment per zone server.

Code:
	<zones>
		<defaultstatus>0</defaultstatus>
		<!-- Sets port range for world to use to auto configure zones -->
		<ports zonea low="7000" high="7049"/>
                <ports zoneb low="7050" high="7100"/>
	</zones>
With "zonea" being the name of the zone launcher set in the start.bat file (start eqlaunch.exe zonea) of the world server and "zoneb" being the name of the zone launcher set in the zone server batch file (start eqlaunch.exe zoneb).

I think that would be the simplest solution. And again, once I get this all worked out, I will write up a nice guide in the wiki for it.

I hope I don't get mattmeck'd (tm) for making double posts! This post here is for support, the bug post I am going to make is to get the ports issue filed as a bug and the feature request post is the one to request a new setting in the config file. IMO, those are all separate even though they do all relate to this one same issue. Maybe posting the right things in the right places will get them looked at by the right people.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #5  
Old 04-22-2008, 07:54 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

What happens is when a zone crashes, it restarts on the next highest zone port above the last one used. I had dynamic zones boot from the zonew (World Server) 1st on ports 7000 thru 7004. I logged in and zoned into a dynamic zone and crashed the zone. When it restarted it was on port 7011 which was the next zone number in the queue so to speak. I crashed it again and it restarted on 7012... AND both times it restarted on the zonez server where it was originally on the zonew server. but... I was still able to get into the zone because port 7011 was forwarded to the server with zonez where it restarted.... So, it appears to restart on the next port in line and on the last zone server used.

It just keeps getting better.....
__________________
Random Segments of Code....
Reply With Quote
  #6  
Old 04-22-2008, 08:14 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Ya, if I wanted to run all dynamic zones, this wouldn't be an issue. The reason I am setting this up in the first place is because one of my raid zones gets over 20 players quite often and on the world server, it is too much for it to handle and it crashes ALOT! I am sure this is more than a little annoying to my players. So, I am setting it and 4 other heavy traffic zones to run on my main PC which has much more ram and a faster CPU. This should increase overall stability by a great amount and maybe even let me have more players on my server. So, I need to have static zones setup to run on the zone server. I don't want to just split the dynamics between servers.

The problem is if I set a zone to static, and no matter what port I actually start it on (before or after the dynamics on the world server are all loaded), I can get it working fine. But as soon as it crashes, the zone will have a big risk of starting on the wrong port dynamically and since it is specified in the launcher_zones table to launch that static zone on my secondary zone server, it will be unavailable to players.

Now, this issue wouldn't be too bad if my zones stayed up all of the time. I am sure the ones on my zone server PC would be pretty stable there. But, I use a zone resetter quest script that I wrote to reset each of these zones after they have been up a certain number of hours. Nexus is set to reset after 4 hours, which is basically restarted the same as if the zone had crashed. I need the zone resetter to deal with the player ghosts issue that apparently only occurs on Windows.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #7  
Old 04-23-2008, 05:22 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

It seems that the only way to make this really work, is that it has to be changed in the code.
Does anyone know what the zone_server table is for in the DB? I added in a zone there and it picked up the last_alive time, so it's in the code some where. Seems you could edit in the zones and port and have the code look at what port the zone is supposed to be on and reload with that port number?

Wondering why we haven't heard from any of the Ops who run multi-servers?
__________________
Random Segments of Code....
Reply With Quote
  #8  
Old 04-23-2008, 07:53 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I PM'd Cavedude directly and this is what he had to say about it:

Quote:
Under Linux, creating a symlink from the world quest folder to the daughter zone directory works perfectly. However, I doubt this will work under Windows (though, give it a try.) Under Linux, a symlink is a true shortcut to the folder/directory and is treated the same as if it were the normal data. Windows, however will often treat the shortcut for what it is, nothing more than a file with the destination folder/file info contained within. This is especially true over a network and will often cause situations like this to fail. I am pretty certain EQEmu looks for the quests folder in a sub directory of the main binary directory, so specifying a path in eqemu_config.xml will likely fail. So, the only thing you are left with is to have a separate quest folder. That isn't so bad, however as that's one less thing zone will need to communicate to the world server for. The more self reliant it is, the better off it is.

As for the zones taking over new ports when they crash... That's a problem with EQEmu and it bothers the hell out of me. When a static zone crashes or is shut down it becomes dynamic, including taking over a port reserved for dynamic zones when it comes back up. It also has the inherent problem of clearing spawn timers, so nameds pop back up and player corpses don't depop/move to GY/SR. I've asked a few times to get this behavior changed so static zones will reboot as static zones, eliminating all of these problems but it looks like a major overhaul of the system would be required. In my case, I have two machines on different networks so my ports can overlap. If you're on the same network, that's not an option obviously (unless you want to get into port/IP forwarding/spoofing, which can get messy and pretty much requires Linux). My only suggestion is to prevent static zones from rebooting automatically in variables (hopefully that still works). You'll then lose a static zone of course, however the zone that crashed should open on the dynamic server the next time a player tries to enter it, making it accessible. You'll just need to keep an eye out on how many zones you have available since they won't auto-boot after a crash. You may want to give yourself extra dynamics since it's very uncommon to crash a dynamic instance to the point where it won't re-open (though, I have seen that on TGC, sadly)

I hope this helps, and if you have anymore questions, feel free to ask.
IMO there has to be another way to do this, so I might try contacting some of the other server admins that I am pretty sure use multiple zone servers. I think KMRA uses a few and probably TZ/VZ too. Maybe TheLieka can help. I might try bugging him about it tomorrow :P
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #9  
Old 04-23-2008, 06:23 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Quote:
Originally Posted by Aramid View Post
It seems that the only way to make this really work, is that it has to be changed in the code.
Does anyone know what the zone_server table is for in the DB? I added in a zone there and it picked up the last_alive time, so it's in the code some where. Seems you could edit in the zones and port and have the code look at what port the zone is supposed to be on and reload with that port number?

Wondering why we haven't heard from any of the Ops who run multi-servers?
I tried setting up this table with 5 zones and it didn't seem to have any effect at all. I am guessing this might be an old table that isn't used anymore for anything. It is empty by default and I have never seen any info on what to put in there.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 03:37 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3