Page 1 of 1

AL, connectivity issue

Posted: Sun May 18, 2008 1:28 am
by indio
The skullport mod is losing connectivity with the database every few minutes it seems. I think this happened to me before. Can't remember how we fixed it last time. Any ideas?

Posted: Sun May 18, 2008 4:49 pm
by AcadiusLost
In the short-term, and for beta testing, you can work around it by running a local MySQL DB schema instead of connecting to the central one via the net. Basically, the NWNx4 module which interfaces with MySQL isn't fault-tolerant, so one connection failure is enough to necessitate a full server restart to get a fresh connection.

There is a beta version of the NWNx4 plugin out as well which is supposed to know how to reestablish a broken connection, but I've not looked into the ramifications of that for scripts trying to read/write across the internet via SQL, it might just stall everything while it retries, or it may just skip and ignore failed read/writes which could cause a lot of headaches. Since the NWNx4 crew is pretty savvy with this stuff, I'm crossing my fingers for a seamless caching and retry model for handling failed database access.

I think Cipher said he'd look into the newer version, but that was before the rush for Live and the lastminute loot/quest system development that trumped our SQL worries.

So: interim recommendation, switch to local MySQL DB. Unfortunately, it doesn't bode too well for Live hosting capabilities, since solid central DB connection is pretty essential for normal ACR functions. Could be router problems, it's worth trying a restart to flush it out, or it could be ISP problems (you just got ADSL2, yes?).

Hope it works out, looking forward to peeking around Skullport with a Beta PC sometime as well.

Posted: Sun May 18, 2008 8:54 pm
by indio
Ok. Thanks.

Posted: Wed May 21, 2008 9:23 am
by indio
I'm trialling the 1.09 NWNX4 with auto reconnect. Looks good so far. We'll see.

Posted: Wed May 21, 2008 10:07 am
by indio
Seems quite robust. Hasn't lost connectivity once and it just feels a whole lot steadier than previous iterations.

Posted: Wed May 21, 2008 3:51 pm
by AcadiusLost
indio wrote:Seems quite robust. Hasn't lost connectivity once and it just feels a whole lot steadier than previous iterations.
Are you running it with LogLevel = 2 in xp_mysql.ini? I'd be very interested to see a paste of the log around a connectivity failure and reconnect.

Currently, under 0.0.0.8, it tends to look something like this:

Code: Select all

* Executing: SELECT Uses FROM spelltrack WHERE CharacterID=273
! The SQL Server has gone away.
* Executing: UPDATE characters, players SET characters.IsOnline=1, players.LastLogin=now(), players.Logins=players.Logins+1, players.IsDM=0 WHERE characters.ID=273 and players.ID=characters.PlayerID
! The SQL Server has gone away.
Meaning each of those queries, and any afterwards, return nothing and any essential data meant to be stored to the database is lost. This can be minor things like spell uses, or more serious things like whether or not a PC has stabilized while bleeding out, or died.

If the 0.0.0.9 version doesn't store and retry these, we'll need to code a mechanism to retry inside our persistency functions, which is quite the potential headache. If it holds all script executions waiting on retries until it is successful, that's going to make things downright unplayable until connection is reestablished.

If you want to test this manually, you can try running a local SQL DB, loading up the server logging in, then stopping the MySQL service from Computer Management in windows. This simulates the connection fail we get with the remote SQL server. Once you see the failures appear in the log, start the service back up and see how it handles the recovery.

This is assuming it doesn't use special handling for local vs. remote SQL databases, but I'd guess it wouldn't.

Posted: Wed May 21, 2008 8:57 pm
by indio
I am on 2, but I'm not near my server. When I get home I'll post the log. Pretty sure there's been no dosconnections because of the ping they put in it.

Posted: Thu May 22, 2008 10:38 am
by indio
Here's what I've got, but this is from 1.08. I switched back to it when 1.09 didn't work. Mind you, it looks good on paper, but in game, I cannot get it to recognise variables.
NWNX MySQL Plugin V.0.0.8
(c) 2007 by Ingmar Stieger (Papillon)
visit us at http://www.nwnx.org
(built using mysql-5.0.27 source)

