PXF configuration files
The PXF runtime configuration directory ($PXF_BASE/conf) includes the following customizable configuration files:
-
pxf-application.properties — defines PXF service application configuration properties.
-
pxf-env.sh — defines PXF service and JVM-specific runtime configuration properties.
-
pxf-log4j2.xml — defines PXF logging configuration properties.
-
pxf-profiles.xml — defines custom PXF profiles.
Modify the PXF configuration
After updating a PXF configuration file, you must synchronize the changes to all hosts in the Greengage DB cluster and then restart PXF for the changes to take effect.
If you modify a PXF profile or a server configuration, you can apply the changes and clean up the affected connection pools by running the pxf cluster reload command, without the need to restart PXF.
-
Modify the configuration files as required.
-
On the Greengage DB master host, run the
synccommand to synchronize the PXF configuration to all cluster hosts:$ pxf cluster sync -
Restart PXF on all Greengage DB hosts:
$ pxf cluster restart
For more details on managing PXF services, see Manage PXF.
For the detailed description of the pxf cluster commands, see Overview of the pxf cluster commands.
pxf-application.properties
The pxf-application.properties file exposes the PXF service application configuration properties. To change the value of a property, you may need to add it or uncomment the corresponding line if it’s already present.
General properties
| Property | Description | Default value |
|---|---|---|
pxf.connection.timeout |
The Tomcat server connection timeout for read operations.
Set |
|
pxf.connection.upload-timeout |
The Tomcat server connection timeout for write operations.
Set |
|
pxf.max.threads |
The maximum number of PXF Tomcat threads |
200 |
pxf.task.pool.allow‑core‑thread‑timeout |
Identifies whether the core streaming threads are allowed to time out |
false |
pxf.task.pool.core-size |
The number of core streaming threads |
8 |
pxf.task.pool.queue-capacity |
The capacity of the core streaming thread pool queue |
0 |
pxf.task.pool.max-size |
The maximum allowed number of core streaming threads |
|
pxf.log.level |
The log level for the PXF service |
info |
pxf.fragmenter-cache.expiration |
The amount of time after which an entry expires and is removed from the fragment cache |
|
server.address |
The PXF server listen address |
localhost |
SSL configuration properties
The following properties let you manage PXF SSL configuration.
| Property | Description | Default value |
|---|---|---|
server.ssl.enabled |
Defines if SSL is enabled |
|
server.ssl.enabled-protocols |
The comma-separated list of supported TLS protocols |
|
server.ssl.key-store |
The path to the keystore containing the server private key and the signed server certificate |
|
server.ssl.key-store-password |
The password to the keystore |
|
server.ssl.key-store-type |
The type of the keystore |
|
server.ssl.client-auth |
Client authentication method.
If set to |
|
server.ssl.trust-store |
The path to the truststore containing the client private key and signed client certificate |
|
server.ssl.trust-store-password |
The password to the truststore |
|
server.ssl.trust-store-type |
The type of the truststore |
|
JDBC password encryption properties
The following properties are required for the pxf encrypt command to work correctly.
| Property | Description | Default value |
|---|---|---|
pxf.ssl.jks-store.path |
The absolute path to the Java keystore |
— |
pxf.ssl.jks-store.password |
The Java keystore password |
— |
pxf.ssl.salt.key |
An alias used to retrieve the encryption key from the Java keystore |
— |
HashiCorp Vault / OpenBao integration properties
These options let you configure integration with enterprise secrets platforms, such as HashiCorp Vault or OpenBao, maintained through Spring Cloud Vault.
| Property | Description | Default value |
|---|---|---|
spring.cloud.vault.enabled |
Defines if the Spring Cloud Vault configuration server is enabled |
|
spring.cloud.vault.kv.enabled |
Defines if the key-value backend is enabled |
|
spring.cloud.vault.kv.backend |
The name of the default backend |
|
spring.cloud.vault.kv.application-name |
The application name to be used for the context |
|
spring.cloud.vault.kv.default-context |
The name of the default context |
|
spring.cloud.vault.kv.profiles |
The list of active profiles |
|
spring.cloud.vault.fail-fast |
Defines if the service should fail to start if data cannot be obtained from Vault |
|
spring.cloud.vault.namespace |
The Vault namespace |
|
spring.cloud.vault.host |
The Vault server host name |
|
spring.cloud.vault.port |
The Vault server port |
|
spring.cloud.vault.scheme |
The protocol scheme, can be either |
|
spring.cloud.vault.authentication |
The Vault authentication method |
|
spring.cloud.vault.app-role.role-id |
RoleID, an identifier that selects the |
|
spring.cloud.vault.app-role.secret-id |
SecretID, a credential that is required by default for any login and is intended to always be secret |
|
spring.cloud.vault.token |
Static vault token.
Required if |
|
spring.cloud.vault.ssl.trust-store |
The truststore that contains SSL certificates |
|
spring.cloud.vault.ssl.trust-store-password |
The password for accessing the truststore |
|
spring.config.import |
The Vault configuration location |
|
pxf-env.sh
The pxf-env.sh file exposes these PXF JVM configuration properties. To change the value of a property, you may need to add it or uncomment the corresponding line if it’s already present.
| Property | Description | Default value |
|---|---|---|
JAVA_HOME |
The path to the JRE home directory |
/usr/java/default |
PXF_LOGDIR |
The PXF log directory |
$PXF_BASE/logs |
PXF_RUNDIR |
The PXF run directory |
$PXF_BASE/run |
PXF_JVM_OPTS |
The default options for the PXF Java virtual machine |
-Xmx2g -Xms1g |
PXF_OOM_KILL |
Defines whether to activate PXF auto-termination on OutOfMemoryError (OOM) |
|
PXF_OOM_DUMP_PATH |
The absolute path to the dump file that PXF generates on OOM |
Empty (no dump file) |
PXF_LOADER_PATH |
Additional directories and JARs for PXF class loading |
Empty |
LD_LIBRARY_PATH |
Additional directories and native libraries for PXF to load |
Empty |
pxf-log4j2.xml
The pxf-log4j2.xml file configures logging for PXF and its components.
By default, PXF is configured to log at the info level; for some third-party libraries, the logs are configured at the warn or error levels.
To learn more about the Log4j configuration, see the Apache Log4j documentation.
pxf-profiles.xml
A PXF profile is a named mapping identifying a specific data format and the protocol supported by a specific external data store.
For example, to read a text file from the S3 cloud storage, the s3:text profile can be used.
PXF provides several built-in profiles, which are defined in the pxf-profiles-default.xml file. You can view the contents of this file in the PXF source code repository. If you need to add a custom profile, configure it in the pxf-profiles.xml file.
The basic structure of a pxf-profiles.xml file looks as follows:
<?xml version="1.0" encoding="UTF-8"?>
<profiles>
<profile>
<name>...</name>
<description>...</description>
<plugins>
<plugin_A>...</plugin_A>
<plugin_B>...</plugin_B>
...
</plugins>
</profile>
...
</profiles>