Date: Thu, 28 Mar 2024 19:43:35 +0000 (UTC)
Message-ID: <1787883734.10767.1711655015103@911f0a1bad02>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_10766_914640276.1711655015103"
------=_Part_10766_914640276.1711655015103
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
In This Chapter
=20
=20
Servoy Applicati=
on Server troubleshooting
=20
When experiencing problems with the Servoy Application Server, there are=
a number of known reasons, which are discussed below.
=20
When the discussed problems below do not offer a solution, the nest step=
s would be:
=20
=20
- Check out the application server log, located in {servoyInstall}/applic=
ation_server/servoy_log.txt and also displayed on the Servoy Admin page und=
er Server Log
=20
- When running the Servoy Application Server using the Service component,=
check the {servoyInstall}/application_server/.service_log.txt
=20
- When using the bundled PostgreSQL database engine and experiencing data=
base related issues, check the PostgreSQL log "postgres_log.txt" (by defaul=
t located in {servoyInstall}/application_server/postgres_db/)
=20
=20
Servoy Admin page > Server Log
When analyzi=
ng the Servoy Application Server log on the Servoy Admin page, it's it=
s 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" t=
he least.
=20
Tracing
The Server Log also provides an option to t=
emporarily 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.
=20
Server doesn't start
=20
When the Servoy Application Server will not start, there are a few likel=
y reasons for it:
=20
=20
- The Servoy Application Server cannot access the Servoy Repository datab=
ase. As the Servoy Application Server required the Servoy Repository databa=
se to be available on launch, failure to connect to the database will preve=
nt the Servoy Application Server from starting. The most likely reasons for=
the Repository Database not being accessible are:=20
=20
- The Database Server that hosts the Servoy Repository database is not ru=
nning. Note that the Servoy Application Server does NOT start any database =
server!
=20
- The Database Server runs on another Server which cannot be reached by S=
ervoy due to network configuration
=20
- The Database Server doesn't accept the JDBC connection the Servoy Appli=
cation Server is trying to make. See Database Connectivity for database specific trouble shoo=
ting.
=20
- Invalid configuration of the database server connection named "reposito=
ry_server" in Servoy
=20
- No database server setup within Servoy with the name "repository_server=
"
=20
=20
- The Servoy Application Server fails to start after updating the SSL con=
figuration or disabling SSL. Any property in the servoy.properties file tha=
t contains the word "password" is automatically encrypted using the SSL set=
tings 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 an=
d starting the server again.
When this scenario happens, the following =
error appears in the console, when starting the Servoy Application Server i=
n a console/command window: javax.crypto.BadPaddingException: Given=
final block not properly padded =20
- The Servoy Application Server fails to start due to network errors that=
result from Java starting in IPv6 mode, while the network hardware actuall=
y runs on IPv4. The Servoy Application Server can be forced to start using =
IPv4 by adding '-Djava.net.preferIPv4Stack=3Dtrue' to the startup comm=
and
=20
=20
Server crashes
=20
The Servoy Application Server is very robust and is known for its stabil=
ity and extreme long uptime. The Servoy Application Server is not like=
ly to actually crash, in a sense that the entire process is killed. What ca=
n happen is that due to incorrect configuration the performance decreases t=
o the point where it seems like the Servoy Application Server has become un=
responsive.
=20
The most likely reason for this to happen are:
=20
=20
- Database Connection pool exhaustion: The Servoy Application Server mana=
ges a pool of connections for each Database Server it is connecte=
d 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 mo=
re information on connection pool configuration, see Conne=
ction pooling in the Database Connections chapter
=20
- OutOfMemory exceptions: If the Servoy Application Server requires more =
memory than is configured maximum, OutOfMemory exceptions will be raised. W=
hen these type of exceptions occur two things can happen:=20
=20
- If the Application Server is ran as a Service using the Service Compone=
nt, by default the Application Server will be automatically restarted. =
;See Runni=
ng the server as a service for more information.
=20
- If the Application Service is not ran as a Service using the Service co=
mponent, OutOfMemory exceptions can reduce performance, cause random except=
ions of all sorts and the integrity of business logic execution i=
s compromised, as it's not guaranteed that each part of the busin=
ess logic has properly executed. Thus OutOfMemory exceptions are to be take=
n serious and solved. See Mem=
ory Management for more information
=20
=20
=20
Server automatically restar=
ts
=20
The Servoy Application Server will not automatically restart itself, exc=
ept when run using as a service using the Service component and OutOfMemory=
exceptions occur. See Running the server as a service for more information.
=20
Servoy Smart Client&nb=
sp;troubleshooting
=20
Smart Client related issues usually are in one of the following categori=
es:
=20
=20
- Startup related issues
=20
- Connectivity related issues
=20
- Performance related issues
=20
=20
When investigating issues related to Smart Clients, the following tools =
are available:
=20
=20
- Java WebStart console
=20
- Java WebStart logging and tracing
=20
- 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?ra=
w=3Dtrue =20
- 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 ch=
eck the Application Server log when debugging Smart Client issues
=20
=20
Smart Client won't start
=20
=20
- The JNLP file gets downloaded as file: When this happens, it means can =
be one of two reasons:=20
=20
- The browser and/or the OS has not associated with Java WebSta=
rt: Associate the jnlp file extensions with Java WebStart
=
=20
- Java/Java WebStart is not installed at all: Sun/Oracle Java Runtime env=
ironments ship with Java WebStart by default. Install a Sun/Oracle JRE to s=
olve this issue
=20
=20
- 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. Mos=
t likely cause of this message is incorrect configuration of the Network Se=
ttings in combination with firewalls and proxies. See Network related settings for =
more information on configuring the network settings. =20
- Error: Connection to Servoy server is invalid
Inva=
lid SSL Certificate or using a self-signed certificate, which is not suppor=
ted for Smart Clients. See Network related settings for more information on configu=
ring SSL =20
- Error: sun.security.validator.ValidatorException: PKIX path val=
idation failed: java.security.cert.CertPathValidatorException: Path does no=
t chain with any of the trust anchors
The Certificate us=
ed 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 us=
e a Certificate issues by a different CA that is trusted by Java =20
- Error: Java Web Start error: Problem downloading the applicatio=
n
Something goes wrong in Java WebStart with downloading and s=
tarting the Smart Client. Check the Details tab for pointers =20
=20
Smart Client looses connec=
tions
=20
Smart Clients operate connected to the Application Server. When the conn=
ection is lost, the Smart Client will automatically try to reconnect. When =
reconnection is not possible, the Smart Client will automatically provide t=
he user with an error message and the option to close the Smart Client or t=
o continue to try and reconnect.
=20
If disconnections occur without apparent reason like no internet/wifi/ne=
twork connection, the following items could be the cause of the problem:
=20
=20
- One of the network components is closing the connection automatically. =
Most likely the network component is configured to automatically close inac=
tive or long running requests. If altering the network setup is not an opti=
on, it's possible to lower the ping frequency between the Smart Client and =
the Server to make sure the connection remains active. Depending on the con=
figuration of the Smart Client related Network setting, different settings =
might require updating. See Network related settings for more information.
=20
=20
=20
When the solution that is run in the Smart Client doesn't provide the ex=
pected performance, it can be that it's the solution that requires tuning. =
Besides required tuning of the solution, the following items could negative=
ly impact the Smart Client performance
=20
=20
- Too little memory available: The Smart Client is a Java process and as =
such it needs to be explicitly told the maximum amount of memory it is allo=
wed to use. For more information on memory management for Smart Clients see=
Smart Client memory management in the Memory Management chapter
=20
- Connection issues: if the network connection is not stable, this could =
have a negative impact on the Smart Client performance. If for example a fi=
rewall or NAT router automatically starts closing connections because it ca=
n't handle many open connections, there will be a performance penalty due t=
o the fact Servoy tries to use a connection that is already closed and then=
need to establish a new connection. By lowering the RMI Connection timeout=
the use of already closed connections can be prevented. See Network related settings fo=
r more information RMI connection timeout
=20
- Database connection pool exhaustion: When the solution that is run in t=
he Smart Client required database access, it sends the request to the Servo=
y Application Server that in turn communicates with the database. It does s=
o using a pool of connections. If all clients do more requests at the same =
time than the maximum allowed number of connections in the pool, the reques=
ts will take longer to execute, as they will be on hold untill a used conne=
ction is released back to the pool. For more information on Connection pool=
ing, see Connection pooling in the Database Connections chapter
=20
=20
Smart Client crashes
=20
Servoy Smart Clients are not prone to crash. In the unlikely event that =
this does happen, it's best to enable Java WebStart logging and tracing, st=
art a Smart Client and use it until it crashes and then analyse the generat=
ed log
=20
Smart Client automatic=
update issues
=20
The Servoy Smart Client will by default automatically update itself if a=
new version of the Smart Client itself or a Solution that is run in the Sm=
art Client is available on the Servoy Application Server.
=20
When issues are experienced with the auto update behavior of the Servoy =
Smart Client, it can be due to the following reasons:
=20
=20
- 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 upd=
ated that the Smart Client launch will fail. If the Smart Client gets start=
ed 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 t=
he Servoy Application Server.
=20
=20
If the above described situations are not applicable, there ar=
e three options to force the update:
=20
=20
- Flush the solution on the Servoy Admin page: Each Solution listed on th=
e Solutions page of the Servoy Admin page has a flush button. When clicked,=
the internal version id for the Solution is updated with a new value, indi=
cating to connecting Smart Clients that a new version is available and shou=
ld be downloaded
=20
- Remove the Smart Client application from the Java WebStart cache: Cache=
d applications can be removed from the cache through the Java Control Panel=
. See Client side settings through the Java Control =
Panel in the Smart Client=
chapter for more information
=20
- Remove the temporary internet files from the Java WebStart cache: The W=
ebStart JNLP file is also cached by WebStart in the temporary Internet file=
s. If the above mentioned solutions fail, deleting the JNLP could be the la=
st resort. See the Temporary Internet Files in the Java Control Panel.=
=20
=20
Other Smart Client issues
=
=20
=20
- Microsoft JScript compilation error: syntax error (Windows only):  =
;
When during launching the Smart Client a Syntax error&n=
bsp;dialog pops up with the title Microsoft JScript compilation er=
ror, 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 u=
nder Connections of Internet Properties. W=
here these setting are located differs per Windows version, but they can us=
ually be accessed through the (advanced) network settings of a browser.&nbs=
p;The solution is to either configure Java WebStart to use "Direct connecti=
on" (Not to be confused with Servoy's Direct Connection mode) or to uncheck=
all options in the LAN Settings of Windows. As both opt=
ions are system-wide settings they can influence other applications. =
=20
- Plugin or bean not loading in the Client:
If one specific plu=
gin 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 plugi=
n or bean, it will be excluded from the list of plugins and beans send to t=
he 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 list of pl=
ugins that are send to the client by adding "?raw=3Dtrue" to the url of the=
Smart Client (http://domain:post/servoy-clien=
t/solutionName.jnlp) and then viewing the content of the JNLP file by l=
ooking at the source code of the page in the browser. =20
=20
Proxy Settings in Java Webstart, causi=
ng fallback to Direct Connection, for which requirements aren't met
=20
Database Connectivity
=20
General
=20
=20
- Is the required JDBC driver available? Servoy comes bundled with a=
limited set of JDBC drivers, due to licensing. For example, it is not allo=
wed to bundle JDBC drivers of Oracle or the official Microsoft SQL server J=
DBC 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 Connectivit=
y > JDBC Drivers for more details on which JDBC driver to use and ho=
w to add it.
=20
- Is the database up and running? While obvious that the database ne=
eds to be up and running in order for it to be used, it does happen quite o=
ften that the source of connectivity issues boils down to the database not =
being started. Note that the Servoy Application Server doesn't start any da=
tabase!
=20
- The Tables & views do not show up in Servoy Developer/errors on the=
server about missing tables/views while the connection itself seems to wor=
k: check that the schema and catalog properties of the database server sett=
ings are set correctly. These two properties are send to the database and b=
ased on those the database/JDBC driver filters the visible Tables/views for=
the connection
=20
=20
Oracle
=20
When connecting to Oracle databases, make sure to use the correct versio=
n of the Oracle JDBC driver. Each Oracle database version has it's own vers=
ion of a JDBC driver and when connecting to Oracle with a JDBC driver that =
was meant for another version of Oracle, the results can be mixed
=20
=20
- Servoy doesn't see the tables in the database: Most likely cause i=
s the 'Schema' property for the connection. This property must be set to th=
e appropriate 'Schema' in the Oracle database. The value for the 'Schema' p=
roperty must be all uppercase when connecting to an Oracle Database.
=
=20
=20
SQL Server
=20
=20
- Failed to establish a connection: In order to connect to SQL Serve=
r 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 error similar to the following ca=
n be found in the log: "com.microsoft.sqlserver.jdbc.SQLServerException: Th=
e TCP/IP connection to the host has failed."
=20
- System tables and Views show up in Servoy Developer, despite the "Skip =
System Tables" in the Database Server definition: This is a known issu=
e with the SQL Server driver
=20
=20
MySQL
=20
=20
- Connection to database lost: MySQL is notorious for dropping idle =
connections after a certain timeout. This can be prevented by using the fol=
lowing "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.
=20
------=_Part_10766_914640276.1711655015103--