Traccar Server not listening on configured ports for devices

zzmyers6 years ago

I have had a running instance on Traccar 3.10 Server on a Linux server which has been operating just fine since early this year and yesterday we had a server room power failure and everything went down. When the Traccar server came back up, no traffic was being received on the configured port for my GPS devices. I have checked for network issues closing the port and then used nmap to check the port locally on the server and it is reporting as CLOSED. It looks like Traccar is not listening on any ports which does not make sense to me. No changes to the configuration were made and I can't see anything which is different after bringing the server back up.

I am not using the web client, just the server for my application. I have my own client. I am using the MySQL database for the server.

Does anyone have any idea what could be the problem?

Steve

Anton Tananaev6 years ago

Is service running? Have you checked logs?

zzmyers6 years ago

Yes, the service is running. The log output is:

2017-11-21 18:37:20  INFO: Operating system name: Linux version: 4.4.90-18.32-default architecture: amd64
2017-11-21 18:37:20  INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: Oracle Corporation version: 25.151-b12
2017-11-21 18:37:20  INFO: Memory limit heap: 3566mb non-heap: 0mb
2017-11-21 18:37:20  INFO: Character encoding: UTF-8 charset: UTF-8
2017-11-21 18:37:20  INFO: Version: 3.10-SNAPSHOT

Both netstat and lsof show no ports being listened on by traccar and nothing listening on the ports I would expect to be opened by traccar.

Anton Tananaev6 years ago

How did you check that the service is running? Log doesn't prove anything. You need to confirm that the process is actually running.

zzmyers6 years ago

Contents of the traccar.xml file are:

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>

<properties>

    <!--

    This is the main configuration file. All your configuration parameters should be placed in this file.

    Default configuration parameters are located in the "default.xml" file. You should not modify it to avoid issues
    with upgrading to a new version. Parameters in the main config file override values in the default file. Do not
    remove "config.default" parameter from this file unless you know what you are doing.

    For list of available parameters see following page: https://www.traccar.org/configuration-file/

    -->

    <entry key="config.default">conf/default.xml</entry>

    <entry key='web.enable'>false</entry>
    <entry key='geocoder.enable'>false</entry>

    <entry key='database.driver'>com.mysql.jdbc.Driver</entry> 
    <entry key='database.dataSource'>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</entry>
    <entry key='database.url'>jdbc:mysql://127.0.0.1:3306/gps2?allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>root</entry>
    <entry key='database.password'>xxxxxxxx</entry>

    <entry key='location.enable'>true</entry>
    <entry key='location.type'>opencellid</entry>
    <entry key='location.key'>6b0b13dc-e693-40b8-bae7-069287c1ca5f</entry>

    <entry key='logger.level'>info</entry>

    <entry key='h02.port'>81</entry>
    <entry key='h02.messageLength'>45</entry>
    <entry key='h02.timeout'>300</entry>
    <entry key='gt06.port'>9080</entry>

    <entry key='filter.enable'>true</entry>
    <entry key='filter.future'>300</entry>

    <entry key='database.updateLatestPosition'>
        UPDATE devices SET positionId = :id, offline = 0 WHERE id = :deviceId
    </entry>

</properties>
zzmyers6 years ago

Checked with "ps aux". Shows process running.

zzmyers6 years ago

The process command line shows as "java -jar ./tracker-server.jar conf/traccar.xml /tmp".

Anton Tananaev6 years ago

Why did you change config.default? I suggest you try official Traccar without any modifications to the config. Also, I would recommend to upgrade to the latest release.

zzmyers6 years ago

I am downloading the latest release to try. I don't recall changing config.default. The other changes are done to make this work with the ports I have available externally on the firewall and some other changes to help handle things which came up. All was working for months, so it is very perplexing that it stopped working.

zzmyers6 years ago

Ok, I have tracked the problem down to the MySQL driver. If I run the software using H02 for the database it works properly. If I use MySQL, it does not. Now I am trying to figure out why that is as I need the MySQL database as I have a huge amount of data.

zzmyers6 years ago

FOUND IT! There was a record in the DATABASECHANGELOGLOCK which was blocking the server from starting properly. Deleted the record and it started running again.

davejh6 years ago

Hi I am just wondering why a record in the DATABASECHANGELOGLOCK would stop the server from running. Any info

Anton Tananaev6 years ago

It will prevent if it's in the locked state. Usually it means that someone killed process in the middle of the database migration (upgrade from older version).

zzmyers6 years ago

I suspect what happened is my server apparently got bounced up and down at least a couple of times due to a power issue and it could have died when Traccar was starting, leaving a lock record in the table as Traccar did not complete starting. Anyhow, that now goes on my checklist of things to check if there is a problem with Traccar (which is rare to be honest).