argius note

プログラミング関連

DB2 Express-C for MacOS X をインストール (2)

前回(2011-02-28)から随分間が開いてしまいました。
停電の影響で再起動は済んでいたものの、忙しかったり他の問題があったりで手付かずに。ふと下書きを見ると、この記事の書きかけがあったので、やっと思い出したのでした。

インスタンス起動(続き)

まず前回のつづき。パスを通しておき、起動コマンドを実行。

$ export PATH=$PATH:${DB2DIR}/adm:{DB2DIR}/bin
$ db2start
SQL1063N  DB2START processing was successful.
$ 

続けてサンプルDBを作成。

$ db2sampl

  Creating database "SAMPLE"...
  Connecting to database "SAMPLE"...
  Creating tables and data in schema "ROOT"...
  Creating tables with XML columns and XML data in schema "ROOT"...

  'db2sampl' processing complete.

$

コマンドラインクライアントを起動し、サンプルDBに接続。適当にテーブルをSELECTしてみる。

$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 9.5.2

  (中略)

For more detailed help, refer to the Online Reference Manual.

db2 => connect to sample

   Database Connection Information

 Database server        = DB2/DARWIN 9.5.2
 SQL authorization ID   = ROOT
 Local database alias   = SAMPLE

db2 => list tables
(以下略)

上手くいっているようです。

TCP/IP経由で接続できるようにする

この時点では、TCP/IP接続ができません。

$ db2 get dbm cfg | grep SVCENAME
 TCP/IP Service name                          (SVCENAME) =
$

まず、サービス用にポートを定義しておきます。/etc/servicesに1行"db2c_argius 50001/tcp"を追加します。
DB2のデフォルトポートは50000のようですが、ここでは訳あって50001にしています。

TCP/IPの設定を反映し、インスタンス再起動。普通に止めようとしたら止まらなかったので強制停止。

$ db2set DB2COMM=TCPIP
$ db2 update dbm cfg using SVCENAME db2c_argius
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
$ db2stop
SQL1025N  The database manager was not stopped because databases are still active.
$ db2stop force
SQL1064N  DB2STOP processing was successful.
$ db2start
SQL1063N  DB2START processing was successful.
$

サービス(リスナ)が上がっていることを確認。

$ db2 get dbm cfg | grep SVCENAME
 TCP/IP Service name                          (SVCENAME) = db2c_argius
$ netstat -an | grep 50001
tcp4       0      0  *.50001                *.*                    LISTEN
$

JDBC接続

本来の目的である、JDBC接続を行います。ログインユーザは、OSのユーザ(!)。

Jar    db2jcc4.jar
Driver com.ibm.db2.jcc.DB2Driver
URL    jdbc:db2://127.0.0.1:50001/SAMPLE

接続成功!