将事务日志存储在关系数据库中

可选择将 Liberty 事务日志存储在关系数据库而不是操作系统文件中。在 WebSphere® Application Server 传统版中,此功能部件无需使用共享文件系统就可提供高可用性 (HA) 支持。

关于此任务

WebSphere Application Server 事务服务将涉及两个或多个资源或分布在多个服务器上的每个全局事务的信息写至一个事务日志。这些事务由应用程序或部署了这些应用程序的容器启动或停止。事务服务保留事务日志以确保事务的完整性。信息在分布式事务的准备阶段写至事务日志,以便带有生效事务的 WebSphere Application Server 在发生故障后重新启动时,事务服务能够使用日志来重演所有不确定事务。这允许整个系统返回至一致状态。

在 WebSphere Application Server 的前发行版中,事务日志存储为操作系统文件。在 WebSphere Application Server V8.5.5 及更高版本中,它们保留缺省配置,但您可选择将事务日志存储到关系数据库管理系统 (RDBMS) 中。此配置选项的目标是 HA 环境中工作的客户。在 WebSphere Application Server 的先前发行版中,HA 事务支持要求使用共享文件系统来托管事务日志,例如,NFSv4 安装的网络连接存储器 (NAS) 或存储区域网络 (SAN)。此新增功能使客户(尤其是在 HA 数据库技术方面进行投资的客户)能够将其 HA 数据库用作事务日志的共享库,这是使用共享文件系统的一种替代方法。

缺省情况下,Liberty 事务日志存储在操作系统文件中。但是,为了与 WebSphere Application Server 传统版兼容及实现评估和测试用途,可以将事务日志配置为存储在 RDBMS 中。可使用 Liberty 支持的任何数据库类型。

过程

要将 Liberty 事务日志配置为存储在 RDBMS 中,请完成以下步骤:

  1. 在 Liberty server.xml 文件中配置专用非事务数据源。
    server.xml 文件中的以下示例片段显示如何将 Liberty 配置为将其事务日志存储在 DB2® 数据库中:
    <transaction> 
      <dataSource transactional="false">
        <jdbcDriver libraryRef="DB2JCC4LIB"/>
        <properties.db2.jcc currentSchema="CBIVP"
          databaseName="SAMPLE" driverType="4"
          portNumber="50000" serverName="localhost" 
          user="db2admin" password="{xor}Oz1tPjsyNjE=" />
      </dataSource>  </transaction> 
    
    <library id="DB2JCC4LIB">
      <fileset dir="C:/SQLLIB/java" includes="db2jcc4.jar db2jcc_license_cu.jar"/>
    </library>
  2. (可选)创建数据库表。

    服务器第一次启动时,Liberty 会尝试创建所需的数据库表。如果无法创建这些数据库(例如由于许可权不足),那么服务器将无法启动。在这些环境下,必须手动创建两个数据库表。

    以下 DDL 结构显示如何在 DB2 上创建表:
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    下列 DDL 结构说明如何在 Oracle 上创建数据库表:
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_store_logs_in_rdb
文件名:twlp_store_logs_in_rdb.html