Troubleshooting the BI Server

Troubleshooting the BI Server

These are some things to check and steps to take if you are experiencing difficulties with the Pentaho BI server.

BI Server 1.x

Some things that might help when running BI Server 1.x.

  • add your host name to the hosts file
  • create a /tmp_user directory and set permissions
    # mkdir /tmp_user
    # chmod 1777 /tmp_user
  • fix line endings on scripts
    $ find ${PENTAHO} -iname "*.sh" -exec dos2unix {} +
    $ find ${PENTAHO} -iname "*.conf" -exec dos2unix {} +
  • set shell scripts to be executable
    $ find ${PENTAHO} -iname "*.sh" -exec chmod +x {} +

Check your installation of Java

See the Java page for instructions and details.

Can't access Pentaho from another host

If you're using Jboss, you need to configure Pentaho for remote access. Also, make sure that you are trying to connect to the right port. Pentaho by default uses port 8080.

Can't connect to data source

See our guide to testing database connections.

"Exception in thread "main" java.lang.NoClassDefFoundError: Edition"

This might appear in your logs if you have spaces in the path where Pentaho is installed. Remove/replace the spaces and try again. This is due to a bug in Tomcat 5.5.26.

References

"Could not create deployment"

This could be caused by several different things.

If Pentaho gives an error like this when you try to start it:

Could not create deployment: file:/media/disk/parking/pentaho-demo/jboss/server/default/conf/jboss-service.xmlorg.jboss.deployment.DeploymentException: - nested throwable: (java.lang.reflect.InvocationTargetException)

It could be due to this Jboss bug. To rectify, put the system's host name and IP address into its /etc/hosts file. For example:

127.0.0.1  localhost.localdomain localhost localhost pentaho-server pentaho-server.bizcubed.com.au

or

192.168.2.35  pentaho-server

Pentaho needs to write to files in /tmp/. If Pentaho was previously run by a different user on the same machine, there may be files owned by that user that cannot be written to by the current user. You can chown or delete those files.

You can only have one instance of Pentaho running on the same host at once (although if you know what you are doing you can configure this otherwise). Ensure that it isn't already running.

MySQL timeouts (C3PO fix)

It can sometimes occur after Pentaho 1.x has been running for several hours with no interaction (e.g. if left running overnight). The problem can manifest itself in several ways, but you'll see JDBC/JNDI connection errors in the Pentaho log. One symptom is when you try to load the Web page, you get template errors.

The solution is to use C3PO for connection pooling instead of DBCP. You can find an explanation here, which is based on this forum post.

If you have Pentaho Subscription/Enterprise Edition, you will need to similarly deploy C3PO in the Management Services Console to allow it to connect to the Pentaho server (bugs BISERVER-1069 and BISERVER-1940).

This is not required for Pentaho 2.

Port/Address already in use

If you see errors in the server logs like this:

Port 8083 already in use

or

SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use

You have another application running that has bound TCP/IP ports that are required by Pentaho.

This can happen if you are trying to run another application server (Tomcat, JBoss, etc.) without shutting down the existing one. If Pentaho is already running, shut it down before starting a new instance.

To discover what is using the port, run from a terminal:

netstat -tanp|grep 8083

Replace the number with the port number that is conflicting. Remove the "|grep 8083" to see all ports. The final column will show the application and PID that is using that port.

VMware Server 2 is an example of an application that can interfere with Pentaho in this manner, as it employs a Web interface that runs inside its own instance of Tomcat. To fix:

  1. open VMware's Tomcat configuration (e.g. /usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/conf/server.xml) in a text editor
  2. replace the following
    • 8005 with 8805 (or another free port)
    • 8009 with 8809 (or another free port)

Resources

Out of memory errors

Memory errors can be solved by tuning the memory available to the Java virtual machine.

"Can't create table", or "Unsuccessful: alter table"

This is to do with database permissions. By default, the users hibuser and pentaho_user require full permissions on the hibernate and quartz databases respectively.

If you have restored a MySQL database from another system, make sure that the database has the same lower_case_table_names setting.

"Packet for query is too large"

You might see this error in the Pentaho logs if you're using a MySQL backend. There's a simple workaround:

  1. Open your MySQL server configuration file (e.g. /etc/my.cnf) in a text editor
  2. In the [mysqld] section, add
    max_allowed_packet = 16777216
  3. Save the file
  4. Restart the database
Similarly, this may also occur when completing a database dump.

  1. Open your MySQL server configuration file (e.g. /etc/my.cnf) in a text editor
  2. In the [mysqldump] section, add
    max_allowed_packet = 500M
  3. Save the file
  4. Rerun the mysqldump command.

Resources

"Cannot get a connection, pool exhausted"

You might see an error like this:

12:30:57,956 ERROR [SQLLookupRule] 1d8e4f37-feee-11dd-b242-093687467d48:COMPONENT:context-29465591-1235093454253:My_Report.xactionConnectFactory.ERROR_0001 - Database connection could not be established to: my_datasource
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted

This can occur when many connections are being made to a data source at once. Scenarios for this include a report that contains many different queries, or many people running reports at the same time.

A solution is to increase the number of connections permitted by Pentaho. Where you configure data sources in the Administration/Enterprise Console, set appropriate values for "Maximum Active Connections" and "Number of Idle Connections". If they are blank, settings will default to the dbcp-defaults in {pentaho}/pentaho-solutions/pentaho.xml.

"403 Not authorized" errors

This can occur on Solaris and other UNIX platforms aside from Linux and Mac OS X. Solaris tar does not support long filenames and paths to the level that is required. The solution is to use gtar to extract the downloaded Pentaho archive. It is not in the PATH by default, so you may have to find it:

find / -name gtar -print

If it is still not found, you can either download and install it on Solaris, or extract the tarball on another OS and copy the files across.

Resources

"Could not generate parameter template" / "Illegal HTML character"

If when you try to run a report you get the message: "could not generate parameter template" and the .log file has an error that looks approximately like this: "Illegal HTML character: decimal 128", it is likely to be an issue of bad data quality.

To debug this, do the following

  • Check which query in causing this error (it is likely to be a query which is used to generate a prompt: for example to prompt the user for a name of the customer the report is using a query 'select name from customer')
  • Run this query, converting the result into 'UTF8'. For postgreSQL:
    select convert_to('some text', 'UTF8')
    For Mysql
    mysql> SELECT OCT(128);
  • The result will show octal values for characters that could not be represented otherwise.
    • For example for decimal 128, the corresponding octal value is 200 (check the conversion table for the corresponding values)

Resources

Cannot Save prpt Report in Dashboard

If you are trying to add a prpt Report to your Dashboard, make sure all parameters have values for labels.

parameter.jpg

Tags:
Created by sd on 2008/06/10 04:40
Last modified by Julia Gusman on 2010/09/08 12:58

XWiki Enterprise 2.4.30451 - Documentation