S-JIS[2024-07-12/2024-08-31]

Iceaxe TsurugiSession

TsurugiIceaxe(Javaライブラリー)のTsurugiSessionのメモ。


概要

IceaxeのTsurugiSessionは、Tsurugiサーバーに接続するクラス。
TsubakuroSessionクラス相当)

TsurugiSessionからトランザクションを生成したり、SQLのPreparedStatementを生成したりする。


TsurugiSessionの生成

TsurugiSessionインスタンスはTsurugiConnectorのcreateSessionメソッドで生成する。

import com.tsurugidb.iceaxe.TsurugiConnector;
import com.tsurugidb.iceaxe.session.TgSessionOption;
import com.tsurugidb.iceaxe.session.TsurugiSession;
    TsurugiConnector connector = ;

    var sessionOption = TgSessionOption.of();
    try (TsurugiSession session = connector.createSession(sessionOption)) {
        〜
    }
// Iceaxe 1.6.0(Tsurugi 1.0.0)[2024-08-31]
    try (TsurugiSession session = connector.createSession("session label", sessionOption)) {
        〜
    }

セッションオプション

TsurugiConnectorのcreateSessionメソッドでTsurugiSessionインスタンスを生成する際に、セッションオプションを指定する。

import java.util.concurrent.TimeUnit;

import com.tsurugidb.iceaxe.session.TgSessionOption;
import com.tsurugidb.iceaxe.session.TgSessionOption.TgTimeoutKey;
import com.tsurugidb.iceaxe.session.TgSessionShutdownType;
import com.tsurugidb.iceaxe.transaction.TgCommitType;
    var sessionOption = TgSessionOption.of().setLabel("session label");
TgSessionOptionのメソッド 説明 備考
setLabel セッションラベルをセットする。
tgctl sessionコマンドで照会できる。
sessionOption.setLabel("session label"); TsubakuroのSessionBuilderのwithLabel()
setApplicationName 1.4.0 アプリケーション名をセットする。   TsurugiConnectorのsetApplicationName()の方を推奨。
setKeepAlive 1.6.0 keep aliveの有無を設定する。[2024-08-31]
デフォルトはTsubakuroのデフォルト値(true)。
sessionOption.setKeepAlive(true); TsubakuroのSessionのwithKeepAlive()
setTimeout タイムアウト時間をセットする。
デフォルトはLong.MAX_VALUEナノ秒(実質、無限)。
sessionOption.setTimeout(TgTimeoutKey.DEFAULT, 10, TimeUnit.SECONDS);  
setCommitType TsurugiTransactionManagerがコミットするときのコミットオプションをセットする。
デフォルトはTgCommitType.DEFAULT
sessionOption.setCommitType(TgCommitType.DEFAULT);  
setCloseShutdownType 1.4.0 セッションクローズ時にシャットダウンするかどうかをセットする。
デフォルトはシャットダウンしない。
sessionOption.setCloseShutdownType(TgSessionShutdownType.NOTHING); TsubakuroのSessionのshutdown()

TsurugiSessionのメソッド

メソッド 説明 備考
isAlive 接続が有効かどうかを返す。 boolean isAlive = session.isAlive(); TsubakuroのSessionのisAlive()
getTableNameList テーブル名の一覧を取得する。 List<String> list = session.getTableNameList(); TsubakuroのSqlClientのlistTables()
findTableMetadata テーブルの定義情報を取得する。 Optional<TgTableMetadata> data = session.findTableMetadata("テーブル名"); TsubakuroのSqlClientのgetTableMetadata()
createQuery select文用のTsurugiSqlを生成する。 try (var ps = session.createQuery("select〜")) {
}
 
createStatement 更新系SQL用のTsurugiSqlを生成する。 try (var ps = session.createStatement(sql)) {
}
 
createTransactionManager TsurugiTransactionManagerを生成する。 var tm = session.createTransactionManager(setting);  
shutdown 1.4.0 セッションをシャットダウンする。 session.shutdown(TgSessionShutdownType.GRACEFUL, 10, TimeUnit.SECONDS); TsubakuroのSessionのshutdown()
close セッションをクローズする。
セッションオプションクローズ時のシャットダウンが設定されている場合、クローズ実行前にシャットダウンを実行する。
session.close(); TsubakuroのSessionのclose()
isClosed セッションがクローズされているかどうかを返す。 boolean isClosed = session.isClosed();  

Iceaxeへ戻る / Tsurugiへ戻る / 技術メモへ戻る
メールの送信先:ひしだま