Olá pessoal…
Estou fazendo uma rotina de importação de tabelas de uma base de dados Firebird para outra com a mesma definição e estrutura feitas em Oracle. Ao me deparar com uma tabela que possui campos do tipo Blob, e um número considerável de linhas, tive um problema: o Hibernate(ou será a máquina virtual) não conseguiu inserir todas. Em muitos casos, houve falha na conexão. Entretanto, quando faço inserção de poucas linhas, não ocorre nenhum erro. Existe alguma forma de permitir que o Hibernate consiga gerenciar um grande número de inserções sem ocorrer erro? (nota: não ocorre violação de integridade, só erro de conexão mesmo). Muito obrigado.
Estranho isso. Já verificou se sua conexão possui algum tempo limite para realizar operações “pesadas” ? porque de acordo com o que você disse, esse problema de conexão só ocorre quando você tenta inserir uma grande quantidade de dados.
Que dados estão contidos nesses campos blob ?
W
WagnerFullPJ
Obrigado por responder…
Os dados para importação vem de um ResultSet. Um deles por exemplo, tem aproximadamente 2000 registros. Feito isso, crio um bean e passo os valores de seus atributos a cada linha do ResultSet. Enquanto houver linhas do ResultSet, é aberta uma sessão do hibernate, passado o bean como parâmetro e salvo do banco Oracle(O usuário que faz a inclusão tem privilégios de DBA). A exceção da falha da conexão lançada é do Hibernate, e não java.sql.SQLException. Deve haver algum parâmetro do Hibernate que altere o tempo de conexão, sei lá. A informa contida nos campos blob são textos, mas o Hibernate consegue recebê-los facilmente como String sem nenhum problema.
Wagner Abreu
W
WagnerFullPJ
O problema foi resolvido… era o oracle… aumentei a quantidade de sessões gerenciadas para 150, só havia 40!!! Aproveitei para fazer uma coisa mais profissional. Estou adotando persistência tanto na base de origem como na de destino(crio um só mapeamento para cada objeto, uma vez que os bancos têm os mesmos nomes de tabelas e campos), e criei um DAO genérico. Se alguem desejar , posso postar aqui na forma de artigo depois.