やったこと
TimesTenのインストール
まずTimesTenをサーバ側となるWindowsマシンにインストール。インストーラにしたがってポチポチしてくだけ。JDKのバージョン選ぶとこは5じゃなくて6を選んだ気もするが、当座は大して変わりないでしょう。
自前のDSN定義するの面倒なので、sampledb_1122を使います。sampledb_1122に接続して、接続確認用にユーザkagamihogeを作っておく。
ポートの開放
外部のマシンから接続できるようWindowsファイアウォールの例外設定をする。ポート番号がわからなかったので、ttStatus.exeを実行。TimesTen (中略)on port 53393とかあるので、53393を開放しておく。
クライアントの準備
クライアント側のマシンに、TimesTenクライアントのソフトをインストールする。クライアントのソフトは、サーバのインストールに使用したのと同じインストーラを実行して、機能選択の画面でTimesTen Clientにチェックを入れればよい。インストール終了後、インストールディレクトリのbin\ttenv.batのスクリプトを実行しておく。また、クラスパスにlib/ttjdbc6.jarを追加しておく。参考:SQL Developer 3.2 Release NotesのTimesTen and In-Memory Database Cache項。
データソースの準備
管理ツール -> データソース(ODBC)から、サーバ側のTimesTenを参照するDSNを定義する。
ユーザーDSNで追加を押す。TimesTen Client 11.2.2を選ぶ。
次の画面でServers...を押す。
Addを押す。
Server Nameは適当、Network AddressにTimesTenをインストールしたマシンのアドレス、Network Portに53393を入力する。
最初の画面に戻ったら、Server Name or Network Addressでさっき作成したヤツを選択する。Server DSNの横のRefreshを押すと、スクショのようにサーバ側のTimesTenのDSNの一覧が表示される。ここでは、サンプルとしてsampledb_1122を選んでおくことにする。
Client DSNは適当、User IDとpasswordは、さっき接続確認用に作成したユーザとパスワードを入れておく。他の入力項目は空でOK.
Test Oracle TimesTen Server Connectionを押し、全部SucceededになればOK.
Test Data Source Connectionを押し、全部SucceededになればOK.
ttIsqlを立ち上げ、connect sampleDSNと打って、下記スクショのようにConnection SuccessfulとなればOK. sampleDSNは、さっきの手順で作成したClient DSNの名前を使う。
参考:Timesten - (SQL Developer|ODBC Client) Configuration | GerardNico.com (BI, OBIEE, OWB, DataWarehouse)
SQL Developerから接続
ツール -> プリファレンス -> データベース -> サード・パーティJDBCドライバを確認する。前の方の手順でクラスパスにlib/ttjdbc6.jarを入れておけば、ここのリストに勝手に入っていると思われる。無かったら、手動でttjdbc6.jarを追加する。なお、ttjdbc5.jar, ttjdbc5.jar, ttjdbc7.jarがあるので、タブン環境に合わせないとダメかもしれない。
接続 -> 接続の作成でTimesTenのタブを選ぶ。接続名は適当、ユーザ・パスワードは接続確認用に作ったのを入れる。DSNにさっき作ったClient DSNが出ているので、それを選ぶ。テストを押してステータス:成功となればOK.
接続に成功するとこんな感じ。
その他
SQL Developerから接続しようとしたとき、下記のようなエラーが出てうまくいかない場合がある。
ステータス: 失敗 -データベースに接続できませんでした。次のエラーが発生しました: Unrecognized JDBC URL subtype: TimesTen
原因はぐぐってみると色々あるようで、自分の環境では未確認のものもあるけど一応書いておく。
- SQL DeveloperのバージョンとTimesTenのバージョンのサポートしてるバージョンの食い違い。古いSQL Developerだと新しいTimesTenに繋げなかったりするらしい。
- JDBCの食い違い。クライアント側で使うJDBCであるttjdbc5.jar, ttjdbc5.jar, ttjdbc7.jarをサーバとクライアントとで整合性が取れてないと繋げなかったりするらしい。
- データソース(ODBC)の設定が間違っている。俺はこれでハマッた。Test Oracle TimesTen Server Connection, Test Data Source Connectionの両方ともSucceededになることを確認する。