S-JIS[2023-10-06]

Tsubakuro Session

TsurugiTsubakuro(Java通信ライブラリー)のSessionクラスのメモ。


概要

TsubakuroのSessionは、Tsurugiサーバーに接続するクラス。
SQL実行やKVSアクセス等の他のクラスも、Sessionを利用する。

Sessionはtsubakuro-sessionに含まれている。

SessionインスタンスはSessionBuilderクラスを使って生成する。
生成したSessionインスタンスは、Tsubakuroのクライアント系クラス(SqlClientやKvsClient等)にアタッチして使用する。


Sessionを生成する例

import java.util.concurrent.TimeUnit;
import com.tsurugidb.tsubakuro.common.Session;
import com.tsurugidb.tsubakuro.common.SessionBuilder;
    try (Session session = SessionBuilder.connect("tcp://localhost:12345").create(3, TimeUnit.SECONDS)) {
        〜
    }

SessionBuilderのconnectメソッドでエンドポイントを指定する。
そしてcreateメソッドでSessionインスタンスを生成する。

Sessionインスタンスは最終的にクローズする必要がある


SessionBuilderのメソッド

メソッド 説明
connect エンドポイントを指定してSessionBuilderインスタンスを生成する。 var builder = SessionBuilder.connect("tcp://localhost:12345");
import java.net.URI;
var builder = SessionBuilder.connect(URI.create("tcp://localhost:12345"));
withCredential 認証情報を指定する。 import com.tsurugidb.tsubakuro.channel.common.connection.NullCredential;
builder.withCredential(NullCredential.INSTANCE);
create Sessionインスタンスを生成する。
引数としてタイムアウト時間をセットする。
import java.util.concurrent.TimeUnit;
try (var session = builder.create(30, TimeUnit.SECONDS)) {
}
createAsync Sessionインスタンスを生成する為のFutureResponseを返す。 try (FutureResponse<? extends Session> future = builder.createAsync()) {
  try (var session = future.get(30, TimeUnit.SECONDS)) {
  }
}

Sessionを使用する例

SessionインスタンスはTsubakuroの他のモジュールで使用する。

例えばSQLを実行する場合は、SqlClientに対してSessionインスタンスをアタッチして使用する。

    try (var sqlClient = SqlClient.attach(session)) {
        〜
    }

SqlClinet等のクライアント系のクラスはクローズする必要があるが、クライアントをクローズしてもアタッチされたSessionはクローズされない。


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