16.6.9 サーバーとSDKの互換性
MachbaseサーバーとSDKのバージョンが異なる場合、基本的な接続は可能でも、最新の認証、メタデータ、 名前付きバインドパラメーターの機能が制限される場合があります。この節では、サーバーとSDKの バージョンの組み合わせ別のサポート範囲とアップグレード順序を説明します。
サーバーとSDKのバージョン互換表
| サーバーバージョン | 8.5クライアントドライバー | 8.7.0クライアントドライバー |
|---|---|---|
| 8.7.0サーバー | 限定的な互換性 | 完全互換 |
| 8.5サーバー | 完全互換 | 後方互換、8.7.0の名前指定APIは非対応 |
- 完全互換: 同じバージョンの組み合わせです。実際に使用できる機能はEdition、テーブルタイプ、SDKのサポート範囲によって異なり、その機能を含むビルドを使用する必要があります。
- 限定的な互換性: 基本的な接続は可能ですが、AUTH KEYの拡張など8.7.0の新機能が動作しない場合があります。
- 後方互換: 8.5サーバーの範囲内の機能のみ使用できます。
Machbase 8.7.0 SDKの主な変更点
AUTH KEY認証の拡張
8.7.0ではAUTH KEYのチャレンジ認証方式を拡張しました。
- 対応する署名方式:
ECDSA、RSA_PKCS1_V15、RSA_PSS - 8.5以前のドライバーでは、新しい署名方式
RSA_PSSをサポートしない場合があります。 - AUTH KEY認証を使用する場合は、ドライバーを8.7.0に更新してください。
-- AUTH KEYを登録(サーバー)
ALTER USER app_user ADD AUTH KEY (
KEY='-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----\n',
VALID_BEFORE='2047-12-31'
);接続文字列の互換性
Machbase SQLCLIとODBCのAUTH KEY関連パラメーター:
AUTH_MODE=CHALLENGE;
AUTH_KEY_FILE=./private_key.pem;
AUTH_SIG_SCHEME=ECDSA;8.5ドライバーではAUTH_SIG_SCHEMEパラメーターを無視する場合があります。
Nullableメタデータ
結果列がNULLを許容するか確認するAPIと、サーバー・SDKの組み合わせ別の制約は Nullableメタデータのサポート範囲を 参照してください。互換性を確認するときは、サーバーとクライアントの両方のバージョンを記録します。
Named Bind Parameter
名前付きパラメーターをサーバーのプリペアドステートメントへ渡すか、位置順にバインドするか、 クライアントでSQL文字列へ変換するかはSDKによって異なります。 SDK機能のサポート範囲で 使用するクライアントの動作を確認してください。
ARRAYと選択列Append
固定長の数値ARRAYと選択列AppendはMachbase DBMS 8.7.0でサポートします。DBMS 8.7.0サーバーと ARRAY機能を含むSDKビルドを併用してください。旧バージョンのサーバーや対応していないSDKは、 ARRAYのメタデータや値を従来のスカラー型で代用せず、該当リクエストをエラーとして処理します。
ARRAYのSQL要素位置とMachbase専用SDKのpositionは0始まりです。従来の1始まりのSQL、
疎なオブジェクト、添字付きAppendターゲットでは、各位置を1減らしてください。保存データと
密なARRAYの要素順序は変わりません。JDBCのパラメーター序数やjava.sql.Arrayのスライスなど、
標準APIが定義する1始まりの位置は変更対象ではありません。
Cluster Editionでは、coordinator、broker、warehouseをすべてARRAYに対応した同じDBMS 8.7.0ビルドに そろえます。バージョンが混在する状態では、ARRAY DDLやARRAYデータを使用する操作を開始しないでください。
SQLとSDK別の要件は、数値ARRAY型と Sparse ARRAYと選択列Append APIを参照してください。
SDKバージョンの確認
JDBC:
Connection conn = DriverManager.getConnection(url, props);
DatabaseMetaData meta = conn.getMetaData();
System.out.println("Driver: " + meta.getDriverVersion());Machbase SQLCLI:
SQLGetInfo(conn, SQL_DRIVER_VER, buf, sizeof(buf), NULL);ODBC:
SQLGetInfo(conn, SQL_DRIVER_VER, buf, sizeof(buf), NULL);アップグレードの推奨事項
- サーバーとSDKを同じバージョン(8.7.0)へ一緒にアップグレードしてください。
- SDKを段階的にアップグレードする場合、その期間中の8.5 SDKから8.7.0サーバーへの接続は限定的な互換性となります。
- AUTH KEY認証を使用する場合は、最初にSDKをアップグレードしてください。
- Nullableメタデータをアプリケーションのロジックで使用する場合は、サーバーとSDKの両方を8.7.0へアップグレードしてください。
- Named Bind Parameterの名前指定SDK APIを使用する場合は、サーバーとSDKの両方を8.7.0へアップグレードしてください。
- ARRAYまたは選択列Appendを使用する場合は、サーバーをMachbase DBMS 8.7.0に、クライアントを対応機能を含むSDKビルドにアップグレードしてください。Cluster Editionでは全ノードをそろえます。