- Java EE 8 High Performance
- Romain Manni Bucau
- 256字
- 2021-06-30 19:14:30
Ensure you know your resources
It is crucial to properly tune the resources (databases, thread pools, and so on). Since Java EE 6, some resources can be defined in the application. For instance, a DataSource can be defined with:
@DataSourceDefinition(
name = "java:app/jdbc/quote_manager",
className = "com.mysql.jdbc.Driver",
url = "jdbc:mysql://localhost:3306/quote_manager",
user = "root",
password = "password"
)
public class DataSourceConfiguration {
}
This is often a bad idea since you can't externally configure it (it is hardcoded). Thus, you often end up configuring the resources in server specific files or UI.
This is a good practise to avoid in the application. But outside the application, Java EE doesn't define any way or standard to configure the server. Everything is vendor specific. However, you will need to tune it! For that reason, it is crucial to ensure you know:
- What kind of resources your application needs
- How to create them and configure them in your server
This is a great start for the application side but resources are generally linked to an external side like a database. Here again, it will be very important to know the resource itself, how it is configured and potentially how to tune it if needed. A very simple example is the number of connections you can use on a database. If you can only use 20 connections, no need to configure 100 in the application, this would generate a lot of errors and slow down the application, or just make it fail depending on how the pool is configured.