Roleigh Martin writes:
> We have a DBI perl program that after about 5,000 deletes we get this
> error message -- something similar happened with another program that did
> about 5,000 updates. The update program worked around the problem by
> removing use of the second database handle. The program logic basically
> has a parent SQL select command that uses one database handle to get a
> list of unique index keys of records to update, then inside a while fetchrow
> next record loop, it does the update or delete for only one database record
> at a time to minimize database locking.
I answered this on the other list where you posted - did you not see
that message?
Anyway - if the select and the delete/update happen on the same tables
you risk deadlocks with the algorithm you are using.
> This is the error message:
>
> DBD::Sybase::db prepare failed: OpenClient message: LAYER = (6) ORIGIN = (8)
> SEVERITY = (5) NUMBER = (1) Message String: ct_connect(): directory service
> layer: internal directory control layer error: There was an error encountered
> while binding to the directory service.
My guess is that you are opening/closing a *large* number of
connections. There is a known memory leak associated with that (I'm
not sure if it's in DBD::Sybase or OpenClient). I suspect that this is
what is the source of the problem.
Michael
--
Michael Peppler - Data Migrations Inc. - [EMAIL PROTECTED]
http://www.mbay.net/~mpeppler - [EMAIL PROTECTED]
International Sybase User Group - http://www.isug.com
Sybase on Linux mailing list: [EMAIL PROTECTED]