Pentaho: ERROR_0012 – AdhocWebService.ERROR_0012 – Failed to generate the report preview. Please check the server log for details of the error

Antes de tudo, uma menção honrosa neste post. Já havia escrito uns seis parágrafos, e saí um minuto da minha cadeira, minha cadela (não sei como) conseguiu apagar todo o conteúdo e ainda por cima tornar impossível a recuperação. Depois desta, como impor qualquer limite à capacidade do ser humano em fazer cagadas enquanto usuário? 🙂

Então, voltemos: estou trabalhando numa monografia que visa implantar um modelo de armazém de dados “em miniatura”, mas que demonstre o funcionamento e capacidade de ferramentas livres para a inteligência de negócio (BI). Para isto, estou usando a suíte Pentaho Community.

Trata-se de uma suíte muito poderosa, inteiramente baseada em Java. Entretanto, devido à sua complexidade (trata-se, na verdade, de um conjunto de várias aplicações, modulares, que conversam entre si), tem por característica notável ser muito sensível a erros e falhas. Nesta semana, participei de uma Oficina de Pentaho na Latinoware, em que curiosamente houve um grande atraso no início, porque um relatório não era gerado devido à incompatibilidade da versão do java instalada. O mais engraçado é o fato de que este problema provavelmente tenha sido muito mais didático que a própria oficina em si, uma vez que passamos por logs, testes e outros ajustes até fazer a coisa funcionar.

Então, uma boa prática ao usar o Pentaho é sempre tomar muito cuidado com a versão das aplicações usadas, verificar eventuais incompatibilidades conhecidas e testar qualquer pequena mudança feita, como a instalação de um plugin. Ontem, estava fazendo um relatório de teste baseado no livro “Pentaho na Prática”, um dos pouquíssimos materiais existentes a respeito em português, e lidei com um erro que não tinha solução disponível nos fóruns. Acabei tendo que resolver “na marra”. Portanto, considero importante colocar aqui como resolvi, e relatar minha experiência para que outros aprendam e resolvam eventuais problemas de maneiras mais fácil. Não deixa de ser uma valiosa dica.

Parte 1: o problema

Preciso ainda sistematizar um pouco isto, porque seria muito bom juntar um print da tela. Mas meu problema, basicamente, foi o seguinte: após pegar um relatório BEM simples da introdução do livro, o relatório não era gerado, e aparecia o seguinte erro: ERROR_0012 – AdhocWebService.ERROR_0012 – Failed to generate the report preview. Please check the server log for details of the error. E aí, como resolver?

Parte 2: decompondo o problema

A parte mais importante, em especial para usuários iniciantes, é aprender a lidar com logs do sistema. Eu, quando comecei a programar, tinha a péssima mania de não ler com calma e acabava perdendo muito tempo com isto. Só que no Pentaho temos um monte de arquivos de log, e é preciso também alguma experiência para saber onde correr atrás da informação correta. Repare que a mensagem diz “please check de server log”. Ou seja, confira o log do servidor de aplicação. No meu caso, utilizo o Tomcat, que já vem por padrão quando do download do BI Server. O arquivo de logo do Tomcat é o catalina.out, e está no seguinte diretório: <diretório do bi-server>/tomcat/logs

Confira o arquivo do log que eu postei no pastebin.com. Creio que um dos motivos que devem deixar todos os estudantes desesperados em ler logs é exatamente isto: o que ler nestas centenas de linhas (no exemplo, precisamente 284). Aqui, vou resumir à parte que interessa, as duas primeiras linhas:

  1. 02:34:58,396 ERROR [Logger] misc-java.lang.String: ConnectFactory.ERROR_0001 - [pt_1] Database connection could not be established to: SampleData
  2. org.pentaho.platform.api.data.DatasourceServiceException: javax.naming.NameNotFoundException: Name SampleData is not bound in this Context

Análise do log

É aqui que a mágica começa a acontecer. Logo de cara, o relatório dá erro por um motivo muito simples. Existe uma base de dados SampleData que não foi encontrada:

Database connection could not be established to: SampleData

Por algum motivo, o banco de dados SampleData não estava disponibilizado no Pentaho. Você pode verificar isto no administration-console (PAC), acessível através da porta 8099 após subida do PAC. Lá estão as bases de dados. No meu caso, os problemas relatados no fórum não resolveram, foi apenas uma simples questão de reinserir o banco sample data na interface de administração, conforme dados abaixo:

Configuração da base SampleData
Configuração da base SampleData

E aí, prontinho! O BI server voltou a gerar os relatórios perfeitamente! A dica que dou é para manter uma versão do pentaho “pura”, sem instalar plugins ou gerar qualquer relatório e verificar como setá configurada. Pode facilitar muito, quando você é iniciante!