ippool-dhcp and Oracle
Бен Томпсон
b.thompson at latera.ru
Mon Mar 25 06:36:07 CET 2013
2013/3/25 Alan DeKok <aland at deployingradius.com>:
> Бен Томпсон wrote:
>> The SQL statement "START TRANSACTION" looks to be hard coded into
>> rlm_sqlippool.c but I don't know enough about Oracle etiher to say why
>> it is flagged as an error.
>
> It's a configuration item. You can change it by editing the queries,
> and adding:
>
> allocate-begin = "..."
> allocate-commit = "..."
> allocate-rollback = "..."
Thanks again for the info. I have figured it out now, and after
looking at the queries.conf for for the standard sqlippool module
added this to my queries.conf :
# Commit anything outstanding before beginning a new batch of transactions
allocate-begin = "COMMIT"
start-begin = "COMMIT"
alive-begin = "COMMIT"
stop-begin = "COMMIT"
on-begin = "COMMIT"
off-begin = "COMMIT"
I also tried pulled the latest git commit this morning and now I have
a new couple of new errors :-
(0) dhcp_sqlippool : expand: 'SELECT framedipaddress FROM radippool
WHERE pool_name = '%{control:Pool-Name}' AND expiry_time <
CURRENT_TIMESTAMP AND ROWNUM <= 1 ORDER BY CASE WHEN username =
'%{User-Name}' THEN 0 ELSE 1 END, CASE WHEN callingstationid =
'%{Calling-Station-Id}' THEN 0 ELSE 1 END, expiry_time FOR UPDATE'
-> 'SELECT framedipaddress FROM radippool WHERE pool_name =
'test_ip_pool' AND expiry_time < CURRENT_TIMESTAMP AND ROWNUM <= 1
ORDER BY CASE WHEN username = 'DHCP-00:0c:29:a6:a0:e7' THEN 0
ELSE 1 END, CASE WHEN callingstationid = '00:0c:29:a6:a0:e7' THEN
0 ELSE 1 END, expiry_time FOR UPDATE'
rlm_sql (sql): Executing query: 'SELECT framedipaddress FROM radippool
WHERE pool_name = 'test_ip_pool' AND expiry_time < CURRENT_TIMESTAMP
AND ROWNUM <= 1 ORDER BY CASE WHEN username =
'DHCP-00:0c:29:a6:a0:e7' THEN 0 ELSE 1 END, CASE WHEN
callingstationid = '00:0c:29:a6:a0:e7' THEN 0 ELSE 1 END,
expiry_time FOR UPDATE'
rlm_sql_oracle: OCIDefineByPos() failed in sql_select_query:
ORA-24424: Invalid attempt to define at position 0
rlm_sql (sql): Database query error 'ORA-24424: Invalid attempt to
define at position 0 '
sqlippool_query1: database query error
(0) dhcp_sqlippool : expand: 'COMMIT' -> 'COMMIT'
rlm_sql (sql): Executing query: 'COMMIT'
(0) dhcp_sqlippool : escape: 'test_ip_pool' -> 'test_ip_pool'
(0) dhcp_sqlippool : expand: 'SELECT id FROM (SELECT id FROM
radippool WHERE pool_name = '%{control:Pool-Name}') WHERE ROWNUM = 1'
-> 'SELECT id FROM (SELECT id FROM radippool WHERE pool_name =
'test_ip_pool') WHERE ROWNUM = 1'
rlm_sql (sql): Executing query: 'SELECT id FROM (SELECT id FROM
radippool WHERE pool_name = 'test_ip_pool') WHERE ROWNUM = 1'
rlm_sql_oracle: OCIDefineByPos() failed in sql_select_query:
ORA-24424: Invalid attempt to define at position 0
rlm_sql (sql): Database query error 'ORA-24424: Invalid attempt to
define at position 0 '
sqlippool_query1: database query error
I am not sure what is happening here so I will have to do some reading.
More information about the Freeradius-Users
mailing list