Re: Memory problems with dbcmd
Alberto Pulvirenti <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <CAJNp6N3tbXidcTW9iaEM6Lo+wxCLOFTTCHL9n1BsH+7zGx6u+w@mail.gmail.com> |
Hi, maybe I forgot to clarify a point. The failure I mention refers to the function dbcmd(). I checked with a personal MS SQL Server I use for testing and I saw that when the connection is faulty or the DB server is down, what happens is that either the dbsqlsend() fails (and then I catch it) or the dbsqlok() stays pending for a long time. Whenever I try to switch off the server, it stops always there, never at the dbcmd() level. In all the documentations I see, when dbcmd fails it is always explained as a memory problem, and it happens before one tries to send to the server itself. That's what confused me. It is surely possible that in a moment a memory occupancy spike took place which caused this momentary failure (because, maybe I didn't stress this point, but this failure was not a persistent condition, it happened just once or twice and then the communication succeeded). Thanks for any advice. Alberto 2012/12/4 Frediano Ziglio <[email protected]> > 2012/12/4 Alberto Pulvirenti <[email protected]>: > > Dear all, > > > > unfortunately, searching on google seemed to be unsuccessful for this, > and > > I didn't find any help looking ad previous discussions (maybe since I > > subscribed this mailing list). > > > > I have manage to set up a connection to a MS SQL database server using > > freeTDS, but it sometimes (seldom, fortunately) happens that a dbcmd > fails. > > Looking at the various documentations, it should be a problem of memory > > allocation, but this happened even for extremely simple queries like a > > "begin transaction", and not always for the same query: it just happened > in > > a given moment, and it was not either possible to reproduce this problem, > > but I remained afraid that it can appear again. > > I don't really understand how can dbcmd fail with such a simple query > when > > the machine is not stuck (which I would think if it is a problem is so > > serious that even such a small string cannot be allocated). > > > > The MS SQL server stays in another machine to which I must connect > through > > network, although it is a machine internal to the location where all this > > stuff runs. Can it happen that a sudden and momentary communication > failure > > causes dbcmd() to fail? Or its failure are only due to memory allocation > > problems? > > > > Is there any way I can adopt to deeper check this problem? > > > > Thanks > > > > Alberto > > Personally I would exclude a memory problem. If the system fails to > allocate few bytes of memory you should note other problems (unless > you set some limits on your program for instance using PHP module > which limit memory itself). > > It's possible that connection got broken for some reason (a simple > service restart or a backup schedule which put database in some > particular state). Or even that server disconnect you cause you where > idle for too time (see recent keepalive discussion). > > Frediano > _______________________________________________ > FreeTDS mailing list > [email protected] > http://lists.ibiblio.org/mailman/listinfo/freetds >