반응형
#### Example Datasource Configurations ####

# Example: MySQL JDBC Driver module.xml File

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
  <resources>
    <resource-root path="mysql-connector-java-8.0.12.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

# Example: MySQL Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/MySqlDS" pool-name="MySqlDS">
    <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url>
    <driver>mysql</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="mysql" module="com.mysql">
      <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
      <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

# Example: MySQL XA Datasource Configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/MySqlXADS" pool-name="MySqlXADS">
    <xa-datasource-property name="ServerName">
      localhost
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
      mysqldb
    </xa-datasource-property>
    <driver>mysql</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="mysql" module="com.mysql">
      <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
      <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example PostgreSQL Datasource ####

# Example: PostgreSQL JDBC Driver module.xml File

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.postgresql">
  <resources>
    <resource-root path="postgresql-42.x.y.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

# Example: PostgreSQL Datasource Configuration #

<datasources>
  <datasource jndi-name="java:jboss/PostgresDS" pool-name="PostgresDS">
    <connection-url>jdbc:postgresql://localhost:5432/postgresdb</connection-url>
    <driver>postgresql</driver>
    <security>
        <user-name>admin</user-name>
        <password>admin</password>
    </security>
    <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
        <validate-on-match>true</validate-on-match>
        <background-validation>false</background-validation>
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="postgresql" module="com.postgresql">
        <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


# Example: PostgreSQL XA Datasource Configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/PostgresXADS" pool-name="PostgresXADS">
    <xa-datasource-property name="ServerName">
      localhost
    </xa-datasource-property>
    <xa-datasource-property name="PortNumber">
      5432
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
      postgresdb
    </xa-datasource-property>
    <driver>postgresql</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="postgresql" module="com.postgresql">
      <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example Oracle Datasource ####

# Example: Oracle JDBC Driver module.xml File

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle">
    <resources>
        <resource-root path="ojdbc7.jar"/>
    </resources>
    <dependencies>
      <module name="javaee.api"/>
      <module name="sun.jdk"/>
      <module name="ibm.jdk"/>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
    </dependencies>
</module>


# Example: Oracle Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/OracleDS" pool-name="OracleDS">
    <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>
    <driver>oracle</driver>
    <security>
        <user-name>admin</user-name>
        <password>admin</password>
    </security>
    <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
        <validate-on-match>true</validate-on-match>
        <background-validation>false</background-validation>
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="oracle" module="com.oracle">
        <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

# Example: Oracle XA Datasource Configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/OracleXADS" pool-name="OracleXADS">
    <xa-datasource-property name="URL">
      jdbc:oracle:thin:@oracleHostName:1521:orcl
    </xa-datasource-property>
    <driver>oracle</driver>
    <xa-pool>
      <is-same-rm-override>false</is-same-rm-override>
    </xa-pool>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="oracle" module="com.oracle">
      <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example Oracle RAC datasource ####

# Example: Oracle JDBC driver module.xml file

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle">
    <resources>
        <resource-root path="ojdbc7.jar"/>
    </resources>
    <dependencies>
      <module name="javaee.api"/>
      <module name="sun.jdk"/>
      <module name="ibm.jdk"/>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
    </dependencies>
</module>

# Example: Oracle RAC datasource configuration

<datasources>
  <datasource jndi-name="java:jboss/OracleDS" pool-name="OracleDS">
    <connection-url>jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))</connection-url>
    <driver>oracle</driver>
    <security>
        <user-name>admin</user-name>
        <password>admin</password>
    </security>
    <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
        <validate-on-match>true</validate-on-match>
        <background-validation>false</background-validation>
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="oracle" module="com.oracle">
        <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

# Example: Oracle RAC XA datasource configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/OracleXADS" pool-name="OracleXADS">
    <xa-datasource-property name="URL">
      jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))
    </xa-datasource-property>
    <driver>oracle</driver>
    <xa-pool>
      <is-same-rm-override>false</is-same-rm-override>
    </xa-pool>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="oracle" module="com.oracle">
      <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example Microsoft SQL Server Datasource ####

# Example: Microsoft SQL Server JDBC Driver module.xml File #

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.microsoft">
  <resources>
    <resource-root path="sqljdbc42.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    <module name="javax.xml.bind.api"/>
  </dependencies>
