Re: [Sqlrelay-discussion] What are cursors and how many do I need?
Brought to you by:
mused
|
From: David M. <dav...@fi...> - 2006-07-26 03:56:30
|
Yes, cursors="38" means that each connection to the database will open
38 cursors, each of which has a pretty large buffer for processing
result sets. SQL Relay doesn't impose any limit for the number of
cursors, but it's possible that more than 38 cursors is using up too
much ram, or that the database is running out of resources and
terminating the connection.
Dave
dav...@fi...
On Mon, 2006-07-24 at 19:54 -0700, Stephen Carville wrote:
> For anyone who might search for this issue, it looks like "cursors" is a
> per connection specification and there is a limit of 38 per connection.
> At least sqlrelay (0.37) terminates the connection if I try to specify
> more.
>
> Stephen Carville wrote:
> > I'm new to using sqlrelay to connect to an Oracle 10g database and this
> > is the first day in full production. Every once in a while I get a
> > strange error that looks like I have a connection to an instance but I
> > canno toproicess any SQL. From the log generated by DBI:
> >
> > -> prepare for DBD::SQLRelay::db (DBI::db=HASH(0x8e24758)~0x8e24a88
> > 'select
> > 1 from dual') thr#8a610081
> > <- FETCH= ( SQLRelay::Connection=SCALAR(0x8e24c08) ) [1 items]
> > ('driver_connection' from cache) at SQLRelay.pm line 138
> > -> STORE for DBD::SQLRelay::st (DBI::st=HASH(0x8e24b78)~0x9179278
> > 'driver_database_handle' DBI::db=HASH(0x8e24a88)) thr#8a61008
> > <- STORE= 1 at SQLRelay.pm line 145
> > -> STORE for DBD::SQLRelay::st (DBI::st=HASH(0x8e24b78)~0x9179278
> > 'NUM_OF_PARAMS' 0) thr#8a61008
> > <- STORE= 1 at SQLRelay.pm line 146
> > -> STORE for DBD::SQLRelay::st (DBI::st=HASH(0x8e24b78)~0x9179278
> > 'driver_is_select' 1) thr#8a61008
> > <- STORE= 1 at SQLRelay.pm line 147
> > -> STORE for DBD::SQLRelay::st (DBI::st=HASH(0x8e24b78)~0x9179278
> > 'driver_cursor' SQLRelay::Cursor=SCALAR(0x8e24cf8)) thr#8a61008
> > <- STORE= 1 at SQLRelay.pm line 148
> > -> STORE for DBD::SQLRelay::st (DBI::st=HASH(0x8e24b78)~0x9179278
> > 'NUM_OF_PARAMS' 0) thr#8a61008
> > <- STORE= 1 at SQLRelay.pm line 158
> > <- prepare= DBI::st=HASH(0x8e24b78) at sql.pm line 185
> > -> execute for DBD::SQLRelay::st
> > (DBI::st=HASH(0x8e24b78)~0x9179278) thr#8a610081
> > <- FETCH= SQLRelay::Cursor=SCALAR(0x8e24cf8) ('driver_cursor' from
> > cache) at SQLRelay.pm line 349
> > -> $DBI::errstr (&) FETCH from lasth=HASH
> > >> DBD::SQLRelay::st::errstr
> > <- $DBI::errstr= undef
> >
> > Looks to me like there is no "driver_cursor" to handle the job.
> >
> > I've set in sqlrelay.conf:
> >
> > connections="10"
> > maxconnections="32"
> > cursors="32"
> >
> > Am I barking up the wrong tree here?
> >
>
>
|