Skip to content

Troubleshooting

pupi1985 edited this page May 19, 2016 · 3 revisions

Troubleshooting

Enable service logging

If you have any issues running the application as a service/daemon you can add some debug information by changing the files/jsw/wrapper.conf file:

In order to see some additional details of what is going on behind the scenes when pressing the service/daemon interaction buttons you should turn this line:

##include.debug

into:

#include.debug

In order to see more details in the files/jsw/wrapper.log file you can turn this line:

wrapper.logfile.loglevel=FATAL

into:

wrapper.logfile.loglevel=DEBUG
Issues with Java executable path

If the Java executable is not in your path you can either add it or update the following line in the files/jsw/wrapper.conf file to reflect the absolute or relative path (relative to the location of the IPMonitor.jar file) to the Java executable of the Java Virtual Machine you want to use:

wrapper.java.command=java
Faking an IP change

IP Monitor expects the input of an URL to get a file and parse it looking for an IP address. However, this URL does not need to be strictly going through the HTTP protocol. This URL could point to your own local filesystem. That way you can create a file with an IP address, fetch the IP address from the file, manually edit the file and change the IP address in it and then fetch the IP address again. This will be processed as any IP change.

In order to use the local filesystem just point to the appropriate file in the Checking URL field in the Options->Monitor menu. The syntax of the URL to use depends on the operative system. For example, to access the ip.txt file you should use the following syntax:

  • If using Linux/Mac input:

    file:///path-to-your-file/ip.txt
    
  • If using Windows input:

    file:///C:/path-to-your-file/ip.txt
    
Understanding the warning about loading wrapper-windows-x86-64.dll

When using Windows, you might face the following warning while trying to start IP Monitor as a service (usually from the console).

jvm 1    | WrapperManager: Initializing...
jvm 1    | WrapperManager:
jvm 1    | WrapperManager: WARNING - Unable to load the Wrapper's native library 'wrapper-windows-x86-64.dll'.
jvm 1    | WrapperManager:           The file is located on the path at the following location but
jvm 1    | WrapperManager:           could not be loaded:
jvm 1    | WrapperManager:             C:\path-to-ip-monitor\lib\jsw\lib\wrapper-windows-x86-64.dll
jvm 1    | WrapperManager:           Please verify that the file is both readable and executable by the
jvm 1    | WrapperManager:           current user and that the file has not been corrupted in any way.
jvm 1    | WrapperManager:           One common cause of this problem is running a 32-bit version
jvm 1    | WrapperManager:           of the Wrapper with a 64-bit version of Java, or vica versa.
jvm 1    | WrapperManager:           This is a 64-bit JVM.
jvm 1    | WrapperManager:           Reported cause:
jvm 1    | WrapperManager:             C:\path-to-ip-monitor\lib\jsw\lib\wrapper-windows-x86-64.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
jvm 1    | WrapperManager:           System signals will not be handled correctly.

This only happens when you try to run the service using a 64-bit Java Runtime Environment. IP Monitor relies on Java Service Wrapper, which is the component responsible of all the service management. This component is distributed in a few flavours, being the free one more limited than the non-free ones. The main limitation, as stated in their site is:

64-bit Windows versions of the Java Service Wrapper are not currently being made available in the Community Edition.

This means it won't be possible to run IP Monitor as a service under a 64-bit Java Runtime Environment. However, after some testing I noticed the 32-bit version of the wrapper wrapper-windows-x86-32.dll seems to work relatively well, despite the warning. So the wrapper-windows-x86-64.dll distributed with IP Monitor is just a copy of wrapper-windows-x86-32.dll. I can't confirm this will work correctly but it is up to you to decide whether you're OK with using it this way or not.

An alternative approach, is to use a 32-bit Java Virtual Machine to run the service. This is relatively simple. You just need to download and install a 32-bit Java 7+ virtual machine and then update the Java executable path in files/jsw/wrapper.conf so that, when the service is started by Windows, it uses this other Java Virtual Machine instead of the default one.

Another alternative is to buy one of the non-free versions of the Java Service Wrapper. As I don't own any of them I just can guess that it will be just a matter of copying the directory structure you will download from them replacing the one in lib/jsw, but it is just a guess. Alternatively, it could be possible to just replace the files lib/jsw/bin/wrapper-windows-x86-64.exe and lib/jsw/lib/wrapper-windows-x86-64.dll. I can't give more support than that.