Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Check out the application server log, located in {servoyInstall}/application_server/servoy_log.txt and also displayed on the Servoy Admin page under Server Log
  • When running the Servoy Application Server using the Service component, check the {servoyInstall}/application_server/.service_log.txt
  • When using the bundled PostgreSQL database engine and experiencing database related issues, check the PostgreSQL log "log postgres_log.txt" (by default located in {servoyInstall}/application_server/postgres_db/

Servoy Admin page > Server Log
When analyzing the Servoy Application Server log on the Servoy Admin page, it's its possible to change the level of displayed log messages using the dropdown at the top of the page, with "'DEBUG" ' giving the most details and "'FATAL" ' the least.

Tracing
The Server Log also provides an option to temporarily enable Tracing, to provide even more detailed information in the log. Do note that tracing should only be enabled when investigating issues, as it generates a large quantity of output.

...

  • The Servoy Application Server cannot access the Servoy Repository database. As the Servoy Application Server required the Servoy Repository database to be available on launch, failure to connect to the database will prevent the Servoy Application Server from starting. The most likely reasons for the Repository Database not being accessible are:
    • The Database Server that hosts the Servoy Repository database is not running. Note that the Servoy Application Server does NOT start any database server!
    • The Database Server runs on another Server which cannot be reached by Servoy due to network configuration
    • The Database Server doesn't accept the JDBC connection the Servoy Application Server is trying to make. See Database Connectivity for database specific trouble shooting.
    • Invalid configuration of the database server connection named 'repository_server' in Servoy
    • No database server setup within Servoy with the name 'repository_server'
  • The Servoy Application Server fails to start after updating the SSL configuration or disabling SSL. Any property in the the servoy.properties file that contains the word 'password' is automatically encrypted using the SSL settings configured (if SSL is enabled). If the configuration is changed, the Servoy Application Server is unable to decrypt the passwords. The solution is to set the passwords back to plain text in the servoy.properties file and starting the server again.
    When this scenario happens, the following error appears in the console, when starting the Servoy Application Server in a console/command window: javax.crypto.BadPaddingException: Given final block not properly padded 
  • The Servoy Application Server fails to start due to network errors that result from Java starting in IPv6 mode, while the network hardware actually runs on IPv4. The Servoy Application Server can be forced to start using IPv4 by adding '-Djava.net.preferIPv4Stack=true' to the startup command

...

  • Database Connection pool exhaustion: The Servoy Application Server manages a pool of connections for each Database Server it is connected to. When the pool is dimensioned too small, requests from Servoy Clients must wait on echother to finish, reducing the performance. Errors like 'java.util.NoSuchElementException: Timeout waiting for idle object' in the log indicate th4e Connection Pool being exhausted. For more information on connection pool configuration, see Connection pooling in the Database Connections chapter
  • OutOfMemory exceptions: If the Servoy Application Server requires more memory than is configured maximum, OutOfMemory exceptions will be raised. When these type of exceptions occur two things can happen:
    • If the Application Server is ran as a Service using the Service Component, by default the Application Server will be automatically restarted. See Running the Server As a Service for more information.
    • If the Application Service is not ran as a Service using the Service component, OutOfMemory exceptions can reduce performance, cause random exceptions of all sorts and the integrity of business logic execution is compromised, as it's not guaranteed that each part of the business logic has properly executed. Thus OutOfMemory exceptions are to be taken serious and solved. See Memory Management for more information

...

  • Java WebStart console
  • Java WebStart logging and tracing
  • Checking the contents of the JNLP file that is used to start the Smart Client, by appending a 'raw' parameter with the value 'true' at the end of the URL of the JNLP file. With this extra parameter appended, the contents of the JNLP file will become the source of the web page, which can then be viewed in the browser:
    {serverURL}/servoy-client/{solutionName}.jnlp?raw=true
  • Server log: It can be that the Smart Client has issues due to something happening on the Servoy Application Server, thus it's important to also check the Application Server log when debugging Smart Client issues

...

  • The JNLP file gets downloaded as file: When this happens, it means can be one of two reasons:
    • The browser and/or the OS has not associated with Java WebStart: Associate the the .jnlp file extensions with Java WebStart 
    • Java/Java WebStart is not installed at all: Sun/Oracle Java Runtime environments ship with Java WebStart by default. Install a Sun/Oracle JRE to solve this issue
  • Error: cannot find dataservice, it may not be running on server 
    This error is displayed in the Servoy Smart Client when it can't properly connect to the Servoy Application Server at startup. Most likely cause of this message is incorrect configuration of the Network Settings in combination with firewalls and proxies. See Network Related Settings for more information on configuring the network settings.
  • Error: Connection to Servoy server is invalid
    Invalid SSL Certificate or using a self-signed certificate, which is not supported for Smart Clients. See Network Related Settings for more information on configuring SSL
  • Error: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors 
    The Certificate used for SSL is issued by a Certificate Authroity (CA) that is not recognized by Java. For example certificates form startcom.org. The solution is to use a Certificate issues issued by a different CA that is trusted by Java
  • Error: Java Web Start error: Problem downloading the application
    Something goes wrong in Java WebStart with downloading and starting the Smart Client. Check the Details tab for pointers

Smart Client Looses Connections

...

When issues are experienced with the auto update behavior of the Servoy Smart Client, it can be due to the following reasons:

  • The setting ' servoy.fastClientStartup allows starting the Smart client from the cache, without checking with the Servoy Application Server first to see if there are updates. When set to 'true' it provides a faster launch, as it starts the Smart Client from the Java Web Start cache. The downside it that it can happen after the Servoy Server Server or  Solution updated that the Smart Client launch will fail. If the Smart Client gets started again after the fail. When this happens the cache will be cleared and on the next launch the latest version will be automatically downloaded from the Servoy Application Server.

...

  • Microsoft JScript compilation error: syntax error (Windows only):  
    When during launching the Smart Client a Syntax error dialog pops up with the title title 'Microsoft JScript compilation error', this means that on the client machine Java WebStart is configured to look at the browser for the Proxy settings. On Windows, this means that it is looking at the Local Area Network (LAN) Settings under Connections of Internet Connections of Internet Properties. Where these setting are located differs per Windows version, but they can usually be accessed through the (advanced) network settings of a browser. The solution is to either configure Java WebStart to use "Direct connection" (Not to be confused with Servoy's Direct Connection mode) or to uncheck all options in the LAN Settings of Windows. As both options are system-wide settings they can influence other applications.
  • Plugin or bean not loading in the Client: 
    If one specific plugin or bean doesn't seem to load in the Client, check the server log around the time when the Servoy Application Server got started. At server startup, all the plugins and beans are loaded. If there is an issue with the plugin or bean, it will be excluded from the list of plugins and beans send to the client. Any issue with the plugin or bean would result in errors in the server log when the server gets started.  You can review the The list of plugins that are send to the client can be reviewed by adding "adding ?raw=true" to the url URL of the Smart Client (http://domain:post/servoy-client/solutionName.jnlp) and then viewing the content of the JNLP file by looking at the source code of the page in the browser.

...

  • Is the required JDBC driver available? Servoy comes bundled with a limited set of JDBC drivers, due to licensing. For example, it is not allowed to bundle JDBC drivers of Oracle or the official Microsoft SQL server JDBC driver. See the database section of the Servoy stack info for a list of the shipped JDBC drivers. If no JDBC driver is listed for the database to which a connection needs to be made, it needs to be added manually. See Database Connectivity > JDBC Drivers for more details on which JDBC driver to use and how to add it.
  • Is the database up and running? While obvious that the database needs to be up and running in order for it to be used, it does happen quite often that the source of connectivity issues boils down to the database not being started. Note that the Servoy Application Server doesn't start any database!
  • The Tables & views do not show up in Servoy Developer/errors on the server about missing tables/views while the connection itself seems to work: check that the schema and catalog properties of the database server settings are set correctly. These two properties are send to the database and based on those the database/JDBC driver filters the visible Tables/views for the connection

...

  • Servoy doesn't see the tables in the database: Most likely cause is the 'Schema' property for the connection. This property must be set to the appropriate 'Schema' in the Oracle database. The value for the 'the Schema' property must be all uppercase when connecting to an Oracle Database.

...

  • Failed to establish a connection: In order to connect to SQL Server using JDBC, the TCP/IP option of SQL server needs to be enabled, which it isn't by default. If this is the case, a an error similar to the following can be found in the log: 'com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed.'
  • System tables and Views show up in Servoy Developer, despite the 'Skip System Tables' in the Database Server definition: This is a known issue with the SQL Server driver.

MySQL

  • Connection to database lost: MySQL is notorious for dropping idle connections after a certain timeout. This can be prevented by using the following  'validation query' for the Database Server connection: 'select 1', at the cost of a little overhead. It's preferred to configure MySQL to use longer timeouts.