Informix error -465 No more memory for locator buf
Posted in 2011
A user exporting ~35,000 BYTE/blob values to files on Windows 2008 with IDS 11.50 hit error -465 "No more memory for locator buffer" after about 25,000 files. The export was driven by an old SuperNova 4GL program, and Jonathan Leffler suggested the likely cause was SuperNova leaking memory rather than the server, recommending unloading blobs directly to disk instead. The user switched to the LOTOFILE() function, which worked; to stop Informix appending a hex suffix to the filename, Martin Fuerderer advised ending the filename with an exclamation mark (e.g. '/tmp/test.doc!'), which solved it.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: General Discussion
Hi, while trying to export a large number of files (from byte fields) from informix I get the error -465 No more memory for locator buffer. I then have about 25000 files on the file system but there are still 10000 files which are not exported. The error occurs in the online log but I don´t really know which "buffer" is meant. Maybe someone can give me some hints to solve the problem? Thanks draught
On Sun, Jul 3, 2011 at 23:26, HANS MEYER <drinxx@gmx.net> wrote: > While trying to export a large number of files (from byte fields) from > informix I get the error -465 No more memory for locator buffer. > I then have about 25000 files on the file system but there are still 10000 > files which are not exported. The error occurs in the online log but I > don´t > really know which "buffer" is meant. Maybe someone can give me some hints > to > solve the problem? > Can you give some more context? Which platform? Which version of IDS? Which program are you using to do the exporting? Did you write the code, or is the code provided by Informix? -- Jonathan Leffler <jonathan.leffler@gmail.com> #include <disclaimer.h> Guardian of DBD::Informix - v2011.0612 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused." --005045015a665ac39104a738fa82
It´s a Windows 2008 Server Standard with Informix IDS 11.50.TC5WE. The export is handled by a program written in SuperNova (realy old) so I don´t know how the export is handled at all. I found some statements to select a blob field to files system. Is there anything like that for byte fields? Thanks!
In response to this message from me (responding to Hans): On Sun, Jul 3, 2011 at 23:26, HANS MEYER <drinxx@gmx.net> wrote: > > > While trying to export a large number of files (from byte fields) from > > informix I get the error -465 No more memory for locator buffer. > > I then have about 25000 files on the file system but there are still > 10000 > > files which are not exported. The error occurs in the online log but I > > don´t > > really know which "buffer" is meant. Maybe someone can give me some hints > > to > > solve the problem? > > > > Can you give some more context? Which platform? Which version of IDS? > Which program are you using to do the exporting? > > Did you write the code, or is the code provided by Informix? > On Mon, Jul 4, 2011 at 04:42, HANS MEYER <drinxx@gmx.net> wrote: > It's a Windows 2008 Server Standard with Informix IDS 11.50.TC5WE. > The export is handled by a program written in SuperNova (realy old) so I > don't > know how the export is handled at all. > > I found some statements to select a blob field to files system. Is there > anything like that for byte fields? > I remember a product called SuperNova that was an integrated IDE and 4GL, but I've not seen or heard of it for quite a while. Since the export is being handled by SuperNova, the problem is most likely that SuperNova is not releasing memory as it should. Have you done this export before? Has either the number of blobs or the size of the blobs to be exported increased recently? If it worked before and doesn't now, what has changed? If it never has worked, then you should look at how the exporting code is written, and see whether writing the blobs to file is an option. Most likely, 'blob' refers to both BYTE and TEXT, and probably not to either BLOB or CLOB. So, if there is a way to get the blobs unloaded to disk, you may find there is less memory leakage. You may end up with some cleanup work to do on the blob files, of course. -- Jonathan Leffler <jonathan.leffler@gmail.com> #include <disclaimer.h> Guardian of DBD::Informix - v2011.0612 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused." --001636284e221074ba04a740260c
Hi Jonathan, thanks for your replies! I just tried the LOTOFILE function on my BLOB fields an it really working! I found it on stackoverflow.com posted by you ;) This way would also work for me. But know the problem is the file name. When I use this statement: SELECT LOTOFILE(byteblob_blob, '/tmp/test.doc', 'server') FROM byteblob WHERE byteblob_name MATCHES 'D689'; I get a file named test.doc.000000004e12bf8c. Is there a way to get rid (I think that my statement isn´t correct at all) of this hex at the end? Thanks!
Hi, I think the solution to avoid that filename extension is to add an exclamation mark to the end of the given file name. In your example it would look like this: SELECT LOTOFILE(byteblob_blob, '/tmp/test.doc!', 'server') ... Regards, Martin -- Martin Fuerderer IBM Informix Development Munich, Germany Information Management Read about the Informix Warehouse Accelerator: http://tinyurl.com/the-iwa-blog IBM Deutschland Research & Development GmbH Chairman of the Supervisory Board: Martin Jetter Board of Management: Dirk Wittkopp Corporate Seat: Boeblingen, Germany Reg.-Gericht: Amtsgericht Stuttgart, HRB 243294 ids-bounces@iiug.org wrote on 07/05/2011 09:51:40 AM: > > Hi Jonathan, > thanks for your replies! > I just tried the LOTOFILE function on my BLOB fields an it really working! > I found it on stackoverflow.com posted by you ;) > > This way would also work for me. But know the problem is the file name. When I > use this statement: > > SELECT LOTOFILE(byteblob_blob, '/tmp/test.doc', 'server') > FROM byteblob > > WHERE byteblob_name MATCHES 'D689'; > > I get a file named test.doc.000000004e12bf8c. Is there a way to get rid (I > think that my statement isn´t correct at all) of this hex at the end? > > Thanks! > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. >
I thought it was that simple ;) Works great! Thanks for all your replies!!!