First of all, try optimizing your database, of course.
If that doesn't help, open world/client.cpp and jump to line 59:
Code:
...
Client::Client(EQStreamInterface* ieqs)
: autobootup_timeout(10000),
CLE_keepalive_timer(15000),
connect(1000),
eqs(ieqs)
{
...
Change the two timers, I set them to 60000 and 65000 respectively:
Code:
...
Client::Client(EQStreamInterface* ieqs)
: autobootup_timeout(60000),
CLE_keepalive_timer(65000),
connect(1000),
eqs(ieqs)
{
...
Recompile and go.
That way, even if your server is under some load with lots of DB queries, there should be enough time to boot your dynamic zones (they can now take 1 minute before a timeout happens). Best tell your players that zoning may be slow occasionally when the server is active.
These settings should be made configurable via XML in a future release.
Cheers
-Chris