</module>

# Example: Microsoft SQL Server Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/MSSQLDS" pool-name="MSSQLDS">
    <connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase</connection-url>
    <driver>sqlserver</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="sqlserver" module="com.microsoft">
      <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

# Example: Microsoft SQL Server XA Datasource Configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/MSSQLXADS" pool-name="MSSQLXADS">
    <xa-datasource-property name="ServerName">
      localhost
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
      mssqldb
    </xa-datasource-property>
    <xa-datasource-property name="SelectMethod">
      cursor
    </xa-datasource-property>
    <driver>sqlserver</driver>
    <xa-pool>
      <is-same-rm-override>false</is-same-rm-override>
    </xa-pool>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="sqlserver" module="com.microsoft">
      <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example IBM DB2 Datasource ####

# Example: IBM DB2 JDBC Driver module.xml File

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.ibm">
  <resources>
    <resource-root path="db2jcc4.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

# Example: IBM DB2 Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/DB2DS" pool-name="DB2DS">
    <connection-url>jdbc:db2://localhost:50000/ibmdb2db</connection-url>
    <driver>ibmdb2</driver>
    <pool>
      <min-pool-size>0</min-pool-size>
      <max-pool-size>50</max-pool-size>
    </pool>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="ibmdb2" module="com.ibm">
        <xa-datasource-class>com.ibm.db2.jcc.DB2XADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

# Example: IBM DB2 XA Datasource Configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/DB2XADS" pool-name="DB2XADS">
    <xa-datasource-property name="ServerName">
      localhost
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
      ibmdb2db
    </xa-datasource-property>
    <xa-datasource-property name="PortNumber">
      50000
    </xa-datasource-property>
    <xa-datasource-property name="DriverType">
      4
    </xa-datasource-property>
    <driver>ibmdb2</driver>
    <xa-pool>
      <is-same-rm-override>false</is-same-rm-override>
    </xa-pool>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <recovery>
      <recover-plugin class-name="org.jboss.jca.core.recovery.ConfigurableRecoveryPlugin">
        <config-property name="EnableIsValid">
          false
        </config-property>
        <config-property name="IsValidOverride">
          false
        </config-property>
        <config-property name="EnableClose">
          false
        </config-property>
      </recover-plugin>
    </recovery>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="ibmdb2" module="com.ibm">
        <xa-datasource-class>com.ibm.db2.jcc.DB2XADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example Sybase Datasource ####

# Example: Sybase JDBC Driver module.xml File

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="com.sybase">
    <resources>
      <resource-root path="jconn4.jar"/>
    </resources>
    <dependencies>
      <module name="javaee.api"/>
      <module name="sun.jdk"/>
      <module name="ibm.jdk"/>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
    </dependencies>
</module>

# Example: Sybase Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/SybaseDB" pool-name="SybaseDB">
    <connection-url>jdbc:sybase:Tds:localhost:5000/DATABASE?JCONNECT_VERSION=6</connection-url>
    <driver>sybase</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="sybase" module="com.sybase">
      <xa-datasource-class>com.sybase.jdbc4.jdbc.SybXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

# Example: Sybase XA Datasource Configuration

<datasources>
  <xa-datasource jndi-name="java:jboss/SybaseXADS" pool-name="SybaseXADS">
    <xa-datasource-property name="ServerName">
      localhost
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
      mydatabase
    </xa-datasource-property>
    <xa-datasource-property name="PortNumber">
      4100
    </xa-datasource-property>
    <xa-datasource-property name="NetworkProtocol">
      Tds
    </xa-datasource-property>
    <driver>sybase</driver>
    <xa-pool>
      <is-same-rm-override>false</is-same-rm-override>
    </xa-pool>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="sybase" module="com.sybase">
      <xa-datasource-class>com.sybase.jdbc4.jdbc.SybXADataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example MariaDB Datasource ####

# Example: MariaDB JDBC Driver module.xml File #

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="org.mariadb">
  <resources>
    <resource-root path="mariadb-java-client-1.2.3.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

