Problema com InputStream  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Ziden
Thread.start()

Membro desde: 31/08/2010 09:30:38
Mensagens: 25
Offline

Olá a todos.

Estou com um pequeno problema para inserir um xml no DB2. Eis o que estou fazendo:




O campo XMLREL é do tipo CLOB, e seu tamanho é de 916194 bytes. O que acontece é que, eventualmente temos um sql code -302, ou seja, dizendo que o arquivo que estamos tentando inserir é maior que o tamanho suportado para a coluna. Gostaria de saber se , antes de inserir este InputStream é possivel eu obter o tamanho dele. Eu não tenho o codigo que gera ele, mas sei que o java gera uma Stringzona grande e converte para InputStream para ser inserida no banco por CLOB. Preciso saber como ter o tamanho deste XML para validar a inserção, e apontar quais casos exatamente que estão com tamanho maior, temos mais de 2M registros (aplicação para a universidade Unicamp) portanto dificilmente vou poder ficar testando para saber qual exatamente que está ultrapassando o limite.

Obrigado a quem puder ajudar. []´s
Puka
JavaTeenager
[Avatar]

Membro desde: 08/11/2007 13:34:45
Mensagens: 158
Offline

Faz um negócio decente e testa esse xml antes enviar para o método de inserção no banco...

De que vale tudo isso?
Ziden
Thread.start()

Membro desde: 31/08/2010 09:30:38
Mensagens: 25
Offline

Como testar o xml ?

O xml é gerado pelo proprio java, antes de chamar o método de conexão, e está gerando certinho. Nao entendi onde vc quis chegar, mas vlw a resposta. []´s
EderBaum
JavaBaby
[Avatar]

Membro desde: 27/07/2005 22:58:32
Mensagens: 92
Offline

Não há como determinar o tamanho de um InputStream sem ler ele por inteiro antes.

sabesim.com.br
[WWW]
EderBaum
JavaBaby
[Avatar]

Membro desde: 27/07/2005 22:58:32
Mensagens: 92
Offline

Neste cenário então você teria 03 possibilidades.

1 - Ler diretamente o tamanho do arquivo com a classe File (Se for o caso).

2 - Transformar o InputStream em ByteArrayOutputStream, chamar o metodo toByteArray() e ver seu tamanho.

3 - Ler Byte a Byte e somar.

sabesim.com.br
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team