S-JIS[2023-10-06]
TsurugiのTsubakuro(Java通信ライブラリー)のSessionクラスのメモ。
TsubakuroのSessionは、Tsurugiサーバーに接続するクラス。
SQL実行やKVSアクセス等の他のクラスも、Sessionを利用する。
Sessionはtsubakuro-sessionに含まれている。
SessionインスタンスはSessionBuilderクラスを使って生成する。
生成したSessionインスタンスは、Tsubakuroのクライアント系クラス(SqlClientやKvsClient等)にアタッチして使用する。
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インスタンスは最終的にクローズする必要がある。
メソッド | 説明 | 例 |
---|---|---|
connect | エンドポイントを指定してSessionBuilderインスタンスを生成する。 | var builder = SessionBuilder.connect("tcp://localhost:12345"); |
import java.net.URI; |
||
withCredential | 認証情報を指定する。 | import
com.tsurugidb.tsubakuro.channel.common.connection.NullCredential; |
create | Sessionインスタンスを生成する。 引数としてタイムアウト時間をセットする。 |
import java.util.concurrent.TimeUnit; |
createAsync | Sessionインスタンスを生成する為のFutureResponseを返す。 | try (FutureResponse<? extends Session> future =
builder.createAsync()) { |
SessionインスタンスはTsubakuroの他のモジュールで使用する。
例えばSQLを実行する場合は、SqlClientに対してSessionインスタンスをアタッチして使用する。
try (var sqlClient = SqlClient.attach(session)) { 〜 }
SqlClinet等のクライアント系のクラスはクローズする必要があるが、クライアントをクローズしてもアタッチされたSessionはクローズされない。