Le 29/11/2011 10:20, Fajar A. Nugraha a écrit :
On Tue, Nov 29, 2011 at 3:57 PM, Alan DeKok<[email protected]>  wrote:
Alexandre Chapellon wrote:
I don't understand what you mean by "writing a detailed state
machine"... state machine?
  Write down what the server receives, and what you want to do with it.
  The server receives accounting on/off start/stop and alive packets.
It can receive those when a session is non-existent, open, or closed.

  How does the server determine the "right" thing to do?  Write down the
logic.  Then, implement it.
For comparison purposes, we currently implement some config and db
schema modifications to better handle accounting packets. For example:
- always return ok on accounting packets that the NAS sends.
Implementing it requires using detail reader/writer and some unlang
blocks to catch some weird corner cases (e.g. Acct-Session-Time=0)
- use unique constraint on acctuniqueid
- remove all *_alt queries
- split "live" accounting table (those with Acct-Status-Type<>
'Stop') and "archive" accounting table
- change most insert/update queries to "INSERT .... ON DUPLICATE KEY
UPDATE ...."
- use "DELETE IGNORE" to delete records from "live" accounting table

Took some effort, but it works. @Alexandre: some of the logic might be
relevant for your situation as well.
Yes indeed, "INSERT... ON DUPLICATE KEY UPDATE" and "DELETE IGNORE" really sound like my holy graal.
Will forward this to my dba asap! Thank you!

Regards

@Fajar: I'm eating quite a bit of your time on different mailing lists lately :)! thank you again.
--
<http://www.horoa.net>

Alexandre Chapellon

Ingénierie des systèmes open sources et réseaux.
Follow me on twitter: @alxgomz <http://www.twitter.com/alxgomz>

-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to