wayneshearer has asked for the wisdom of the Perl Monks concerning the following question:
My question concerns the DBD:Informix. If I prepare and execute a stored procedure call, does that start a transaction in Informix? It seems to, in that I am creating a ton of locks, but when I do the same EXECUTE PROCEDURE in dbaccess, those locks aren't created. The stored procedure (in SPL) does a lot but it's basically a FOREACH cursor FOR SELECT ... WITH HOLD. But I am not using the UPDATE WHERE CURRENT clause, to prevent all the locking. I have a BEGIN WORK right after the FOREACH statement and a COMMIT WORK just before the END FOREACH statement. This wouldn't be apparent except I'm dealing with almost 2 million rows in the FOREACH. With promotable locks and such we run out of locks. This does not happen if I do this manually from dbaccess. I do pass 3 integer parameters in the procedure call but the procedure doesn't return any values.
Thanks,
Wayne
|
|---|