4 Production Features in Payara Server 5 You Might Not Know About

Uncategorized

If you’ve upgraded to Payara Server 5 or are considering using Payara Server in production, here are 4 production features you might not know about – but should.

 

1)Payara Server Can Detect and Log Slow SQL Queries Executed Via a Connection Pool.

The Slow SQL logger monitors all queries executed on the connection pool and if they exceed a configurable execution time in seconds, a warning message is logged into the server log. The warning message (see below) logs the SQL query and the stack trace to the code executing the query. This enables rapid diagnosis, pinpointing the exact lines of code to investigate.

 

To configure slow SQL logging via the administration console, navigate to the connection pool’s Advanced Properties tab and specify the Slow Query Log Threshold time in seconds. A value of -1 disables logging of slow queries.

 

1

 

2)Payara Server Can Display Real-Time Statistics from the System Shell Using asadmin.

From within a system shell, we may run the asadmin monitor command to display real-time statistics. The –type parameter specifies which monitoring component should be monitored:

asadmin> monitor --type=jvm

 

This command will log real-time data in intervals (every 30 seconds by default). We may redirect the output of the command to a file to archive monitoring information. There are 4 type of statistics we can monitor (arguments to –type parameter):

  • servlet 
  • httplistener
  • webmodule
  • jvm

 The command asadmin help monitor will provide detailed information about the monitor command.

 

Using asadmin, we can also access all the monitoring data by executing the following command:

 

asadmin> get --monitor server.*

 

This command will return all available server and application monitoring data. This might easily be several hundred lines of text. Of course, we can use a more precise filter to limit the amount of data:

 

asadmin> get --monitor server.transaction-service.*

Or we may request data only about a specific module, for example:

 

asadmin> get --monitor server.transaction-service.committedcount-count

 

These commands provide exactly the same amount of information that is available through the REST interface. The last command corresponds to the following URL: http://localhost:4848/monitoring/domain/server/transaction-service/committedcount.

 

3) Payara Server Comes with a General Notification Service Which Includes the Request Tracing Service.

The Request Tracing Service provides tracing facilities for multiple protocols and process communications done by the components of deployed applications.

 

The service helps users to detect application slowness and performance degradation by logging requests that exceed a given threshold. The trace data from long-running requests gives insight to solving bottlenecks and other performance issues.

Because Request Tracing (and other monitoring) services depend on the Notification service to output their data, both the Notification service itself, and at least one notifier, must be enabled for any data to be recorded. If this does not happen, then the data will be discarded.

 

Below is a sample output from enabling the request tracing service in the admin console:

 

{
"traceSpans": [
{
"operationName": "processContainerRequest",
"spanContext": {
"spanId": "5148919a-2413-4cbd-af6c-8cb469f8b0ec",
"traceId": "e7ad7db6-b626-4995-aa10-e2e6a073033e"
},
"startTime": "2018-04-10T11:15:50.018+01:00[Europe/London]",
"endTime": "2018-04-10T11:15:50.164+01:00[Europe/London]",
"traceDuration": "146000000",
"spanTags": [
{ "Server": "server" },
{ "Domain": "domain1" }
]
},
{
"operationName": "authenticateJaspic",
"spanContext": {
"spanId": "374aefba-60ce-4011-98c5-9ade69eeeaeb",
"traceId": "e7ad7db6-b626-4995-aa10-e2e6a073033e"
},
"startTime": "2018-04-10T11:15:50.018+01:00[Europe/London]",
"endTime": "2018-04-10T11:15:50.019+01:00[Europe/London]",
"traceDuration": "1000000",
"spanTags": [
{ "Context": "" },
{ "AppContext": "__asadmin " },
{ "AuthResult": "true" },
{ "Principal": "admin" }
]
},
{
"operationName": "processServletRequest",
"spanContext": {
"spanId": "fd66fafe-a741-408c-b99a-cb7a963c07ac",
"traceId": "e7ad7db6-b626-4995-aa10-e2e6a073033e"
},
"startTime": "2018-04-10T11:15:50.019+01:00[Europe/London]",
"endTime": "2018-04-10T11:15:50.164+01:00[Europe/London]",
"traceDuration": "145000000",
"spanTags": [
{ "referer": "[https://localhost:4848/common/index.jsf]" },
{ "QueryString": "configName=server-config&bare=true" },
{ "host": "[localhost:4848]" },
{ "Class": "javax.faces.webapp.FacesServlet" },
{ "Method": "GET" },
{ "URL": "https://localhost:4848/payaraExtras/requestTracing/requestTracing.jsf" },
{ "accept-encoding": "[gzip, deflate, br]" },
{ "accept": "[*/*]" }
]
}
]

 

4) Payara Server Provides Support for Custom SQL Trace Listeners.

A SQL Trace Listener is registered against a data source and is called after each method call made on the JDBC connection pool.

 

SQL Trace Listeners allows developers to track all calls to the database and can be used to develop custom auditing, error handling or monitoring components. SQL Trace Listeners can be enabled globally on a data source if the class that implements it is on the server’s classpath, or can be enabled on application specific data sources by including them in the application’s WAR or EAR.

 

Configuring SQL Trace Listeners Using the Payara Server Administration Console

 

SQL Trace Listeners can be enabled on a JDBC connection pool through the administration web console. Navigate to the Advanced Tab of your connection pool by selecting the JDBC → JDBC Connection Pools → <Your Connection pool>.

 

Proceed to add the fully qualified class name of your SQL Trace Listener implementation class in the SQL Trace Listeners field:

 

4-1

 

Payara Micro also supports SQL Trace Listeners which brings powerful operational diagnostics to your microservices platform. Take a look at the instructions in the technical documentation to write a custom trace listener in the Payara Platform.

 

Want to learn more about using Payara Server in production? Take a look at our In Production Resources.

 

If you need help migrating to Payara Server or supporting your production Payara Server environment, consider our commercial support services.

 

If you’re not yet using Payara Server, download the open source software and try it out!

 

Comments (0)

Post a comment

Your email address will not be published. Required fields are marked *

Payara needs the contact information you provide to us to contact you about our products and services. You may unsubscribe from these communications at any time. For information on how to unsubscribe, as well as our privacy practices and commitment to protecting your privacy, please review our Legal & Privacy Policy.

Related Posts

4 minutes
Uncategorized

Leading the Way: Payara Platform Community 7 Beta Now Fully Jakarta EE 11 Certified

We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]

Understanding the Security Issues of Aging Middleware 6 minutes
Community

Boost Developer Productivity with Payara Server Maven Plugin + AI Agent

Managing Payara Server Just Got Smarter  Imagine managing your Jakarta EE applications not just with Maven goals, but by […]

Blue background with coral and fish. Left text: 'MONTHLY CATCH'. Right: laptop screen with tech tabs and Payara Community logo. 4 minutes
Community

The Payara Monthly Catch – August 2025

Welcome aboard the August 2025 issue of The Payara Monthly Catch! With summer in full swing, things may have felt […]