X4 Help Center

Datenbank einrichten

Wenn Sie für die X4 BPMS eine externe Datenbank verwenden möchten, müssen zusätzliche Konfigurationsschritte durchgeführt werden. Die X4 BPMS unterstützt die folgenden Datenbanksysteme:

  • Oracle Database

  • PostgreSQL

  • Microsoft SQL Server (MSSQL)

1. Voraussetzungen & Vorbereitung

Bevor Sie mit der Konfiguration der Datasources beginnen, müssen die folgenden Schritte zwingend durchgeführt werden:

  1. Leere Datenbank erstellen: Legen Sie vorab eine leere Datenbank mit dem Namen X4 auf Ihrem Datenbanksystem an.

  2. Migrations- und Installationswerkzeug ausführen: Das X4-Migrations- bzw. Installationswerkzeug muss zwingend ausgeführt werden – auch dann, wenn keine Migration einer bestehenden X4 BPMS-Installation beabsichtigt ist.

Detaillierte Informationen hierzu finden Sie im X4 BPMS Update-Handbuch.

2. Datasources in der standalone.xml konfigurieren

Die Einbindung der externen Datenbank erfolgt über die Konfiguration der Datasources in der zentralen Konfigurationsdatei des WildFly-Application-Servers.

Dateipfad: X4\Server\wildfly\standalone\configuration\standalone.xml

Öffnen Sie die Datei und ersetzen oder ergänzen Sie die entsprechenden <datasource>- und <driver>-Blöcke innerhalb des <datasources>-Subsystems gemäß Ihrem Datenbanksystem.


Option A: PostgreSQL Konfiguration

XML
<!-- PostgreSQL -->
<datasource jta="false" jndi-name="java:/X4BAM_DS" pool-name="X4BAM_DS" enabled="true" use-java-context="true">
    <connection-url>jdbc:postgresql://localhost:5432/X4</connection-url>
    <driver>postgresql</driver>
    <new-connection-sql>SET search_path TO X4SERVER;</new-connection-sql>
    <pool>
        <max-pool-size>20</max-pool-size>
    </pool>
    <security user-name="x4" password="x4"/>
    <statement>
        <prepared-statement-cache-size>20</prepared-statement-cache-size>
        <share-prepared-statements>true</share-prepared-statements>
    </statement>
    <!-- In <validation> und <timeout> Einstellungen zur automatischen Verbindungsherstellung der Verbindung vornehmen -->	  
	<validation>
        <check-valid-connection-sql>select 1</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>1000</background-validation-millis>
    </validation>
    <timeout>
        <allocation-retry>60</allocation-retry>
        <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
    </timeout>
</datasource>
<datasource jndi-name="java:/PermissionDS" pool-name="PermissionDS" enabled="true" use-java-context="true">
    <connection-url>jdbc:postgresql://localhost:5432/X4</connection-url>
    <driver>postgresql</driver>
    <new-connection-sql>SET search_path TO X4SERVER;</new-connection-sql>
    <pool>
        <max-pool-size>20</max-pool-size>
    </pool>
    <security user-name="x4" password="x4"/>
    <statement>
        <prepared-statement-cache-size>20</prepared-statement-cache-size>
        <share-prepared-statements>true</share-prepared-statements>
    </statement>
    <!-- In <validation> und <timeout> Einstellungen zur automatischen Verbindungsherstellung der Verbindung vornehmen -->	  
	<validation>
        <check-valid-connection-sql>select 1</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>1000</background-validation-millis>
    </validation>
    <timeout>
        <allocation-retry>60</allocation-retry>
        <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
    </timeout>
</datasource>


<drivers>
    ...
    <driver name="postgresql" module="org.postgresql">
        <driver-class>org.postgresql.Driver</driver-class>
    </driver>
    ...
</drivers>

Option B: Microsoft SQL Server (MSSQL) Konfiguration

Hinweis:

Bitte beachten Sie beim Konfigurieren einer MSSQL-Datenbank in einer lokalen Entwicklungsumgebung Folgendes:
Vergewissern Sie sich, dass Sie in der JDBC-URL encrypt=false verwenden. Andernfalls ist ein Start des Servers und/oder eine Migration der Datenbank aufgrund eines TLS-Fehlers nicht möglich.

XML
<!-- MSSQL -->
<datasource jta="false" jndi-name="java:/X4BAM_DS" pool-name="X4BAM_DS" enabled="true" use-ccm="true">
    <connection-url>jdbc:sqlserver://localhost:1433;databaseName=X4;encrypt=false</connection-url>
    <driver>sqlserver</driver>
    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
    <pool>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>20</max-pool-size>
    </pool>
    <security user-name="x4" password="x4"/>
	<!-- In <validation> und <timeout> Einstellungen zur automatischen Verbindungsherstellung der Verbindung vornehmen -->	  
	<validation>
        <check-valid-connection-sql>select 1</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>1000</background-validation-millis>
    </validation>
    <timeout>
        <allocation-retry>60</allocation-retry>
        <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
    </timeout>
</datasource>
<datasource jndi-name="java:/PermissionDS" pool-name="PermissionDS" enabled="true" use-ccm="true">
    <connection-url>jdbc:sqlserver://localhost:1433;databaseName=X4;encrypt=false</connection-url>
    <driver>sqlserver</driver>
    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
    <pool>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>20</max-pool-size>
    </pool>
    <security user-name="x4" password="x4"/>
	<!-- In <validation> und <timeout> Einstellungen zur automatischen Verbindungsherstellung der Verbindung vornehmen -->	  
	<validation>
        <check-valid-connection-sql>select 1</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>1000</background-validation-millis>
    </validation>
    <timeout>
        <allocation-retry>60</allocation-retry>
        <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
    </timeout>
</datasource>

<drivers>
    ...
    <driver name="sqlserver" module="com.microsoft.sqlserver">
        <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
    </driver>
    ...
</drivers>

Option C: Oracle Database Konfiguration

XML
<!-- ORACLE -->
<datasource jta="false" jndi-name="java:/X4BAM_DS" pool-name="X4BAM_DS" enabled="true" use-java-context="true">
      <connection-url>jdbc:oracle:thin:@localhost:1521/pluggable-database</connection-url><!-- Hier den entsprechenden Host, Port, SID oder Service-Namen entragen -->
      <driver>oracle</driver><!-- Hier den Treiber-Namen eintragen -->
      <security user-name="X4SERVER" password="X4"/>
      <statement>
        <prepared-statement-cache-size>32</prepared-statement-cache-size>
      </statement>
	  <!-- In <validation> und <timeout> Einstellungen zur automatischen Verbindungsherstellung der Verbindung vornehmen -->	  
	  <validation>
        <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>1000</background-validation-millis>
      </validation>
      <timeout>
        <allocation-retry>60</allocation-retry>
        <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
      </timeout>	
    </datasource>
    <datasource jta="true" jndi-name="java:/PermissionDS" pool-name="PermissionDS" enabled="true" use-java-context="true">    
      <connection-url>jdbc:oracle:thin:@localhost:1521/pluggable-database</connection-url><!-- Hier den entsprechenden Host, Port, SID oder Service-Namen entragen -->
      <driver>oracle</driver><!-- Hier den Treiber-Namen eintragen -->
      <security user-name="X4SERVER" password="X4"/>
      <statement>
        <prepared-statement-cache-size>32</prepared-statement-cache-size>
      </statement>
      <!-- In <validation> und <timeout> Einstellungen zur automatischen Verbindungsherstellung der Verbindung vornehmen -->	  
	  <validation>
        <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>1000</background-validation-millis>
      </validation>
      <timeout>
        <allocation-retry>60</allocation-retry>
        <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
      </timeout>	
</datasource>


<drivers>
    ...
    <driver name="oracle" module="com.oracle.ojdbc"><!-- Hier den Modul-Namen eintragen -->
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    </driver>
    ...
</drivers>