ProActive Troubleshooting

In this section we present common problems encountered while trying to use ProActive. For further assistance, or if you cannot solve a problem, feel free to post your question on the ProActive mailing list [email protected] . Make sure that you include a precise description of your problem along with a full copy of the error message.

3.1. Common problems

If you encounter any problem with installing ProActive and running the examples, please make sure you correctly followed all the steps described in the previous chapter. If it doesn't help, here is a list of the most common mistakes:

  • Permission denied when trying to launch scripts under Linux Files have the wrong permissions set. You will have to change the permissions by executing chmod 755 *.sh in the ProActive/scripts/unix directory. The command will set the files to executable and readable for all users and also writeable for the current user.

  • Java complains about not being able to find the ProActive classes. Your CLASSPATH environment variable does not contain the entry for classes belonging to ProActive, ASM, Log4, Xerces, Fractal, or BouncyCastle. ProActive.jar,asmXX.jar, log4j.jar, xercesImpl.jar, fractal.jar, bouncycastle.jar must be in your CLASSPATH.

  • Java complains about denial of access. If you get the following exceptions, you probably didn't change the file java.policy as described in ???.

    org.objectweb.proactive.NodeException:
    java.security.AccessControlException: access denied
    (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)
    	at org.objectweb.proactive.core.node.rmi.RemoteNodeImpl.<init>(RmiNode.java:17)
    	at org.objectweb.proactive.core.node.rmi.RemoteNodeFactory._createDefaultNode
    		(RmiNodeFactory.java, Compiled Code)
    	at org.objectweb.proactive.core.node.NodeFactory.createDefaultNode(NodeFactory.java:127)
    	at org.objectweb.proactive.core.node.NodeFactory.getDefaultNode(NodeFactory.java:57)
    	at org.objectweb.proactive.ProActive.newActive(ProActive.java:315)
                    ...
    Exception in thread "main" java.lang.ExceptionInInitializerError:
    java.security.AccessControlException: access denied
    (java.util.PropertyPermission user.home re ad)
    	at java.security.AccessControlContext.checkPermission (AccessControlContext.java, Compiled Code)
    	at java.security.AccessController.checkPermission(AccessController.java:403)
    	at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    	at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1243)
    	at java.lang.System.getProperty(System.java:539)
    	at org.objectweb.proactive.mop.MOPProperties.createDefaultProperties (MOPProperties.java:190)
    	...         
    
  • Java complains on log4j initialization If you get the following message, you probably made a mistake when giving the -Dlog4j.configuration property to the java command. Be sure that the given path is right, try also to add file: before the path.

    log4j:WARN No appender could be found for logger .....
    log4j:WARN Please initialize the log4j system properly
    
  • Examples and compilation do not work at all under Windows system: Check if your java installation is not in a path containing spaces like C:\Program Files\java or C:\Documents and Settings\java. Batch scripts do not run properly when JAVA_HOME is set to such a directory. The solution is to install the JDK under a space-free path (e.g. C:\java\j2sdk.... or D:\java\j2sdk... ) and then set the JAVA_HOME environment variable accordingly.

  • Java complains about unsupported classes: Check that you are using a JRE that is at least version 1.5. since ProActive needs certain features that are only available starting from Java 1.5.

    Exception in thread "main" java.lang.UnsupportedClassVersionError:
     org/objectweb/proactive/core/util/wrapper/StringWrapper (Unsupported major.minor version 49.0)
    	at java.lang.ClassLoader.defineClass0(Native Method)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at java.security.SecureClassLoader.defineClass(Unknown Source)
    	at java.net.URLClassLoader.defineClass(Unknown Source)
    	at java.net.URLClassLoader.access$100(Unknown Source)
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    

3.2. Enabling the loggers

To enable the debugging logger the following log file can be used:

-Dlog4j.configuration=file:ProActive/compile/proactive-log4j

In this file, the relevant loggers can be uncommented (by removing the leading #). For example, the deployment loggers are activated with the following lines:

log4j.logger.proactive.deployment = DEBUG, CONSOLE
log4j.logger.proactive.deployment.log = DEBUG, CONSOLE
log4j.logger.proactive.deployment.process = DEBUG, CONSOLE

3.3. Domaine name resolution problems

To function properly, ProActive requires machines to have a correctly configured hostname and domain name. If the name of a machine is not properly configured, then remote nodes will be unable to locate the machine. To work around misconfigured domain names ProActive can be activated to use IP addresses through the following java property:

-Dproactive.useIPaddress=true

This property should be given as parameter to Java virtual machines deployed on computers that have names that do not resolve properly.

3.4. RMI Tunneling

ProActive provides RMI tunneling through ssh for crossing firewalls that only allow ssh connections. Things to verify when using rmissh tunneling:

  • ProActlive/lib/trilead-ssh2.jar must be included in the CLASSPATH of the concerned machines.

  • The JVM that is only accesible with ssh must be started using: -Dproactive.communication.protocol=rmissh

  • A key without a passhprase must be installed on the machine accepting connections with ssh. It should be possible to log into the site without using an ssh-agent and without providing a password.