Hi all, A merry christmas and a great new year to all of you. I am trying to implement LCR in my openser 1.1. My problem is that I have around 40,000 prefix patterns which i need to enter into the LCR table. When I populate my LCR table and try to start my openser it dies. I can see the following messages in my log:
convert_row: No memory left convert_rows: Error while converting row #9055 convert_result: Error while converting rows store_result: Error while converting result lcr_reload_gws(): Failed to query lcr data ERROR: lcr:mod_init(): failed to reload gateways and routes init_mod(): Error while initializing module lcr
The openser starts properly when I tested with 1000 rows in the LCR table but with 40,000 rows it just dies. Can anyone please help me overcome this issue. Is there any parameter available to make openser properly run with these many rows in the LCR table. I am using the LCR in db_only mode. I have not tried this in caching mode. Will the caching mode work with these many rows??
w/regards, jayesh.
Send free SMS to your Friends on Mobile from your Yahoo! Messenger. Download Now! http://messenger.yahoo.com/download.php
X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] the error messages you get are coming from this statement:
if (lcr_dbf.query(dbh, NULL, 0, NULL, lcr_cols, 0, 4, 0, &res) < 0) { LOG(L_ERR, "lcr_reload_gws(): Failed to query lcr data\n"); lcr_dbf.close(dbh); return -1; }
i don't know which kind of memory db queries reserve. if shared memory, you can start openser with larger -m parameter value. if pkg memory, you need to edit PKG_MEM_POOL_SIZE in config.h and recompile openser.
with lots of lcr entries and no caching, performance may be bad. if you use caching then you need to increase value of
#define MAX_NO_OF_LCRS 256
in lcr_mod.c and recompile lcr module. increasing MAX_NO_OF_LCRS means that more shared memory will be used so you may also need to start openser with larger -m parameter value.
-- juha