473,786 Members | 2,607 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

LOB Locator Limit Exceeded

I am trying to read BLOBs from a large table (i.e., greater than 34K
rows) using Java and the IBM JDBC driver (actually through an
Application server).
I get the following:

[IBM][CLI Driver][DB2/LINUX] SQL0429N The maximum number of
concurrent LOB locators has been exceeded. SQLSTATE=54028

I understand that the LOB locators are pointers to the BLOBs, but is
there any way to free them explicitly, or get the server to do it ?

I have tried the workarounds (e.g., cursor hold/commit, set the driver
property materializeLobD ata to true, read out as binary stream or
bytes, etc.) None of these work.

It is hard to believe that there isn't a way around this. Wouldn't
the situation I have be quite common when working with large datasets
(e.g., spatial data ) ?

Any advice would be graciously accepted...

Thanks...

Mike
Nov 12 '05 #1
6 7379
as far as i know, you can have 32000 concurrent locators.
There is a FREE locator statment you may try.
"tigr" <se*********@ya hoo.com> a écrit dans le message de
news:17******** *************** ***@posting.goo gle.com...
I am trying to read BLOBs from a large table (i.e., greater than 34K
rows) using Java and the IBM JDBC driver (actually through an
Application server).
I get the following:

[IBM][CLI Driver][DB2/LINUX] SQL0429N The maximum number of
concurrent LOB locators has been exceeded. SQLSTATE=54028

I understand that the LOB locators are pointers to the BLOBs, but is
there any way to free them explicitly, or get the server to do it ?

I have tried the workarounds (e.g., cursor hold/commit, set the driver
property materializeLobD ata to true, read out as binary stream or
bytes, etc.) None of these work.

It is hard to believe that there isn't a way around this. Wouldn't
the situation I have be quite common when working with large datasets
(e.g., spatial data ) ?

Any advice would be graciously accepted...

Thanks...

Mike

Nov 12 '05 #2
tigr wrote:
I am trying to read BLOBs from a large table (i.e., greater than 34K
rows) using Java and the IBM JDBC driver (actually through an
Application server).
I get the following:

[IBM][CLI Driver][DB2/LINUX] SQL0429N The maximum number of
concurrent LOB locators has been exceeded. SQLSTATE=54028

I understand that the LOB locators are pointers to the BLOBs, but is
there any way to free them explicitly, or get the server to do it ?

I have tried the workarounds (e.g., cursor hold/commit, set the driver
property materializeLobD ata to true, read out as binary stream or
bytes, etc.) None of these work.

It is hard to believe that there isn't a way around this. Wouldn't
the situation I have be quite common when working with large datasets
(e.g., spatial data ) ?


If you would be using embedded SQL with EXEC SQL ..., then you have the FREE
LOCATOR statement to explicitly free any LOB locators you handled.

With CLI, things are a bit different. CLI uses locators under the covers to
fetch the LOB data for you. For performance reasons, those locators are by
default not freed right away. But you can change that behaviour by adding
the following line to you sqllib/cfg/db2cli.ini file

PATCH2=50

That will tell CLI to free a LOB locators when the next LOB is to be
fetched. You shouldn't hit the 32K limit that way.

--
Knut Stolze
Information Integration
IBM Germany / University of Jena
Nov 12 '05 #3
chi
"Knut Stolze" wrote:
tigr wrote:
I am trying to read BLOBs from a large table (i.e., greater

than 34K
rows) using Java and the IBM JDBC driver (actually through

an
Application server).
I get the following:

[IBM][CLI Driver][DB2/LINUX] SQL0429N The maximum number of
concurrent LOB locators has been exceeded. SQLSTATE=54028

I understand that the LOB locators are pointers to the

BLOBs, but is
there any way to free them explicitly, or get the server to

do it ?

I have tried the workarounds (e.g., cursor hold/commit, set

the driver
property materializeLobD ata to true, read out as binary

stream or
bytes, etc.) None of these work.

It is hard to believe that there isn’t a way around this.

Wouldn’t
the situation I have be quite common when working with large

datasets
(e.g., spatial data ) ?


If you would be using embedded SQL with EXEC SQL ..., then you
have the FREE
LOCATOR statement to explicitly free any LOB locators you
handled.

With CLI, things are a bit different. CLI uses locators under
the covers to
fetch the LOB data for you. For performance reasons, those
locators are by
default not freed right away. But you can change that
behaviour by adding
the following line to you sqllib/cfg/db2cli.ini file

PATCH2=50

That will tell CLI to free a LOB locators when the next LOB is
to be
fetched. You shouldn’t hit the 32K limit that way.

--
Knut Stolze
Information Integration
IBM Germany / University of Jena


I have the same SQL0429N error. However I’m using DB2 Version 7.2.5
here. Would patch2=50 apply to this DB2 version?

As I need to confirm the applicabity before I can try the setting,
please help.

--
http://www.dbForumz.com/ This article was posted by author's request
Articles individually checked for conformance to usenet standards
Topic URL: http://www.dbForumz.com/DB2-LOB-Loca...ict132970.html
Visit Topic URL to contact author (reg. req'd). Report abuse: http://www.dbForumz.com/eform.php?p=496515
Nov 12 '05 #4
chi wrote:
"Knut Stolze" wrote:
> tigr wrote:
>
> > I am trying to read BLOBs from a large table (i.e., greater

> than 34K
> > rows) using Java and the IBM JDBC driver (actually through

> an
> > Application server).
> > I get the following:
> >
> > [IBM][CLI Driver][DB2/LINUX] SQL0429N The maximum number of
> > concurrent LOB locators has been exceeded. SQLSTATE=54028
> >
> > I understand that the LOB locators are pointers to the

> BLOBs, but is
> > there any way to free them explicitly, or get the server to

> do it ?
> >
> > I have tried the workarounds (e.g., cursor hold/commit, set

> the driver
> > property materializeLobD ata to true, read out as binary

> stream or
> > bytes, etc.) None of these work.
> >
> > It is hard to believe that there isn’t a way around this.

> Wouldn’t
> > the situation I have be quite common when working with large

> datasets
> > (e.g., spatial data ) ?

>
> If you would be using embedded SQL with EXEC SQL ..., then you
> have the FREE
> LOCATOR statement to explicitly free any LOB locators you
> handled.
>
> With CLI, things are a bit different. CLI uses locators under
> the covers to
> fetch the LOB data for you. For performance reasons, those
> locators are by
> default not freed right away. But you can change that
> behaviour by adding
> the following line to you sqllib/cfg/db2cli.ini file
>
> PATCH2=50
>
> That will tell CLI to free a LOB locators when the next LOB is
> to be
> fetched. You shouldn’t hit the 32K limit that way.
>
> --
> Knut Stolze
> Information Integration
> IBM Germany / University of Jena


I have the same SQL0429N error. However I’m using DB2 Version 7.2.5
here. Would patch2=50 apply to this DB2 version?

As I need to confirm the applicabity before I can try the setting,
please help.


As far as I can see here:
http://www-306.ibm.com/software/data...htm#Header_856
this option is not available on V7. (I just followed the link from the DB2
Information Center to get to this site.)

If you want to compare the list with v8, go here:
http://www-306.ibm.com/software/data...cli/patch2.htm

p.s: Given that V7 goes out of service at the end of this month, it might be
a good idea to upgrade to V8...

--
Knut Stolze
Information Integration
IBM Germany / University of Jena
Nov 12 '05 #5
chi
"Knut Stolze" wrote:
chi wrote:
"Knut Stolze" wrote:

*> > tigr wrote:
*> >
**> > > I am trying to read BLOBs from a large
table (i.e., greater
*> > than 34K
**> > > rows) using Java and the IBM JDBC driver
(actually through
*> > an
**> > > Application server).
**> > > I get the following:
**> > >
**> > > [IBM][CLI Driver][DB2/LINUX] SQL0429N The
maximum number of
**> > > concurrent LOB locators has been exceeded.
SQLSTATE=54028
**> > >
**> > > I understand that the LOB locators are
pointers to the
*> > BLOBs, but is
**> > > there any way to free them explicitly, or
get the server to
*> > do it ?
**> > >
**> > > I have tried the workarounds (e.g., cursor
hold/commit, set
*> > the driver
**> > > property materializeLobD ata to true, read
out as binary
*> > stream or
**> > > bytes, etc.) None of these work.
**> > >
**> > > It is hard to believe that there isn’t a
way around this.
*> > Wouldn’t
**> > > the situation I have be quite common when
working with large
*> > datasets
**> > > (e.g., spatial data ) ?
*> >
*> > If you would be using embedded SQL with EXEC SQL
..., then you
*> > have the FREE
*> > LOCATOR statement to explicitly free any LOB
locators you
*> > handled.
*> >
*> > With CLI, things are a bit different. CLI uses
locators under
*> > the covers to
*> > fetch the LOB data for you. For performance
reasons, those
*> > locators are by
*> > default not freed right away. But you can change
that
*> > behaviour by adding
*> > the following line to you sqllib/cfg/db2cli.ini
file
*> >
*> > PATCH2=50
*> >
*> > That will tell CLI to free a LOB locators when the
next LOB is
*> > to be
*> > fetched. You shouldn’t hit the 32K limit that way.
*> >
*> > --
*> > Knut Stolze
*> > Information Integration
*> > IBM Germany / University of Jena

I have the same SQL0429N error. However I’m using DB2

Version 7.2.5
here. Would patch2=50 apply to this DB2 version?

As I need to confirm the applicabity before I can try the

setting,
please help.


As far as I can see here:
http://www-306.ibm.com/software/data...htm#Header_856
this option is not available on V7. (I just followed the link
from the DB2
Information Center to get to this site.)

If you want to compare the list with v8, go here:
http://www-306.ibm.com/software/data...cli/patch2.htm

p.s: Given that V7 goes out of service at the end of this
month, it might be
a good idea to upgrade to V8...

--
Knut Stolze
Information Integration
IBM Germany / University of Jena


Thanks for your suggestion. However, it’s a long way before we can
upgrade v7 to v8. I found there’s LOBCACHESIZE which may be helpful
to temperary solve the problem. The thing is I’m not sure the value I
should set for the parameter. There are mainly 4 CLOB types in a DB
table and takes up 1M size for each CLOB.

Can you help to tell me how to estimate the value for this parameter,
please?

Many thanks.

--
http://www.dbForumz.com/ This article was posted by author's request
Articles individually checked for conformance to usenet standards
Topic URL: http://www.dbForumz.com/DB2-LOB-Loca...ict132970.html
Visit Topic URL to contact author (reg. req'd). Report abuse: http://www.dbForumz.com/eform.php?p=499804
Nov 12 '05 #6
chi wrote:
As far as I can see here:
http://www-306.ibm.com/software/data...htm#Header_856
this option is not available on V7. (I just followed the link
from the DB2
Information Center to get to this site.)

If you want to compare the list with v8, go here:
http://www-306.ibm.com/software/data...cli/patch2.htm

p.s: Given that V7 goes out of service at the end of this
month, it might be
a good idea to upgrade to V8...


Thanks for your suggestion. However, it’s a long way before we can
upgrade v7 to v8. I found there’s LOBCACHESIZE which may be helpful
to temperary solve the problem. The thing is I’m not sure the value I
should set for the parameter. There are mainly 4 CLOB types in a DB
table and takes up 1M size for each CLOB.

Can you help to tell me how to estimate the value for this parameter,
please?


You might want to read here (V8 documentation):

http://publib.boulder.ibm.com/infoce...d/r0010868.htm

I think that explains rather well the meaning of the parameter. In your
case, you would need to set the LobCacheSize to 4MB or more (assuming that
the column was declared as CLOB(4M).

In general, there are only two ways to free a LOB locator:

(1) call an explicit FREE LOCATOR
(2) run a COMMIT

CLI uses locators under the covers and you can't run a FREE LOCATOR
yourself. So the patch2=50 is available in V8 to tell DB2 to free a
locator before the next lob is retrieved.

That leaves you with firing a COMMIT. You could open the cursor using WITH
HOLD, fetch 32000 rows/lobs (resulting in 32000 LOB locators being
concurrently used by the application), then run a COMMIT and all the
locators will be freed and you can start fetching again where new locators
will be allocated again.

--
Knut Stolze
Information Integration
IBM Germany / University of Jena
Nov 12 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
17323
by: Brian Piotrowski | last post by:
Hi All, I'm trying to run a simple query from an ASP page. I want the query to select each individual field in a table and compare it to another table. If the value doesn't exist, I want it reported. Here's the code I have to do this check: 'Check to see if there are any assemblies not in the database! strSQL = "select substring(mtoc,2,6) as deadmodel from bos_data where substring(bos_data.mtoc,2,6) not in (select code from...
17
2007
by: Gareth Tuckwell | last post by:
Does anyone if there is a limit on the number of fields or the number of tables in an Access97 database? My code suddenly won't compile after I have added a few fields in one table and I wonder if I have exceeded something? If Yes, then does anyone know any workarounds? GT.
2
6047
by: steve | last post by:
I am setting up a huge database in mysql, and I get the above error in Linux. I believe it is related to the size of one of my tables, which is 4,294,966,772 bytes in size. Can someone help. How can I break that barrier. A google search did not turn up anything useful. -- Posted using the http://www.dbforumz.com interface, at author's request Articles individually checked for conformance to usenet standards
8
18759
by: Peter Ballard | last post by:
Hi all, I've got a C program which outputs all its data using a statement of the form: putchar(ch, outfile); This has worked fine for years until it had to output more than 2GB of data today, and I got a "file size limit exceeded" error.
3
12342
by: Big Dave | last post by:
Hello All, I was wondering wether anyone could help me solve what is probably a very easy issue. I keep getting this damn "The administrative limit for this request was exceeded" whenever I try to query my LDAP server. Does anyone have any idea how to fix this. I have tried the pagesize and the sizelimit to no avail. Please help. --- Here is my code below: --- using System;
1
7767
by: marcelo Cortez | last post by:
Hi folks My application fail with 'Non-superuser connection limit exceeded' error , the client application is connected via ODBC AND GPF MESSAGE appear there. the 'Non-superuser connection limit exceeded' what'wrong?.
9
11380
by: eastcoastguyz | last post by:
I wrote a simple program to continue to create a very large file (on purpose), and even though there is plenty of disk space on that device the program aborted with the error message "File Size Limit Exceeded". The file size was 2147483647. I checked ulimit -a and its set to unlimited. Is this a compiler issue? I would like to see a C code example of how to increase the limit or make it unlimited (if that is a wise thing to do).
1
6338
by: Gurpal | last post by:
I'm getting this error when I test this page. Here is the error: Response object error 'ASP 0251 : 80004005' Response Buffer Limit Exceeded /test/test4.asp, line 0 Execution of the ASP page caused the Response Buffer to exceed its configured limit.
2
6565
by: Victor Lin | last post by:
Hi, I encounter a problem with pickle. I download a html from: http://www.amazon.com/Magellan-Maestro-4040-Widescreen-Navigator/dp/B000NMKHW6/ref=sr_1_2?ie=UTF8&s=electronics&qid=1202541889&sr=1-2 and parse it with BeautifulSoup. This page is very huge. When I use pickle to dump it, a RuntimeError: maximum recursion depth
0
9496
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10164
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9961
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8989
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7512
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6745
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5397
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4066
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3669
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.