Papadopoulos Georgios wrote:
Hello,
First of all congratulations to everyone involved in the new release. I
haven't been able to get my hands on it yet, but just reading about it
makes me very excited. Great job!
I would like to address the issue of Openser and Oracle working
together. We are currently using Openser with a local MySQL. Our main
database is Oracle and we are just copying data to MySQL so that Openser
can work. This is a little difficult to maintain so I thought I would
try to make Openser use directly our Oracle. Of course I ran into a
number of issues.
1. modules/acc and unixodbc. The acc_db_request() was not working
because inserting a string in a date column does not work with Oracle.
So, I had to change functions time2str() and time2odbc() in order to
make this work. Also had to change acc.c to treat column time as DB_TIME
instead of DB_STR (I think this could be treated as a bug).
2. modules/lcr. The query uses char_length() and rand() which I had to
replace with lengthc() and dbms_random.value. Should these be modules
params?
Hi!
I guess oracle allows the defintion of new function. Then you could
write the functions char_length() and rand() which would be just
wrappers to lengthc() and dbms_random.value.
3. modules/avpops. All issues were resolved by config
changes and
replacing avp_db_load() with avp_db_query().
Be careful - raw queries are vulnerable to SQL injection!!!
4. modules/auth_db, alias_db, uri_db, group. Since
MySQL is case
insensitive and Oracle is not, I made changes in the code to use
raw_query() instead of query(). All queries have to be in the form
"select ... from ... where username=upper(...)"
Again: Be careful - raw queries are vulnerable to SQL injection!!!
I would be happy to provide patches and help in any way in order to make
this migration easier in the future. However I am not sure whether my
changes are general enough for everybody to use. So, do you have any
suggestions about how to deal with these issues?
There is a oracle module in ser - you could port it to openser ;-)
regards
klaus
Another issue that came up is the number of
connections from Openser to
the database. In our case, listening to five interfaces, with tcp
disabled and children=5, we get 28 connections to DB which is a great
waste of resources. From those five interfaces, one is receiving the
bulk of traffic and the rest receive minimal traffic. Since each child
has its own connection, then what is the purpose of connection pooling?
How difficult would it be to have a common connection pool for all
children?
sorry for the long email and thank you in advance for any answer.
George
Disclaimer
The information in this e-mail and any attachments is confidential. It is intended solely
for the attention and use of the named addressee(s). If you are not the intended
recipient, or person responsible for delivering this information to the intended
recipient, please notify the sender immediately. Unless you are the intended recipient or
his/her representative you are not authorized to, and must not, read, copy, distribute,
use or retain this message or any part of it. E-mail transmission cannot be guaranteed to
be secure or error-free as information could be intercepted, corrupted, lost, destroyed,
arrive late or incomplete, or contain viruses.
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
--
Klaus Darilion
nic.at