# Example: MariaDB Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/MariaDBDS" pool-name="MariaDBDS">
    <connection-url>jdbc:mariadb://localhost:3306/jbossdb</connection-url>
    <driver>mariadb</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="mariadb" module="org.mariadb">
      <driver-class>org.mariadb.jdbc.Driver</driver-class>
      <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example MariaDB XA Datasource ####

# Example: MariaDB JDBC Driver module.xml File

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="org.mariadb">
  <resources>
    <resource-root path="mariadb-java-client-1.2.3.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

# Example: MariaDB XA Datasource Configuration #

<datasources>
  <xa-datasource jndi-name="java:jboss/MariaDBXADS" pool-name="MariaDBXADS">
    <xa-datasource-property name="ServerName">
      localhost
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
      mariadbdb
    </xa-datasource-property>
    <driver>mariadb</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
    </validation>
  </xa-datasource>
  <drivers>
    <driver name="mariadb" module="org.mariadb">
      <driver-class>org.mariadb.jdbc.Driver</driver-class>
      <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


#### Example MariaDB Galera Cluster Datasource ####

# Example: MariaDB JDBC Driver module.xml File
<?xml version='1.0' encoding='UTF-8'?>
<module xmlns="urn:jboss:module:1.1" name="org.mariadb">
  <resources>
    <resource-root path="mariadb-java-client-1.5.4.jar"/>
  </resources>
  <dependencies>
    <module name="javaee.api"/>
    <module name="sun.jdk"/>
    <module name="ibm.jdk"/>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

# Example: MariaDB Galera Cluster Datasource Configuration

<datasources>
  <datasource jndi-name="java:jboss/MariaDBGaleraClusterDS" pool-name="MariaDBGaleraClusterDS">
    <connection-url>jdbc:mariadb://192.168.1.1:3306,192.168.1.2:3306/jbossdb</connection-url>
    <driver>mariadb</driver>
    <security>
      <user-name>admin</user-name>
      <password>admin</password>
    </security>
    <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
      <validate-on-match>true</validate-on-match>
      <background-validation>false</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
    </validation>
  </datasource>
  <drivers>
    <driver name="mariadb" module="org.mariadb">
      <driver-class>org.mariadb.jdbc.Driver</driver-class>
      <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>


※ MariaDB Galera Cluster does not support XA transactions.

 

 

Reference - Redhat Manual

https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.4/html/configuration_guide/datasource_management#example_datasource_configurations

1.URL Encoding 설정

 -GET 호출에서 Encoding 문제가 발생할 경우 설정

CLI명령어

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=url-charset,value=UTF-8)
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=url-charset,value=UTF-8)
/subsystem=undertow/server=default-server/ajp-listener=ajp:write-attribute(name=url-charset,value=UTF-8)

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=url-charset,value=ISO-8859-1)

/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=url-charset,value=ISO-8859-1)
/subsystem=undertow/server=default-server/ajp-listener=ajp:write-attribute(name=url-charset,value=ISO-8859-1)

 

standalone-ha.xml 파일 수정

       <subsystem xmlns="urn:jboss:domain:undertow:10.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
            <buffer-cache name="default"/>
            <server name="default-server">
                <ajp-listener name="ajp" socket-binding="ajp" url-charset="utf-8" record-request-start-time="true"/>
                <http-listener name="default" socket-binding="http"  url-charset="utf-8" redirect-socket="https" enable-http2="true"/>
                <https-listener name="https" socket-binding="https" url-charset="utf-8" security-realm="ApplicationRealm" enable-http2="true"/>
...
   
JBoss 6.4 Encoding 설정
<system-properties>
     <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
     <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>
 

 

2.jsp encoding 설정

-servlet 호출에서 encoding 문제가 발생할 경우 설정

        <subsystem xmlns="urn:jboss:domain:undertow:10.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
            <buffer-cache name="default"/>
            <server name="default-server">
                <ajp-listener name="ajp" socket-binding="ajp" />
                <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
                <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
                <host name="default-host" alias="localhost" default-web-module="test.war">
                    <access-log pattern="%h %l %u %t %r %s %b %{i,Referer} %{i,User-Agent} %T" directory="${jboss.server.log.dir}/access" prefix="access."/>
                    <http-invoker security-realm="ApplicationRealm"/>
                </host>
            </server>
            <servlet-container name="default">
                <jsp-config development="true" java-encoding="MS949"/>
                <websockets/>
            </servlet-container>
   

3.파일 Encoding 옵션

-로그 및 기타 파일 저장 시 사용할 encoding
export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

안드로이드 폰에 설치된 앱을 추출하여 다른 기기에 설치하는 방법에 대해 알아봅니다.
 
현재 나오지 않는 앱을 다른 기기에 옴겨서 설치하거나, 하위 버전에 앱을 옮겨서 설치할 때 사용하는 방법입니다.
아래 작업은 갤럭시 A5의 앱을 추출하여 갤럭시 S23에 설치 하는 작업에 대한 예시입니다.
 

[갤럭시 A5]

1.Apk Extractor 설치

Play 스토어에서 Apk Extractor를 검색하여 설치합니다.

 

2.Apk Extractor 실행하여 apk 파일 추출

Apk Extractor를 실행하고 apk로 생성할 앱을 선택하여 Extract 버튼을 터치합니다.
디렉토리 선택에 대한 화면이 표시되면 [파일] 앱을 실행하여 디렉토리를 생성해주시면 됩니다
저는 Download에 extractor 디렉토리를 생성하였습니다.

 
 

3.PC에 platfom-tools을 다운로드 및 압축 해제

ADB 프로그램을 사용해서 안드로이드 폰에 앱(.apk)을 설치할 수 있습니다.
 
※ ADB (Android Debug Bridge)는 Android 기기와 PC 간의 명령어 기반 통신을 가능하게 하는 도구입니다. 이를 통해 앱 설치, 시스템 로그 확인, 파일 전송 등 다양한 작업을 수행할 수 있습니다
 
다운로드 페이지: https://developer.android.com/studio/releases/platform-tools

 

SDK 플랫폼 도구 출시 노트  |  Android Studio  |  Android Developers

Android SDK 플랫폼 도구는 Android SDK의 구성요소입니다.

developer.android.com

 

 
다운로드 후 platform-tools-latest-windows.zip 파일을 원하는 경로에 풀어주시면 됩니다.
저는 C:\platform-tools에 압축을 해제하였습니다.

 

4.갤럭시 A5의 apk 파일을 PC로 복사

USB케이블로 갤럭시 A5를 PC에 연결한 후 추출한 apk 파일을 복사합니다. 저는 C:\platform-tools에 timespread.apk를 복사하였습니다.
 

[갤럭시 S23]

1.앱(apk)을 설치하기 위해 개발자 모드 설정

추출한 앱을 설치하기 위해서는 개발자 모드로의 변경이 필요합니다.
 
1) 설정 -> 휴대전화 정보 -> 소프트웨어정보 -> 빌드번호 7번 터치
2) 설정 -> 개발자 옵션 -> USB 디버깅 활성화

 

 

2.갤럭시 S23을 PC에 연결

USB케이블로 갤럭시S23을 PC에 연결합니다. 이때 개발자 모드 연결에 대한 승인 팝업 메세지가 나오게 되는데, 이부분을 승인해주어야 작업이 가능합니다.
 
일부 폰에서는 아래와 같은 메세지가 발생하면서 승인이 안되는 현상이 있는데, 이때는 안전모드로 들어간 후에 연결해주면 됩니다. [전원 끄기] 아이콘을 누르고 있으면 안전 모드로 재부팅됩니다.
 
(에러 메세지)

Because an app is obscuring a permission request, settings can't verify your response.

 
 

3.adb프로그램을 이용하여 갤럭시 S23에 앱(apk) 설치

Windows의 검색창에 명령 프롬프트(cmd)를 검색하여 관리자 권한으로 실행 합니다.

 
1) platform-tools 설치경로로 이동

C:\Users\it-lifelog> cd C:\platform-tools

 
 
2) 연결된 장치 확인

C:\platform-tools> adb devices

List of devices attached
521057a4ea5724a7        device

※ 리스트가 보이지 않으면 USB연결이 되지 않은 것이고, device가 아닌 unauthorized로 표시되면 USB 연결시에 개발자 모드 팝업에 대한 승인이 이루어지지 않은 것입니다. USB를 다시 연결하여 승인 부분을 확인해주어야 합니다.
 
3) apk 설치 실행

C:\platform-tools> adb install -r -d timespread.apk

Performing Streamed Install
Success

이미 설치된 앱이 있으면 덮어쓰기가 안될 수 있습니다. 기존 설치된 앱 삭제 후에 실행해주세요.
 
Success 메세지가 보여지면 정상적으로 앱 설치가 된 것을 확인하실 수 있습니다.

WEB #1

upstream backend {
    #sticky cookie srv_id expires=1h domain=.example.com path=/;
    #ip_hash;
    server was1_ip:port;
    server was2_ip:port  backup;
}

 

WEB #2

upstream backend {
    #sticky cookie srv_id expires=1h domain=.example.com path=/;
    #ip_hash;
    server was2_ip:port;
    server was1_ip:port  backup;}

 

동작 설명

WEB1 -> WAS1로 모든 요청을 전달하며, WAS1이 다운될 경우 WAS2로 요청을 전달 -> WAS1이 기동되면 WAS1로 요청 전달(failback)

WEB2 -> WAS2로 모든 요청을 전달하며, WAS2가 다운될 경우 WAS1로 요청을 전달 -> WAS2이 기동되면 WAS2로 요청 전달(failback)

 

 

기타 옵션

-fail_timeout : 특정 시간 동안 요청 실패가 발생할 경우 서버가 죽은 것으로 판단(기본값 10초)

 

 main server에 설정(변경이 필요할 경우에 적용)

upstream backend {
    #sticky cookie srv_id expires=1h domain=.example.com path=/;
    #ip_hash;
    server was1_ip:port fail_timeout=5s;
    server was2_ip:port  backup;
}

 

[참고]

Active WAS가 다운되어 있을 경우 헬스 체크로 인해 error.log 파일에는 아래와 같은 로그가 기록됩니다.(서비스에 영향 없음)


2023/10/19 15:24:33 [error] 2805#0: *426 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.111, server: localhost, request: "GET /session-test/ HTTP/1.1", upstream: "http://192.168.0.112:8300/session-test/", host: " 192.168.0.112:9000"
2023/10/19 15:24:44 [error] 2805#0: *426 connect() failed (111: Connection refused) while connecting to upstream, client: 1 192.168.0.111, server: localhost, request: "GET /session-test/ HTTP/1.1", upstream: "http:// 192.168.0.112:8300/session-test/", host: " 192.168.0.112:9000"
...

 

1.$TOMCAT/conf/tomcat-user.xml 파일 수정

 -역할(Role) 및 사용자 계정(user) 추가. 계정/패스워드는 원하는 값으로 설정하시면 됩니다.

<?xml version="1.0" encoding="UTF-8"?>
...
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->


<role rolename="manager-gui"/>
<user username="tomcat" password="password1!" roles="manager-gui"/>



</tomcat-users>

 

2.$TOMCAT/webapps/manager/META-INF/context.xml 수정

 -클라이언트 IP로 접속 가능하게 하려면 org.apache.catalina.valves.RemoteAddrValve 태그는 주석처리 합니다.

<?xml version="1.0" encoding="UTF-8"?>
...
<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context> 

 

3.Tomcat 기동

$TOMCAT/bin/startup.sh

브라우저 접속(http://ip:8080/manager)

관리자 페이지접속 화면

 

1.standalone.conf JAVA_OPTS 변수 또는 start 스크립트에 아래 설정 추가

-Dlog4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

 

2.module 설정

 ...modules/net/sf/log4jdbc/main/log4jdbc-log4j2-jdbc4-1.12.jar
 ...modules/net/sf/log4jdbc/main/module.xml

module.xml

<?xml version='1.0' encoding='UTF-8'?>
<module xmlns="urn:jboss:module:1.1" name="net.sf.log4jdbc">
    <resources>
        <resource-root path="log4jdbc-log4j2-jdbc4-1.12.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="org.slf4j"/>
        <module name="com.h2database.h2"/>
        <module name="com.oracle"/>
        <module name="org.mariadb"/>
    </dependencies>
</module>

(com.oracle - Orlacle jdbc-dirver  / org.mariadb - mariadb driver)

 

3.standalone*.xml 설정

......
        <subsystem xmlns="urn:jboss:domain:datasources:5.0">
            <datasources>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:log4jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>log4jdbc</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                <datasource jndi-name="java:/OracleDS" pool-name="OracleDS">
                    <connection-url>jdbc:log4jdbc:oracle:thin:@localhost:1521:orcalesid</connection-url>
                    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                    <driver>log4jdbc</driver>
                    <security>
                        <user-name>test</user-name>
                        <password>test</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
                        <background-validation>true</background-validation>
                        <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
                        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
                    </validation>
                </datasource>
                <datasource jndi-name="java:jboss/datasources/JpetStoreDS" pool-name="jpetstore">
                    <connection-url>jdbc:log4jdbc:mariadb://192.168.0.163:3306/jpetstore</connection-url>
                    <driver>log4jdbc</driver>
                    <security>
                        <user-name>test</user-name>
                        <password>test</password>
                    </security>
                </datasource>
                <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                    <driver name="oracle" module="com.oracle"/>
                    <driver name="mariadb" module="org.mariadb"/>
                    <driver name="log4jdbc" module="net.sf.log4jdbc"/>
                </drivers>
            </datasources>
        </subsystem> 

...... 

 

4.Connection 테스트

 -테스트 환경상 Oracle DB 접속은 불가능하여 Maria DB로 테스트 수행하였습니다.

[standalone@192.168.0.10:10990 /] data-source test-connection-in-pool --name=jpetstore
true
[standalone@ 192.168.0.10:10990 /] data-source test-connection-in-pool --name=ExampleDS
true 


로그화면

2019-11-08 16:25:25,502 INFO  [jdbc.connection] (management-handler-thread - 1) 1. Connection opened
2019-11-08 16:25:25,502 INFO  [jdbc.audit] (management-handler-thread - 1) 1. Connection.new Connection returned
2019-11-08 16:25:25,510 INFO  [jdbc.audit] (management-handler-thread - 1) 1. Connection.getTransactionIsolation() returned 4
2019-11-08 16:25:25,510 INFO  [jdbc.audit] (management-handler-thread - 1) 1. Connection.isReadOnly() returned false
2019-11-08 16:25:25,512 INFO  [jdbc.audit] (management-handler-thread - 1) 1. Connection.getMetaData() returned org.mariadb.jdbc.MariaDbDatabaseMetaData@54d3ea99
2019-11-08 16:25:25,512 INFO  [jdbc.audit] (management-handler-thread - 1) 1. Connection.getMetaData() returned org.mariadb.jdbc.MariaDbDatabaseMetaData@4eaeff49
2019-11-08 16:25:25,512 INFO  [jdbc.audit] (management-handler-thread - 1) 1. Connection.getMetaData() returned org.mariadb.jdbc.MariaDbDatabaseMetaData@42a42903
2019-11-08 16:25:37,122 INFO  [jdbc.connection] (management-handler-thread - 1) 2. Connection opened
2019-11-08 16:25:37,124 INFO  [jdbc.audit] (management-handler-thread - 1) 2. Connection.new Connection returned
2019-11-08 16:25:37,128 INFO  [jdbc.audit] (management-handler-thread - 1) 2. Connection.getTransactionIsolation() returned 2
2019-11-08 16:25:37,128 INFO  [jdbc.audit] (management-handler-thread - 1) 2. Connection.isReadOnly() returned false
2019-11-08 16:25:37,129 INFO  [jdbc.audit] (management-handler-thread - 1) 2. Connection.getMetaData() returned dbMeta0: conn0: url=jdbc:h2:mem:test user=SA
2019-11-08 16:25:37,129 INFO  [jdbc.audit] (management-handler-thread - 1) 2. Connection.getMetaData() returned dbMeta1: conn0: url=jdbc:h2:mem:test user=SA
2019-11-08 16:25:37,130 INFO  [jdbc.audit] (management-handler-thread - 1) 2. Connection.getMetaData() returned dbMeta2: conn0: url=jdbc:h2:mem:test user=SA 

+ Recent posts