Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
SMILA/FAQ
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)
Contents
- 1 General
- 2 Building SMILA
- 3 Launching SMILA
- 3.1 Linux
- 3.2 Bundles
- 3.2.1 Launching crawler bundles - How to solve: "Could not find crawler id" error message?
- 3.2.2 I changed the implementation of a bundle, deployed it and restarted SMILA, but SMILA still seems to use the old bundle
- 3.2.3 I changed bundle settings in my config.ini, but after SMILA restart nothing changed
- 3.3 JConsole
- 4 Configuring/Running SMILA
- 5 Implementing Pipelets / OSGi Services / Bundles
General
Where do I find the log file?
The SMILA log file's name is SMILA.log and is to be found at the applications working folder:
If you extracted SMILA from a zip, you can find the log file in the folder, where you extracted the SMILA.
/<SMILA> /about_files /configuration /features /jmxclient /plugins /workspace .eclipseproduct ... SMILA SMILA.ini -> SMILA.log <-
If you started SMILA from within the Eclipse IDE using the launcher, you can find the log file at the project SMILA.application in your workspace.
How can I see that SMILA started correctly?
You should see no stacktraces in the log ;) and it should end with an entry like that if SMILA has just started:
... INFO ... internal.HttpServiceImpl - HTTP server started successfully on port 8080.
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.
Build fails with 'java.net.MalformedURLException: no protocol: ${eclipseBaseURL}' message
The complete error looks like this:
... build.core: [java] Buildfile: /home/scum36/Eclipse/helios-sr2-build/plugins/org.eclipse.pde.build_3.6.2.R36x_20110203/scripts/productBuild/productBuild.xml [java] [java] main: [java] [java] preBuild: [java] [java] preSetup: [java] [java] checkLocalMaps: [java] [java] getMapFiles: [java] [cvs] Caught exception: Cannot run program "cvs" (in directory "/home/scum36/workspace/SMILA/smila.build/maps"): java.io.IOException: error=2, No such file or directory [java] [java] postSetup: [java] [java] checkLocalBase: [java] [java] getBaseComponents: [java] [java] BUILD FAILED [java] /home/scum36/Eclipse/helios-sr2-build/plugins/org.eclipse.pde.build_3.6.2.R36x_20110203/scripts/productBuild/productBuild.xml:33: The following error occurred while executing this line: [java] /home/scum36/Eclipse/helios-sr2-build/plugins/org.eclipse.pde.build_3.6.2.R36x_20110203/scripts/build.xml:53: The following error occurred while executing this line: [java] /home/scum36/workspace/SMILA/SMILA.builder/customTargets.xml:80: The following error occurred while executing this line: [java] /home/scum36/workspace/SMILA/SMILA.builder/customTargets.xml:25: java.net.MalformedURLException: no protocol: ${eclipseBaseURL} [java] [java] Total time: 0 seconds [java] An error has occurred. See the log file [java] /home/scum36/workspace/.metadata/.log.
Probably you did forget to copy build.properties.template
to build.properties
in SMILA.builder
and adapt it. See
How to build SMILA.
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>
For the complete documentation on eclipse runtime options please see: http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html
Bundles
Launching crawler bundles - How to solve: "Could not find crawler id" error message?
While launching SMILA I receive the following error message:
Could not find crawler id
If you started SMILA.launch to launch SMILA: The launcher didn't start your new crawler bundle. Try this:
- Add your bundle by selecting "Open Run dialog" in eclipse and choose your SMILA profile.
- Select your bundle in the list and set the checkmark.
- Set the start level to "4" and the autostart to "true".
If you started SMILA.EXE to launch SMILA: Your bundle isn`t defined in config.ini or the start level isn´t correct. Try this:
- Open the file config.ini and add your bundle as shown below:
org.eclipse.smila.connectivity.framework.crawler.owncrawler@5:start, \
- Open the build.properties file of your bundle and include the folders schemas/, OSGI-INF/, and the file plugin.xml.
I changed the implementation of a bundle, deployed it and restarted SMILA, but SMILA still seems to use the old bundle
Close SMILA, delete the following directories in your configuration folder and restart SMILA again:
- org.eclipse.core.runtime/
- org.eclipse.equinox.app/
- org.eclipse.osgi/
- org.eclipse.update/
I changed bundle settings in my config.ini, but after SMILA restart nothing changed
Check your config.ini for unusual whitespaces (e.g. a tab) between the (edited) bundle entries - and remove them.
If that doesn't help, see question (resp. answer) before.
JConsole
Why is the SMILA package not in the JConsole tree?
I've started SMILA.exe but the SMILA package isn't in the tree of JConsole.
To solve this try the following:
- Create a new connection.
- Change your connection by setting the port "9004" on the Remote tab.
- Click the Connect button, switch to the MBeans tab, and check the tree again.
Why is the SMILA/CrawlerController MBean not in the JConsole tree?
Check if all needed bundles are active. Open the equinox console and type:
- ss crawler
- ss deltaindexing.impl
If one of these is not active:
- check the configuration/config.ini
- check the log file for errors
Cannot connect with JConsole to a remote machine running Ubuntu 8.04 or newer
For some reason the JConsole cannot make a remote connection to JVM running on Ubuntu 8.04 or newer installations. (We did some tests with SuSE Linux and had no problems.)
This can be easily circumvented by modifying /etc/hosts file. Simply replace 127.0.1.1 with the real IP address of your Ubuntu machine and you're ready to go.
For example, if you have a line in /etc/hosts that looks like this:
127.0.1.1 jupiter (Where "jupiter" it the actual name of the Ubuntu machine in this example. You will almost certainly have some other name here ;-)
then replace it with:
192.168.220.101 jupiter (Where 192.168.220.101 is the actual IP address of the Ubuntu machine in this example.)
Configuring/Running SMILA
Crawler
I tried to crawl/index a data source to a job, JConsole says "Crawler ... sucessfully started" but nothing seems to happen
Check the SMILA log file for errors.
Check if your specified job name exists and is running:
- Open a browser and go to jobmanager state API
- browse to your specified job and check if there is an active job run (state: RUNNING)
- if so, check the job run details
If you find no errors in the log and your job is running but doesn't seem to do something:
- Did you crawl the data source before? If so, try a
clearAll
on the DeltaIndexing-MBean in your JConsole - Check your crawler configuration file (see configuration/org.eclipse.smila.connectivity.framework/)
Pipeline
Why do I get a timeout exception during a (long running) pipeline execution?
In SMILA there's a timeout configured for a pipeline execution:
- configuration/org.eclipse.smila.processing.bpel/processor.properties
See entry: pipeline.timeout
Implementing Pipelets / OSGi Services / Bundles
Configuration
I want to use the ConfigUtils
class in my Pipelet 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 OSGi 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 service has to be referenced. If you have copied the file from some other service, be sure to change the component name in the root element to something unique, because DS does not start multiple services with the same component name.
- <component name="<myService>" immediate="true">
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
Also, you may need to include Import-Package: declarations for super-classes of your service implementation class even if there are no compile errors.
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.
I get classloading errors in invocations of my own Pipelet when running SMILA outside the IDE. In the IDE it works
The error could look like this:
2010-11-19 11:28:36,101 ERROR [ODEServerImpl-1
] vpu.JacobVPU - Method "run" in class "org.apache.ode.bpel.rtrep.v2.EXTENSIONACTIVITY" threw an unexpected exception.
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "org/w3c/dom/Document"
We are not completely sure, why this happens, but a solution is to set this system property in the SMILA.ini file:
-Dosgi.java.profile.bootdelegation=override
Thamks to Bogdan Sacaleanu for the solution. See this thread in the smila-dev mailing list for additional details.