wtorek, października 05, 2010

Oracle XDK 8i ORA-29532

create or replace PROCEDURE X_XML_NEW(
doc OUT Xmldom.DOMDocument, node OUT Xmldom.DOMNode, pid varchar2) AS
BEGIN
doc := Xmldom.newDOMDocument;
Xmldocumentcover.setCharset(doc.ID, 'UTF8');
node := Xmldom.makeNode(doc);
END;

declare
x xmldom.DOMDocument;
xx xmldom.DOMNode;
begin
for i in 1..30000 loop
begin
X_XML_NEW(x, xx, i||'');
xmldom.freeDocument(x);
exception when others then
begin
dbms_output.put_line('Nie dziala dla '||i||' '||SQLERRM);
xmldom.freeDocument(x);
exception when others then
null;
end;
end;
end loop;
end;
Nie dziala dla 2048 ORA-29532: Java call terminated by uncaught Java exception: java.lang.ArrayIndexOutOfBoundsException: -2048

Nie dziala dla 2049 ORA-29532: Java call terminated by uncaught Java exception: java.lang.ArrayIndexOutOfBoundsException: -2047

Nie dziala dla 2187 ORA-29532: Java call terminated by uncaught Java exception: java.lang.ArrayIndexOutOfBoundsException: -1909

Nie dziala dla 4097 ORA-29532: Java call terminated by uncaught Java exception: java.lang.NullPointerException

Metalink 335749.1. It was a limitation of XDK 8i , which couldn't create more than 2048 XML documents. Need to reuse the doc id's and overcome the limitation of the 12 bit signed integer which means only getting the maximum number 2048

0 komentarze: