Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

Troubleshooting

ODF

Debugging using eclipse

You can run Jetty inside Eclipse using the “Eclipse Jetty Feature” (Eclipse -> Help -> Install New Software…). Then, create a new debug configuration (Run -> Debug Configurations…). Specify

WebApp Tab Project: odf-web WebApp Folder: ../../../../../odf-web/src/main/webapp Context Path: /odf-web-0.1.0-SNAPSHOT HTTP / HTTPs Port: 58081

Arguments Tab VM Arguments: -Dodf.zookeeper.connect=localhost:52181

As the Eclipse Jetty plugin does not support secure connections nor basic authentication, remove the <security-constraint> and <login-config> sections from the web.xml. The URL of the ODF Webapp the needs to be prefixed with http:// rather than https://.

Then start Atlas and Kafka via the test-env (just comment out the line that starts jetty or stop it after being started). Now you can use the debug configuration in eclipse to start ODF.

See also (https://ibm-analytics.slack.com/archives/shared-discovery-pltf/p1467365155000009)

Logs and trace

ODF uses java.util.logging APIs so if your runtime environment does support direct setting, use the respective mechanism.

For runtimes that don't support this out-of-the-box (like Jetty) you can set the JVM system property odf.logspec with a value like <Level>,<Path> which advises ODF to write the log with logging level <Level> to the file under <Path>.

Example:

-Dodf.logspec=ALL,/tmp/myodflogfile.log

Availabel log levels are the ones for java.util.logging, namely SEVERE, WARNING, INFO, FINE, FINER, FINEST, and ALL.

Atlas

Logs

The logs directory contains a bunch of logfiles, together with a file called atlas.pid which contains the process ID of the Atlas server that is currently running. In case of issues the file logs/application.log should be checked first.

Restarting Atlas

Run these commands (from the atlas installation directory) to restart Atlas

bin/atlas_stop.py
bin/atlas_start.py

Clean all data

To clean the Atlas repository, simply remove the directories data and logs before starting.

Issues

Service unavailable (Error 503)

Sometimes, calling any Atlas REST API (and the UI) doesn‘t work and an HTTP error 503 is returned. We see this error occasionally and don’t know any way to fix it except cleaning all data and restarting Atlas

Creating Atlas object take a long time

It takes a long time to create an Atlas object and after about a minute you see a message like this in the log

Unable to update metadata after 60000ms

This is the result of the kafka queues (which are used for notifications) being in error. To fix this restart Atlas (no data cleaning required).

Kafka / Zookeeper

If there is a problem starting Kafka / Zookeeper check if there might be a port conflict due to other instances of Kafka / Zookeeper using the default port. This might be the case if a more recent version of the IS suite is installed on the system on which you want to run ODF.

Example: If another instance of Zookeeper uses the default port 52181 you need to switch the Zookeeper port used by replacing 52181 with a free port number in:

  • start-odf-testenv.bat
  • kafka_2.10-0.8.2.1\config\zookeeper.properties
  • kafka_2.10-0.8.2.1\config\server.properties

Reset

To reset your Zookeeper / Kafka installation, you will first have to stop the servers:

bin/kafka-server-stop
bin/zookeeper-server-stop

Next remove the zookeeper data directory and the Kafka logs directory. Note that “logs” in Kafka mean the actual data in the topics not the logfiles. You can find which directories to clean in the the properties dataDir in the zookeeper.properties file and log.dirs in server.properties respectively. The defaults are /tmp/zookeeper and /tmp/kafka-logs.

Restart the servers with

bin/zookeeper-server-start config/zookeeper.properties
bin/kafka-server-start config/server.properties