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