* Log level set to 2 (everything)
* Connecting to server vault.alandfaraway.org
* Plugin initialized.
* Registering under function class SQL
* Executing: CREATE TABLE IF NOT EXISTS `areas` (`ID` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,`ServerID` smallint(8) UNSIGNED NOT NULL,`Name` varchar(64) NOT NULL,`Tag` varchar(64) NOT NULL,`Visits` int(10) UNSIGNED NOT NULL default 0,`X` smallint(5) default NULL,`Y` smallint(5) default NULL,`Z` smallint(5) default NULL,`IsSafe` bool NOT NULL default false,`IsInside` bool NOT NULL default false,`IsNatural` bool NOT NULL default false,PRIMARY KEY (`ID`), UNIQUE KEY (`ServerID`, `Tag`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `cdkeys` (`CDKey` varchar(8) NOT NULL,`IsBanned` bool NOT NULL default false,PRIMARY KEY (`CDKey`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `characters` (`ID` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,`ServerID` smallint(5) UNSIGNED NOT NULL,`PlayerID` mediumint(8) UNSIGNED NOT NULL,`Name` varchar(32) NOT NULL,`Level` tinyint(3) UNSIGNED NOT NULL default 1,`Race` tinyint(3) UNSIGNED NOT NULL,`Subrace` tinyint(3) UNSIGNED default NULL,`Deity` varchar(32) default NULL,`Gender` tinyint(3) UNSIGNED NOT NULL,`HP` smallint(5) UNSIGNED NOT NULL,`XP` mediumint(8) UNSIGNED NOT NULL default 0,`GP` int(10) UNSIGNED NOT NULL default 0,`Wealth` int(10) UNSIGNED NOT NULL default 0,`Ethics` tinyint(3) UNSIGNED NOT NULL,`Morals` tinyint(3) UNSIGNED NOT NULL,`Class1` smallint(5) UNSIGNED NOT NULL,`Level1` tinyint(3) UNSIGNED NOT NULL default 1,`Class2` smallint(5) UNSIGNED default NULL,`Level2` tinyint(3) UNSIGNED default NULL,`Class3` smallint(5) UNSIGNED default NULL,`Level3` tinyint(3) UNSIGNED default NULL,`STR` tinyint(3) UNSIGNED NOT NULL,`CON` tinyint(3) UNSIGNED NOT NULL,`DEX` tinyint(3) UNSIGNED NOT NULL,`INT` tinyint(3) UNSIGNED NOT NULL,`WIS` tinyint(3) UNSIGNED NOT NULL,`CHA` tinyint(3) UNSIGNED NOT NULL,`Location` varchar(128) default NULL,`Damage` smallint(5) UNSIGNED NOT NULL default 0,`Deaths` smallint(5) UNSIGNED NOT NULL default 0,`Status` int(10) UNSIGNED NOT NULL default 0,`IsOnline` bool NOT NULL default false,`IsDeleted` bool NOT NULL default false,`IsPlayable` bool NOT NULL default true,PRIMARY KEY (`ID`), UNIQUE KEY (`PlayerID`, `Name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `heedspwdata` (`player` varchar(64) NOT NULL,`tag` varchar(64) NOT NULL,`name` varchar(64) NOT NULL,`val` varchar(128) default NULL,`expire` mediumint(8) UNSIGNED NOT NULL default 0,`index` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,PRIMARY KEY (`index`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `ipaddress` (`ID` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,`CDKey` varchar(8) NOT NULL,`IPAddress` varchar(16) NOT NULL,`IsBanned` bool NOT NULL default false,PRIMARY KEY (`ID`), UNIQUE KEY (`CDKey`, `IPAddress`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `item_properties` (`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,`ItemProperty` smallint(5) NOT NULL,`Description` varchar(128) default NULL,`IsIllegal` bool NOT NULL default 0,PRIMARY KEY (`ID`), UNIQUE KEY (`ItemProperty`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `logs` (`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,`ServerID` smallint(5) UNSIGNED NOT NULL,`CharacterID` mediumint(8) UNSIGNED default NULL,`Event` varchar(32) NOT NULL,`Description` varchar(128) default NULL,`Date` timestamp NOT NULL default CURRENT_TIMESTAMP,PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `players` (`ID` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,`CDKey` varchar(8) NOT NULL,`Name` varchar(32) NOT NULL,`FirstLogin` datetime,`LastLogin` datetime,`LastLogout` datetime,`Logins` int(10) UNSIGNED NOT NULL default 0,`TimeOnline` mediumint(8) UNSIGNED NOT NULL default 0,`IsDM` bool NOT NULL default false,`IsBanned` bool NOT NULL default false,PRIMARY KEY (`ID`), UNIQUE KEY(`CDKey`, `Name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `pwdata` (`Name` varchar(64) NOT NULL,`Tag` varchar(64) NOT NULL,`Key` varchar(64) NOT NULL,`Value` varchar(128) default NULL,`Expiration` smallint(5) UNSIGNED NOT NULL default 0,`Last` timestamp NOT NULL default CURRENT_TIMESTAMP,PRIMARY KEY (`Name`, `Tag`, `Key`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `pwobject` (`Name` varchar(64) NOT NULL,`Tag` varchar(64) NOT NULL,`Key` varchar(64) NOT NULL,`Value` varchar(128) default NULL,`Expiration` smallint(5) UNSIGNED NOT NULL default 0,`Last` timestamp NOT NULL default CURRENT_TIMESTAMP,PRIMARY KEY (`Name`, `Tag`, `Key`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `quests` (`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,`ServerID` smallint(5) UNSIGNED NOT NULL,`CharacterID` mediumint(8) UNSIGNED NOT NULL,`PlotID` varchar(32) NOT NULL DEFAULT '',`PlotState` varchar(4) NOT NULL DEFAULT '',PRIMARY KEY (`ID`), UNIQUE KEY(`ServerID`, `CharacterID`, `PlotID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `servers` (`ID` smallint(5) UNSIGNED NOT NULL,`Name` varchar(64) NOT NULL,`IPAddress` varchar(21) NOT NULL,PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: CREATE TABLE IF NOT EXISTS `spelltrack` (`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,`CharacterID` mediumint(11) UNSIGNED NOT NULL,`Class` smallint(5) NOT NULL,`Uses` varchar(128) default NULL,PRIMARY KEY (`ID`), UNIQUE KEY (`CharacterID`, `Class`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664526641 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664526641 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664528440', 0) ON DUPLICATE KEY UPDATE Value='664528440', Expiration=0
* Executing: SELECT pwdata.Name, pwdata.Tag, pwdata.Value, characters.ID, characters.Status FROM characters JOIN players on players.ID=characters.PlayerID JOIN pwdata on pwdata.Name=characters.Name WHERE pwdata.Tag=players.CDKey and pwdata.`Key`='ACR_DTH_LOCATION' and characters.Status = characters.Status | 1
* Returning: #A#sgk_jae_dng_cavel1#X#32.339710236#Y#66.776313782#Z#0.000000006#O#36.074256897 (column 2)
* Returning: KA7HUU74 (column 1)
* Returning: 21 (column 3)
* Returning: 1 (column 4)
* Returning: Kalaine (column 0)
* Returning: #A#sgk_jae_dng_arca1#X#37.158470154#Y#29.817396164#Z#-4.000000000#O#270.460083008 (column 2)
* Returning: KA7HARHW (column 1)
* Returning: 22 (column 3)
* Returning: 1 (column 4)
* Returning: Bronco Mermax (column 0)
* Executing: SELECT * FROM servers WHERE ID=3
* Returning: ALFA 001 Skullport (column 1)
* Returning: 0.0.0.0:5121 (column 2)
* Executing: UPDATE characters SET IsOnline=0
* Executing: SELECT Status FROM characters WHERE id=0
* Executing: SELECT ID FROM item_properties WHERE ItemProperty in (15) and IsIllegal=1
* Executing: SELECT Status FROM characters WHERE id=0
* Executing: SELECT ID FROM item_properties WHERE ItemProperty in (15,11) and IsIllegal=1
* Executing: SELECT IsBanned FROM cdkeys WHERE CDKey='KA7HUU74'
* Returning: 0 (column 0)
* Executing: SELECT IsBanned FROM ipaddress WHERE CDKey='KA7HUU74'
* Returning: 0 (column 0)
* Executing: SELECT ID, IsBanned FROM players WHERE CDKey='KA7HUU74' and Name='indio'
* Returning: 0 (column 1)
* Returning: 1 (column 0)
* Executing: SELECT ID, IsDeleted, IsPlayable FROM characters WHERE PlayerID=1 and Name='odhfo;hodg'
* Returning: 0 (column 1)
* Returning: 1 (column 2)
* Returning: 30 (column 0)
* Executing: INSERT INTO logs (ServerID, CharacterID, Event, Description) VALUES (3,30,'Login','Character: odhfo;hodg')
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_SPELLBOOK'
* Returning: 1 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_STARTINGGOLD'
* Returning: 1 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_STARTARMORX'
* Returning: 1 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_FIRSTAID_IT'
* Returning: 1 (column 0)
* Executing: SELECT ServerID, XP, GP, STR, CON, DEX, `INT`, WIS, CHA, Damage, Location FROM characters WHERE ID=30
* Returning: #A#rivermootinteriorarchives#X#42.081203461#Y#2.555301666#Z#-0.000000000#O#318.898040771 (column 10)
* Returning: 3 (column 0)
* Returning: 0 (column 1)
* Returning: 300 (column 2)
* Returning: 10 (column 3)
* Returning: 16 (column 4)
* Returning: 14 (column 5)
* Returning: 17 (column 6)
* Returning: 11 (column 7)
* Returning: 8 (column 8)
* Returning: 0 (column 9)
* Executing: SELECT Uses FROM spelltrack WHERE CharacterID=30
* Executing: UPDATE characters, players SET characters.IsOnline=1, players.LastLogin=now(), players.Logins=players.Logins+1, players.IsDM=0 WHERE characters.ID=30 and players.ID=characters.PlayerID
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_DTH_LOCATION'
* Executing: SELECT PlotID, PlotState FROM quests WHERE ServerID=3 AND CharacterID=30
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_LOGOUT_TIMER'
* Returning: 664526520 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_HEAL_BONUS'
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_FLAGS'
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_FLAGS'
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_REST_FLAGS', '0', 0) ON DUPLICATE KEY UPDATE Value='0', Expiration=0
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_FLAGS'
* Returning: 0 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_REST_FLAGS', '0', 0) ON DUPLICATE KEY UPDATE Value='0', Expiration=0
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_REST_HEAL_BONUS', '0', 0) ON DUPLICATE KEY UPDATE Value='0', Expiration=0
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_STUDY_TIMER'
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_PRAYER_TIMER'
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_TIMER'
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_REST_TIMER', '11075450', 0) ON DUPLICATE KEY UPDATE Value='11075450', Expiration=0
* Executing: DELETE FROM spelltrack WHERE CharacterID=30
* Executing: UPDATE characters SET ServerID=3, Location='#A#rivermootinteriorarchives#X#42.081203461#Y#2.555301666#Z#-0.000000000#O#318.898040771', Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_XP_BANKED_RPHOURS'
* Returning: 0 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_REST_LOGOUT_TIMER', '664528501', 0) ON DUPLICATE KEY UPDATE Value='664528501', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: UPDATE characters SET IsOnline=0 WHERE ID=30
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_XP_BANKED_RPHOURS'
* Returning: 0 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_XP_BANKED_RPHOURS', '0', 0) ON DUPLICATE KEY UPDATE Value='0', Expiration=0
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664528440 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664528621', 0) ON DUPLICATE KEY UPDATE Value='664528621', Expiration=0
* Executing: SELECT IsBanned FROM cdkeys WHERE CDKey='KA7HUU74'
* Returning: 0 (column 0)
* Executing: SELECT IsBanned FROM ipaddress WHERE CDKey='KA7HUU74'
* Returning: 0 (column 0)
* Executing: SELECT ID, IsBanned FROM players WHERE CDKey='KA7HUU74' and Name='indio'
* Returning: 0 (column 1)
* Returning: 1 (column 0)
* Executing: SELECT ID, IsDeleted, IsPlayable FROM characters WHERE PlayerID=1 and Name='odhfo;hodg'
* Returning: 0 (column 1)
* Returning: 1 (column 2)
* Returning: 30 (column 0)
* Executing: INSERT INTO logs (ServerID, CharacterID, Event, Description) VALUES (3,30,'Login','Character: odhfo;hodg')
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_SPELLBOOK'
* Returning: 1 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_STARTINGGOLD'
* Returning: 1 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_STARTARMORX'
* Returning: 1 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_MOD_FIRSTAID_IT'
* Returning: 1 (column 0)
* Executing: SELECT ServerID, XP, GP, STR, CON, DEX, `INT`, WIS, CHA, Damage, Location FROM characters WHERE ID=30
* Returning: #A#rivermootinteriorarchives#X#42.081203461#Y#2.555301666#Z#-0.000000000#O#318.898040771 (column 10)
* Returning: 3 (column 0)
* Returning: 0 (column 1)
* Returning: 300 (column 2)
* Returning: 10 (column 3)
* Returning: 16 (column 4)
* Returning: 14 (column 5)
* Returning: 17 (column 6)
* Returning: 11 (column 7)
* Returning: 8 (column 8)
* Returning: 0 (column 9)
* Executing: SELECT Uses FROM spelltrack WHERE CharacterID=30
* Executing: UPDATE characters, players SET characters.IsOnline=1, players.LastLogin=now(), players.Logins=players.Logins+1, players.IsDM=0 WHERE characters.ID=30 and players.ID=characters.PlayerID
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_DTH_LOCATION'
* Executing: SELECT PlotID, PlotState FROM quests WHERE ServerID=3 AND CharacterID=30
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_REST_LOGOUT_TIMER'
* Returning: 664528501 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_XP_BANKED_RPHOURS'
* Returning: 0 (column 0)
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664528621 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664528860', 0) ON DUPLICATE KEY UPDATE Value='664528860', Expiration=0
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664528860 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664529041', 0) ON DUPLICATE KEY UPDATE Value='664529041', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Location='#A#rivermootinteriorarchives#X#39.456722260#Y#4.020848274#Z#-0.000000000#O#148.940048218', Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664529041 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664529280', 0) ON DUPLICATE KEY UPDATE Value='664529280', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Location='#A#rivermootinteriorarchives#X#39.456722260#Y#4.020848274#Z#-0.000000000#O#148.940048218', Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_XP_BANKED_RPHOURS', '1', 0) ON DUPLICATE KEY UPDATE Value='1', Expiration=0
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664529280 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664529461', 0) ON DUPLICATE KEY UPDATE Value='664529461', Expiration=0
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664529461 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664529700', 0) ON DUPLICATE KEY UPDATE Value='664529700', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Location='#A#rivermootinteriorarchives#X#26.464044571#Y#1.617755651#Z#-0.000000000#O#176.701583862', Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664529700 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664529881', 0) ON DUPLICATE KEY UPDATE Value='664529881', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Location='#A#rivermootinteriorarchives#X#26.464044571#Y#1.617755651#Z#-0.000000000#O#176.701583862', Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664529881 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664530120', 0) ON DUPLICATE KEY UPDATE Value='664530120', Expiration=0
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_XP_BANKED_RPHOURS', '2', 0) ON DUPLICATE KEY UPDATE Value='2', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Location='#A#rivermootinteriorarchives#X#32.253540039#Y#2.097861528#Z#-0.000000000#O#5.208292961', Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Value FROM pwdata WHERE Name='Skullport' and Tag='alfa01' and `Key`='ACR_TIME_SERVERTIME'
* Returning: 664530120 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('Skullport','alfa01','ACR_TIME_SERVERTIME', '664530301', 0) ON DUPLICATE KEY UPDATE Value='664530301', Expiration=0
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_REST_LOGOUT_TIMER', '664530420', 0) ON DUPLICATE KEY UPDATE Value='664530420', Expiration=0
* Executing: UPDATE characters SET ServerID=3, Level=1, Deity='No Deity', HP=7, XP=0, GP=300, Morals=85, Ethics=85, Damage=0, Class1=10, Class2=255, Class3=255, Level1=1, Level2=0, Level3=0, STR=10, CON=16, DEX=14, `INT`=17, WIS=11, CHA=8 WHERE ID=30
* Executing: SELECT Status FROM characters WHERE id=30
* Returning: 0 (column 0)
* Executing: UPDATE characters SET IsOnline=0 WHERE ID=30
* Executing: SELECT Value FROM pwdata WHERE Name='odhfo;hodg' and Tag='KA7HUU74' and `Key`='ACR_XP_BANKED_RPHOURS'
* Returning: 2 (column 0)
* Executing: INSERT INTO pwdata (Name, Tag, `Key`, Value, Expiration) VALUES ('odhfo;hodg','KA7HUU74','ACR_XP_BANKED_RPHOURS', '2', 0) ON DUPLICATE KEY UPDATE Value='2', Expiration=0

Posted: Thu May 22, 2008 4:05 pm
by AcadiusLost
indio wrote:I'm trialling the 1.09 NWNX4 with auto reconnect. Looks good so far. We'll see.
indio wrote:Seems quite robust. Hasn't lost connectivity once and it just feels a whole lot steadier than previous iterations.
indio wrote:this is from 1.08. I switched back to it when 1.09 didn't work. Mind you, it looks good on paper, but in game, I cannot get it to recognise variables.
A little confused- it connects and stays connected, but doesn't read or write persistency data? If this is the case, I'm doubly interested in a logfile from xp_mysql 0.0.0.9, to try to figure out what's going wrong.

Posted: Thu May 22, 2008 8:50 pm
by indio
I'll do one tonight for you. Real problem is that now I can't even connect with 1.08.