Duplicate requests in a session
Guy Fraser
guy at incentre.net
Thu Aug 31 17:19:25 CEST 2006
On Thu, 2006-08-31 at 12:31 +0300, Peter Nixon wrote:
> Good question. Does anyone have anything against changing this?
>
> -Peter
>
> On Thu 31 Aug 2006 10:11, Santiago Balaguer García wrote:
> > Thanks James, I don't figure out to use primary key solves the problem of
> > duplicate keys.
> > I had in radacct as primary key <<radacctid>> but now I am going to have
> > <<acctuniqueid>>.
> >
> > This proble cause a new thread: why radacctid is the primary key of radacct
> > table instead od acctuniqueid?
I used a slightly different solution in my PostgreSQL implementation :
ALTER TABLE ONLY radacct
ADD CONSTRAINT radacct_unique_session UNIQUE (
username, nasipaddress, nasportid, acctsessionid
);
NOTE: When duplicate records come in you will see errors in the
log file like these :
Fri Jul 7 13:06:47 2006 : Error: rlm_sql (sql): failed after re-connect
Fri Jul 7 13:06:47 2006 : Error: rlm_sql (sql): Couldn't insert SQL
accounting START record - ERROR: duplicate key violates unique
constraint "radacct_unique_session"
These errors are mostly informational, because when the insert
fails, rlm_sql will use the alternate "update" method and will
succeed.
This is the same method I used on a customized Cistron
server I used for over 5 years and had no problems.
For some reason acctuniqueid was not unique in the duplicate
packets, so my initial attempts at using it were unsuccessful.
PostgreSQL can have a primary key that spans multiple
columns, and would look like this {IIRC} :
ALTER TABLE ONLY radacct
ADD CONSTRAINT radacct_pkey_session PRIMARY KEY (
username, nasipaddress, nasportid, acctsessionid
);
I did not use this, because I did not want to significantly change
the default configuration of most of the tables. Once I get a chance
to clean up the admin interface I have been developing I will
likely want to add some changes to the PostgreSQL default schema
that will allow better management without affecting the default
configuration, but since I am not finished I don't want to add
the changes to CVS quite yet.
> >
> > >From: James Wakefield <jamesw at deakin.edu.au>
> > >Reply-To: FreeRadius users mailing list
> > ><freeradius-users at lists.freeradius.org>
> > >To: FreeRadius users mailing list <freeradius-users at lists.freeradius.org>
> > >Subject: Re: Duplicate requests in a session
> > >Date: Wed, 30 Aug 2006 22:07:09 +1000
> > >
> > >Santiago Balaguer García wrote:
> > >>Hi people,
> > >>
> > >>1)
> > >> In my activity I realize that when the conexion to Internet of a NAS is
> > >>NOT good (there are some reday in the DSL), the NAS send several Start
> > >>requests. My problen is my RADIUS server ask for all these requests and
> > >>they are inserted in my DB. So, when the user or the NAS finalize the
> > >>session and NAS sends Stop Request, the credit associates to the user
> > >>account is decremented several times. It happens so because I put a
> > >> trgger in my DB to decrement the user credit atomatically.
> > >>
> > >> Can I avoid the problem of inserting several times the start request?
> > >> If it is so, how??
> > >>
> > >>2) Is it supposed that the value of acctsessionid and acctuniqueid in
> > >>radacct table are UNIQUE and they can not be duplicated ?
> > >>
> > >>Thanks,
> > >> Santiago
> > >
> > >Hi Santiago,
> > >
> > >Does your DBMS enforce primary key constraints? Do you have a primary key
> > >defined for your radacct table? If I recall correctly, MySQL by default
> > >doesn't, are you using MySQL?
> > >
> > >Cheers,
> > >--
> > >James Wakefield,
> > >Unix Administrator, Information Technology Services Division
> > >Deakin University, Geelong, Victoria 3217 Australia.
> > >
> > >Phone: 03 5227 8690 International: +61 3 5227 8690
> > >Fax: 03 5227 8866 International: +61 3 5227 8866
> > >E-mail: james.wakefield at deakin.edu.au
> > >Website: http://www.deakin.edu.au
> > >- List info/subscribe/unsubscribe? See
> > >http://www.freeradius.org/list/users.html
> >
> > _________________________________________________________________
> > Acepta el reto MSN Premium: Protección para tus hijos en internet.
> > Descárgalo y pruébalo 2 meses gratis.
> > http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_proteccionin
> >fantil
> >
> > -
> > List info/subscribe/unsubscribe? See
> > http://www.freeradius.org/list/users.html
>
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
--
Guy Fraser
Network Administrator
The Internet Centre
1-888-450-6787
(780)450-6787
More information about the Freeradius-Devel
mailing list