This error usually happens when no index has been build but the user tries to do the search (directly after installing SMILA) by calling the test search application. Prior to 0.5 M3 user gets in this case a long stack trace with the real cause of the problem at the end of it: <tt>org.eclipse.smila.search.index.IndexException: index does not exist in data dictionary [test_index]</tt>. This means that the test index named "test_index" has not been created yet. This can easily be done by starting a crawler or an agent. In 0.5 M3 we improved the error handling in search servlet so that only error messages are displayed and highlighted. (Stack trace can still be seen by simply clicking on "Details...".)

== Implementing Pipelets / Processing Services / Bundles ==

== Implementing Pipelets / Processing Services / Bundles ==

Revision as of 10:39, 2 July 2009

This pages contains the frequently asked questions of the SMILA project.

General Hint: When you have problems during a SMILA launch / run, please have a look at the SMILA log file first. (<SMILA>/SMILA.log)

Building SMILA

I receive an Out of Memory error? What can I do?

While building with SMILA.builder I receive the following errror message:

Build Failed - Out of Memory - Java heap space

The reason for this is that Ant hasn´t enough heap space to build the project. You will have to expand the heap space by setting the VM arguments accordingly. In eclipse try the following:

Click Open external tools dialog and select your Ant build profile.

Switch to the JRE tab and add the following VM arguments: -Xms40m -Xmx512m.

Save and build again.

Launching SMILA

Linux

How to start/stop and manage SMILA as a background process on a Linux machine?

Since the default configuration (stored in SMILA.ini) of the OSGi runtime (in our case Equinox) launcher expects that you execute it in foreground and therefore have an OSGi console running in your shell and listening to the standard input, the first thing we have to do is to advise the launcher (and thereby Equinox) to listen on some TCP port instead. This is done by adding a new line with the port number just after the "-console" line.

For example, to set console to listen at TCP port 9999, SMILA.ini would look like this:

-console
9999
...

Now, after SMILA has been started with “$ nohup ./SMILA &”, the console can be accessed from any computer simply by opening a telnet session:

$ telnet <smila_host_name> <console_port>

If you are logged in via telnet and just want to close this connection and not to stop Equinox running SMILA, than just type “disconnect”. Otherwise, if you want to stop SMILA and close the connection, use “close” - as you normally would do on a console running in your shell.

This error usually happens when no index has been build but the user tries to do the search (directly after installing SMILA) by calling the test search application. Prior to 0.5 M3 user gets in this case a long stack trace with the real cause of the problem at the end of it: org.eclipse.smila.search.index.IndexException: index does not exist in data dictionary [test_index]. This means that the test index named "test_index" has not been created yet. This can easily be done by starting a crawler or an agent. In 0.5 M3 we improved the error handling in search servlet so that only error messages are displayed and highlighted. (Stack trace can still be seen by simply clicking on "Details...".)

Implementing Pipelets / Processing Services / Bundles

Configuration

I want to use the ConfigUtils class in my Processing Service to read the configuration, where do I have to put my configuration files?

Configuration files are searched for in the following order:

<SMILA>/configuration/<bundle-name>/<config-file>

<config-file> in the root path of the bundle jar-file

Deploy / Launch

I implemented/deployed a Processing Service in a new bundle but SMILA log says that it couldn't be found

Check your new bundle, it should contain a file like that:

OSGI-INF/<myService>.xml

In this file your new processing service has to be referenced. Also the file has to be referenced from the MANIFEST.MF file of your bundle as a service component:

Service-Component: OSGI-INF/<myService>.xml

On the "Build" page of the manifest editor, you must add the OSGI-INF directory to the binary build. And finally, your bundle has to be started at SMILA launch, e.g. by adding it to the config.ini.