André, Existe um bug relacionado ao problema, porém só ocorre com o driver OCI (thick ou fat, como queira), e foi corrigido na versao 9.0.1 . Como voce está utilizando o THIN driver, não parece o caso. Uma sugestão seria baixar o driver JDBC do 9i (9.0.1) e fazer um teste.
Verifiquei que você está utilizando a sessão para armazenar seus objetos. Armazenar um objeto na sessão é extremamente custoso a nivel de memoria, pois um objeto com 1k (medido com o writeObject()) poderá atingir até 1Mb de memória quando armazenado no Session. Faça um teste com uma aplicação "client" (um main() já resolve) e verifique se ocorre o mesmo problema. Também pode estar ocorrendo o consumo máximo de memória da sua JVM, verifique os parâmetros de inicialização da JVM do seu webserver. Verifique também a utilização de memória do processo da JVM com uma ferramenta simples como o TaskManager do NT ou o memstat/ps do UNIX. []s Maiko --- André Yurion <[EMAIL PROTECTED]> escreveu: > Pessoal, > > Na empresa onde trabalho, estamos começando a testar > os Object Types do Oracle sendo retornados por um > PL/SQL e estamos encontrando alguns problemas. > > Temos o seguinte esquema: > - Criamos dois objetos no oracle > Object - Funcinario -> contém os dados do > Funcionario > Object - ListaFuncionarios(que é uma coleção de > objetos do tipo Funcionario, ou seja, um > > TABLE OF Funcionario); > - Temos uma PL/SQL que pede o departamento e > devolve > a Lista de funcionarios do departamento; > - Geramos no Jdeveloper o JAVA correspondente aos > Dois Objetos(Funcionarios.java e > ListaFuncionarios.java); > - Criei um servlet que vai ao banco e executa a > PL/SQL > via OracleCallableStatment passando por exemplo o > valor > RH para a procedure. > > Pego o retorno da procedure com o método > getOracleObject > e ele me retorna o Objeto ListaFuncionarios > já populado, o objeto gerado é colocado na sessão. > Quando executo o método length() do Objeto > ListaFuncionarios, ele retorna por exemplo 12 > Funcionarios > porém, quando tento referenciar qualquer atributo > deste Objeto > é gerado um OutOfMemoryErro. Estou fazendo esta > operação da > seguinte maneira: > .... > <% > ListaFuncionarios listaFuncionarios = > > (ListaFuncionarios)session.getAttribute("ListaFuncionarios"); > long totalFunctionarios = > listaFuncionarios.length(); > > for(int i = 0; i < totalFunctionarios; i++) { > Funcionario funcionario = > listaFuncionarios.getElement(i); > //Neste momento ele gera o erro -- > OutOfMemoryErro > String nomeFuncionario = functionario.getNome(); > > out.println("Nome do Funcionario: " + > nomeFunctionario); > } > %> > ... > > Por tiver alguma idéia do que está acontecendo > por > favor me dê uma luz.. > Estamos utilizando: > Oracle 8.1.7 num solaris > JDK1.3.1 > Driver JDBC Oracle Thin(oracle12.zip) > > Desde já agradeço a atenção, > > André Yurion > > > __________________________________________________ > Do You Yahoo!? > Make a great connection at Yahoo! Personals. > http://personals.yahoo.com > > ------------------------------ LISTA SOUJAVA > ---------------------------- > http://www.soujava.org.br - Sociedade de Usuários > Java da Sucesu-SP > dúvidas mais comuns: > http://www.soujava.org.br/faq.htm > regras da lista: > http://www.soujava.org.br/regras.htm > para sair da lista: envie email para > [EMAIL PROTECTED] > ------------------------------------------------------------------------- > _______________________________________________________________________________________________ Yahoo! GeoCities Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo! GeoCities. É fácil e grátis! http://br.geocities.yahoo.com/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------