All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.integration.messaging.wmq.xa.WmqXATransactionFactory Maven / Gradle / Ivy

package nablarch.integration.messaging.wmq.xa;

import java.sql.Connection;

import nablarch.core.transaction.Transaction;
import nablarch.core.transaction.TransactionFactory;

/**
 * {@link WmqXATransaction}を生成するクラス。
 * @author Kiyohito Itoh
 */
public class WmqXATransactionFactory implements TransactionFactory {

    /** アイソレーションレベル */
    private int isolationLevel = Connection.TRANSACTION_READ_COMMITTED;

    /**
     * {@link WmqXATransaction}を生成する。
     *
     * @param connectionName コネクション名
     * @return トランザクションオブジェクト
     */
    public Transaction getTransaction(String connectionName) {
        WmqXATransaction transaction = new WmqXATransaction(connectionName);
        transaction.setIsolationLevel(isolationLevel);
        return transaction;
    }

    /**
     * アイソレーションレベルを設定する。
* 設定できる値は、下記のとおり。
* READ_COMMITTED:{@link java.sql.Connection#TRANSACTION_READ_COMMITTED}
* READ_UNCOMMITTED:{@link java.sql.Connection#TRANSACTION_READ_UNCOMMITTED}
* REPEATABLE_READ:{@link java.sql.Connection#TRANSACTION_REPEATABLE_READ}
* SERIALIZABLE:{@link java.sql.Connection#TRANSACTION_SERIALIZABLE}
* アイソレーションレベルが設定されない場合は、 * デフォルトで{@link java.sql.Connection#TRANSACTION_READ_COMMITTED}が使用される。 * * @param isolationLevel アイソレーションレベルを表す文字列。 */ public void setIsolationLevel(String isolationLevel) { if ("READ_COMMITTED".equals(isolationLevel)) { this.isolationLevel = Connection.TRANSACTION_READ_COMMITTED; } else if ("READ_UNCOMMITTED".equals(isolationLevel)) { this.isolationLevel = Connection.TRANSACTION_READ_UNCOMMITTED; } else if ("REPEATABLE_READ".equals(isolationLevel)) { this.isolationLevel = Connection.TRANSACTION_REPEATABLE_READ; } else if ("SERIALIZABLE".equals(isolationLevel)) { this.isolationLevel = Connection.TRANSACTION_SERIALIZABLE; } else { throw new IllegalArgumentException( "invalid isolation level. isolation level:" + isolationLevel); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy