After having a bug report open for 8 month in CCP’s bug tracking system without getting updates about the progress I’ll try to sum up the problems and give my readers some information about my problems with updates, sovereignty API and background work.
The Problem: Outdated exports:
I usually start 2 hours after downtime to load sovereignty and alliance information. I found out that it’s pretty common that CCP don’t flush their API caches during downtime and even up to 4 hours after the official downtime, their servers are still delivering outdated sov data from the day before. With a CachedUntil Timer for 6 hours for the sov data, this server/ip isn’t allowed to query anymore. To fix this issue I’m happy that to be able to use several IP addresses to query the API Servers without running into a cached -until-loop. I’m starting with 14 GMT time and then retry each hour until midnight or I got a valid and udpated sov export from the new day.
The XML Files are looking something like this in such cases.
<currentTime>2009-03-02 14:00:12</currentTime>
<dataTime>2009-03-02 08:51:25</dataTime>
<cachedUntil>2009-03-02 20:00:12</cachedUntil>
That’s the reason why it sometimes took hours until my websites gets updated. This bug was reported 8 month ago, it’s attached to a known defect, which is still open.
The latest issue: Wrong data exports
After my scripts are doing several requests, spreaded over several ips (the api caches are per ip-only) I could lean back and start ignoring CCP’s lazyness to fix this problems. But yesterday I CCP was delivering false data. At 14 o’clock I got a valid sovereignty export with a DataTime stamp as well 14 o’clock. Sounds good? Of course … but the main issue was that this data which was tagged as updated after downtime were the unchanged sovereignty situation from the day before.
This caused my database to update the history table and ends with no sovereignty changes for day 27.05.2009. A manual sov import some hours later ended in really strange results and forced me to load a sql backup from the day before and reimport the current sovereignty export.
<currentTime>2009-05-27 14:00:09</currentTime>
<dataTime>2009-05-27 14:00:09</dataTime>
<cachedUntil>2009-05-27 20:00:09</cachedUntil>
Dear CCP
Please fix your API Servers. Restart/Reload the API Servers or just flush the caches during or after downtime will do the job and everybody who’s using sovereignty data will be happy. It’s one simple cronjob … oh I forgot you’re using windows, but there’s a task/schedule planer too :-))