S-JIS[2024-07-12/2024-08-31]
TsurugiのIceaxe(Javaライブラリー)のTsurugiSessionのメモ。
|
|
IceaxeのTsurugiSessionは、Tsurugiサーバーに接続するクラス。
(TsubakuroのSessionクラス相当)
TsurugiSessionからトランザクションを生成したり、SQLのPreparedStatementを生成したりする。
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() |
メソッド | 説明 | 例 | 備考 | |
---|---|---|---|---|
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(); |