Mike,

 

      I ran this program 3 times and I see that this program is creating 6 new entries for every run. I am assuming this will definitely give “Name Pool full” after ‘n’ numbers of runs. If I run this same program with my new style sheet which doesn’t have “current()” function I don’t see these random entries. I should give a try with this new XSL before I refactor my code to distribute load between multiple Configurations.

 

---------------------------------------------

1st RUN

---------------------------------------------

Fingerprint 0/244

  local name = current1358189313 uri code = 3

  Fingerprint 0/277

  local name = current-2068589611 uri code = 3

 Fingerprint 0/369

  local name = current-1417755902 uri code = 3

 Fingerprint 0/411

  local name = current-1429450828 uri code = 3

  Fingerprint 0/741

  local name = current1868763253 uri code = 3

  Fingerprint 0/997

  local name = current2025214189 uri code = 3

 

---------------------------------------------

2nd RUN

---------------------------------------------

  Fingerprint 0/102

  local name = current-1435719352 uri code = 3

  Fingerprint 0/244

  local name = current1358189313 uri code = 3

  Fingerprint 0/277

  local name = current-2068589611 uri code = 3

  Fingerprint 0/369

  local name = current-1417755902 uri code = 3

  Fingerprint 0/411

  local name = current-1429450828 uri code = 3

  Fingerprint 1/488

  local name = current1345397712 uri code = 3

  Fingerprint 0/564

  local name = current2049395052 uri code = 3

  Fingerprint 0/632

  local name = current-1422160866 uri code = 3

  Fingerprint 0/741

  local name = current1868763253 uri code = 3

  Fingerprint 0/755

  local name = current-2077408579 uri code = 3

  Fingerprint 0/869

  local name = current1865302555 uri code = 3

  Fingerprint 0/997

  local name = current2025214189 uri code = 3

 

---------------------------------------------

3rd RUN

---------------------------------------------

  Fingerprint 0/12

  local name = current1885803846 uri code = 3

  Fingerprint 0/102

  local name = current-1435719352 uri code = 3

  Fingerprint 0/244

  local name = current1358189313 uri code = 3

  Fingerprint 0/277

  local name = current-2068589611 uri code = 3

  Fingerprint 0/296

  local name = current-1430858574 uri code = 3

  Fingerprint 0/300

  local name = current2019863513 uri code = 3

  Fingerprint 0/369

  local name = current-1417755902 uri code = 3

  Fingerprint 0/411

  local name = current-1429450828 uri code = 3

  Fingerprint 1/488

  local name = current1345397712 uri code = 3

  Fingerprint 1/495

  local name = current-2059941789 uri code = 3

  Fingerprint 0/564

  local name = current2049395052 uri code = 3

  Fingerprint 0/632

  local name = current-1422160866 uri code = 3

  Fingerprint 0/658

  local name = current-1421864201 uri code = 3

  Fingerprint 0/741

  local name = current1868763253 uri code = 3

  Fingerprint 0/755

  local name = current-2077408579 uri code = 3

  Fingerprint 0/869

  local name = current1865302555 uri code = 3

  Fingerprint 1/901

  local name = current1362842080 uri code = 3

  Fingerprint 0/997

  local name = current2025214189 uri code = 3

 

Thanks,

Srini

 

-----Original Message-----
From: Michael Kay [mailto:mike@saxonica.com]
Sent: Sunday, July 15, 2007 1:36 PM
To: 'Mailing list for SAXON XSLT queries'
Cc: Kusunam, Srinivas
Subject: RE: [saxon] Any thoughts about this Exception 'Saxonnamepoolisfull'??

 

      But I am doing my investigation on why it has failed with the new

Saxon-8.9 (I know my XSL still has current function in it)? If I run this on

a standalone program this is what I see in NamePool (Please look at attached

NamePool_stack.txt) for a single run. I can see Saxon had generated 6 new

local names in to the NamePool for each current function in my XSL file.

 

 

      If this is TRUE then, if I run this program in a loop of say 20,000

times Saxon will generate 20,000x6 = 120,000 new element names in to the

NamePool.

 

MHK> Not necessarily. If you run the identical program twice then I think

(I'm not sure about this) there is a reasonable chance that the same objects

will get the same hash codes. So it might be fewer than this.

 

 

How long or how many elements do this NamePool can accommodate before it say

"NamePool is full"? I know it also depends on number of elements in my input

XML files.

 

MHK> There are actually a number of different limits. The limit you are

hitting is a limit of 1023 on the number of names that have the same hash

code, where the hash code is calculated from the local name, with a limit of

1023 different hash codes available. So in effect, assuming the hash codes

are random, you'll probably hit this limit with about half a million names

in the pool. By that time you get to that point, you will be using a lot of

memory and name lookup will be pretty slow.

 

Michael Kay

http://www.saxonica.com/

 

 

*****************************************************************
This message has originated from RLPTechnologies, 
34405 W 12 Mile Road, Suite 343, Farmington Hills, MI  48331.  
If you do not wish to receive further e-mails regarding 
RLPTechnologies, please forward this e-mail to Do_Not_Send@rlpt.com 
with the word "remove" in the subject line.

This e-mail message and any files transmitted with it are 
confidential and intended solely for the individual or entity to 
whom they are addressed.  If you have received this message in 
error, please delete this message and notify the RLPTechnologies 
System Administrator at postmaster@rlpt.com.
*****************************************************************