タグ「無償JavaEE環境構築」が付けられているもの

 

基本的に、上記の本を参考にしつつ。

SpringSource Tool Suite(STS) の導入~簡単なアプリケーションの作成 で作成した、Spring MVC のスケルトンアプリに、Spring JDBC を利用したコードを組み込んでみる。

Java 標準の JDBC をそのまま使うと、以下の様な点が問題になる。

  • Connection,Statement,ResultSet インスタンスの管理などプログラミングが大変。
  • すべての例外がSQLExceptionであるため、例外処理が煩雑。
  • Connection インスタンスの取得の仕方がいろいろあり、環境により記述が変わる。

Spring JDBCを利用することで、

  • Connection のインスタンス管理を行ってくれる。
  • SQLException ではなく、汎用データベースアクセス例外が提供されているので、SQLStateを調べずに、例外の型による処理が可能。
  • Connection の取得は、DIにより一貫した取得方法が提供される。

ということになる。

Spring JDBC への参照設定

Spring Template Project - Spring MVC Project を作成すると、Spring JDBC への参照設定はなされていない。

Maven の設定ファイル、pom.xml の dependencies 要素に、Spring JDBC の記述を追加する。

spring_jdbc00

<dependencies>
    <!-- JDBC -->
    <dependency>
        <groupid>org.springframework</groupid>
        <artifactid>spring-jdbc</artifactid>
        <version>3.0.0.RELEASE</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

 

JDBC ドライバの準備

準備した、DB2のサンプルデータベースに接続してみる。

https://www-304.ibm.com/support/docview.wss?rs=4020&uid=swg27016878

から、Driver for JDBC and SQLJ   をダウンロード、解凍すると、db2cc4.jar とうJDBCドライバがあるので、ダウンロード。

Mavenのローカルリポジトリに登録

ここを参考に、ローカルリポジトリにDB2 JDBC4 ドライバをインストールしてみる。

mvn install:install-file -Dfile=<path-to-file>
                         -DgroupId=<group-id>
                         -DartifactId=<artifact-id>
                         -Dversion=<version>
                         -Dpackaging=<packaging>

設定値などは適当。適当なフォルダにJDBCドライバを置き、path-to-file に指定。mvnコマンド自体は、STSインストールにより、C:\springsource\maven-2.2.1.RELEASE\bin にインストールされていた。

実行。

>C:\springsource\maven-2.2.1.RELEASE\bin>mvn install:install-file -Dfile=C:\Users\piroto\maven_local_lib\db2Jcc4.jar -Dgr
oupId=db2jcc4 -DartifactId=db2Jcc4 -Dversion=9.7 -Dpackaging=jar -DlocalRepositoryPath=C:\Users\piroto\.m2\repository
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file {execution: default-cli}]
[INFO] Installing C:\Users\piroto\maven_local_lib\db2Jcc4.jar to C:\Users\piroto\.m2\repository\db2jcc4\db2Jcc4\9.7\db2J
cc4-9.7.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu May 19 22:38:44 JST 2011
[INFO] Final Memory: 4M/109M
[INFO] ------------------------------------------------------------------------

めでたくインストールできたので、Spring JDBC同様、pom.xml に追記。

<dependency>
    <groupId>db2jcc4</groupId>
    <artifactId>db2jcc4</artifactId>
    <version>9.7</version>
</dependency>

これでJDBCを使う準備は整った。

エンティティクラスの実装

  DB2のサンプルデータベースのSTAFFテーブルの定義を見ながら、Java のクラスを作成。

spring_jdbc01

public class Staff {
    private Integer id;
    private String name;
    private Integer dept;
    private String job;
    private Integer years;
    private Double salary;
    private Double comm;
    
    @Override
    public String toString() {
        return String.format("%d,%s,%d,%s,%d,%f,%f",
                this.id,
                this.name,
                this.dept,
                this.job,
                this.years,
                this.salary,
                this.comm);
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    
       :
}

DAOクラスの作成

Staff 取得用のインターフェース

package info.typea.firstspringmvc.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

public interface StaffDao {
    List getStaffList() throws DataAccessException;
}

Staff 取得の実装クラス

package info.typea.firstspringmvc.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class StaffDaoImpl extends JdbcDaoSupport implements StaffDao {

    @Override
    public List getStaffList() throws DataAccessException {
        RowMapper rowMapper = new StaffRowWraper();
        return getJdbcTemplate().query("SELECT * FROM staff", rowMapper);
    }

    protected class StaffRowWraper implements RowMapper {

        @Override
        public Staff mapRow(ResultSet result, int row) throws SQLException {
            
            Staff staff = new Staff();
            staff.setId(result.getInt("ID"));
            staff.setName(result.getString("NAME"));
            staff.setDept(result.getInt("DEPT"));
            staff.setJob(result.getString("JOB"));
            staff.setYears(result.getInt("YEARS"));
            staff.setSalary(result.getDouble("SALARY"));
            staff.setComm(result.getDouble("COMM"));
            return staff;
        }
    }
}

依存性を注入

この状態で、いわゆるひとつの疎結合状態になっているので、設定ファイルで依存性をちゅーにゅーする。

実装クラスの基底クラス JdbcDaoSupport は、DataSource のセッターをもっていて、セットされたDataSource を元に、データベースに対する処理を行うようになっている。

root-context.xml の beans 要素の中に、dataSource を定義。ここに、JDBCの接続設定も記述しておく。

そして、DAOの実装クラスのdataSource プロパティに、上記で定義した、DataSourceを注入。

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
        <value>com.ibm.db2.jcc.DB2Driver</value>
    </property>
    <property name="url">
        <value>jdbc:db2://192.168.10.77:50000/sample</value>
    </property>
    <property name="username">
        <value>db2inst1</value>
    </property>
    <property name="password">
        <value>zzzzz</value>
    </property>
</bean>    

<bean id="staffDao"
    class="info.typea.firstspringmvc.dao.StaffDaoImpl">
    <property name="dataSource" ref="dataSource" />
</bean>

コントローラに、DAOを注入

controllers.xml に、HomeController に 今作成したDAO を注入する記述をする。

sts_jdbc01

    <bean id="homeController"
        class="info.typea.firstspringmvc.controllers.HomeController">
        <property name="staffDao" ref="staffDao"/>
    </bean>

使ってみる

最初のサンプルアプリを作成した時のコントローラーで、ログを吐いている箇所を、データベースの結果を出力するように書き換える。

package info.typea.firstspringmvc.controllers;

import info.typea.firstspringmvc.dao.Staff;
import info.typea.firstspringmvc.dao.StaffDao;

import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {
    private StaffDao staffDao;
    public void setStaffDao(StaffDao staffDao) {
        this.staffDao = staffDao;
    }
    
    @RequestMapping(value="/")
    public String home() {
        
        List stafflist = this.staffDao.getStaffList();
        
        for (Staff staff : stafflist) {
            System.out.println(staff.toString());
        }
        return "home";
    }
}

実行

DB2を起動して、実行。

spring_jdbc03

取得できた!

いくつになっても、DBから値がとれてくるのはうれしいもんですね。

Quick start

http://publib.boulder.ibm.com/wasce/V2.1.0/en/quick-start.html

download

https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?lang=en_US&source=wsced

インストレーションバンドルの選択

Application サーバー のみと、IBM の Java SDK がバンドルされたパッケージがある。

JDKばバンドルされたパッケージの場合、Windows と Unix系に加え、アーキテクチャ別のパッケージになっている。

was_install01

Unix系のサーバーのみパッケージをダウンロード

Server for Unix
wasce_setup-2.1.1.5-unix.bin  (85 MB)

JDKは、Oracleのものをインストールする

download

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html

インストール

# mv jdk-6u25-linux-i586.bin /opt/
# cd /opt/
# chmod +x jdk-6u25-linux-i586.bin 
# ./jdk-6u25-linux-i586.bin 
# vi /etc/profile.d/java.sh
export JAVA_HOME=/opt/jdk1.6.0_25
export PATH=$JAVA_HOME/bin:$PATH
# source /etc/profile.d/java.sh 
# alternatives --install /usr/bin/java java /opt/jdk1.6.0_25/bin/java 2
# alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/jdk1.6.0_25/bin/java

Enter to keep the current selection[+], or type selection number: 

アプリケーションサーバーのインストール

実行権限を付与

# chmod +x wasce_setup-2.1.1.5-unix.bin 

インストール開始(GUIから)

# ./wasce_setup-2.1.1.5-unix.bin 
Preparing to install...

インストーラが起動

was_install03

ライセンスに同意しつつ、インストール先はデフォルトとしておく

was_install04

サマリーが表示された後、インストール開始

was_install05

インストール完了

起動確認

サーバーの8080ポートを開く

was_install06

# cd /opt/IBM/WebSphere/AppServerCommunityEdition/bin
# ./startup.sh
Using GERONIMO_HOME:   /opt/IBM/WebSphere/AppServerCommunityEdition
Using GERONIMO_TMPDIR: var/temp
Using JRE_HOME:        /opt/jdk1.6.0_25/jre
Using GERONIMO_OUT:    /opt/IBM/WebSphere/AppServerCommunityEdition/var/log/server.out

Geronimo started in background. PID: 13746

http://192.168.10.77:8080

 

was_install07

管理コンソールにログイン

デフォルトのユーザーIDとパスワードは、system manager

was_install08

was_install09

シャットダウン

とりあえずここもsystem/manager でシャットダウン

# ./shutdown.sh
Using GERONIMO_HOME:   /opt/IBM/WebSphere/AppServerCommunityEdition
Using GERONIMO_TMPDIR: var/temp
Using JRE_HOME:        /opt/jdk1.6.0_25/jre
Username: system
Password: *******
Locating server on localhost:1099... Server found.
Server shutdown started
Server shutdown completed

今日のところはここまで。

Spring MVC を試すために、SpringSource Tool Suite を導入してみる。

ダウンロード

SpringSource Tool Suite and Eclipse Downloads

http://www.springsource.com/products/eclipse-downloads

spring_install01

上記からWindows用のインストーラ(exe) をダウンロードし、起動する。

インストーラを進めていく

基本デフォルトのまま、進めていけばOK

spring_install02

「vFabric tc Server」 というのは、Apache TomcatをSpringとVMware vSphereに最適化した製品。これが同梱されているということは、別途Tomcat等入れる必要はなさそうだ。

また、vFabric とは、VMWareのクラウド向けアプリ基盤ということらしい。

Spring Roo は、GDD2010 の基調講演でも触れられてたな(01:08 ごろ)。京都会場では途切れ途切れでよくわからんかった。

実行

インストールが完了したら、実行してみる。

spring_install03

プロジェクトの作成

パッケージエクスプローラーから、コンテキストメニュー New - Spring Tmplate Project

spring_install04

Spring MVC プロジェクトを選択

spring_install05

プロジェクト名、トップレベルパッケージを入力して完了

spring_install06

作成された

spring_install08

アプリケーションサーバーを起動してみる

Servers ビューから、tc Server を選択し、実行。ブラウザから、http://localhost:8080 にアクセス。

起動している。

spring_install07

最初のサンプルアプリケーション

Getting Started Spring MVC

http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/

を参考に。

コントローラーを作成

src/main/java のコンテキストメニューから、New - Class でコントローラークラスを作成し、以下の様に実装

spring_install15

package info.typea.firstspringmvc.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {
    @RequestMapping(value="/")
    public String home() {
        System.out.println("Home Controller : Passing through...");
        return "home";
    }
}

一旦実行

プロジェクトのコンテキストメニューから、Run As - Run on Server

spring_install09

そのまま実行する。

spring_install10

 http://localhost:8080/FirstSpringMVCProject/

にブラウザからアクセスすると実行された

spring_install11

 

流れ

Web.xml で、URL を appServelt にマッピング、appServlet は、すぐ上で、org.springframework.web.servlet.DispatcherServlet ですよとなっている。でこのサーブレットの設定場所が、/WEB-INF/spring/appServlet/servlet-context.xml

spring_install12

/WEB-INF/spring/appServlet/servlet-context.xml を確認すると、ViewResolver のプレフィックスが、/WEB-INF/views/、サフィックスが、.jsp となっているので、上記、HomeController の return が "home" だったのが、/WEB-INF/views/home.jsp に解決され呼び出される。で、そのコントローラーの定義は、controllers.xml にあるよと。

spring_install13

controllers.xml を見ると、「info.typea.firstspringmvc」 の配下のコンポーネントをスキャンして、@Controller アノテーションがついた、コントローラを探し出す。

 

spring_install14

まずはこんな感じ。

IBM Data Studio

IBM  Data  Studio  は、現在使用が推奨されない「コントロール・センター」や「コマンド・エディター」などの  DB2  ツールに置き換わるものです  (「コントロール・センター」、「コマンド・エディター」は  DB2  には組み込まれているものの、現在開発は行われていません)。

だそうだ。

ダウンロード

IBM Data Studio Standalone

http://www.ibm.com/services/forms/preLogin.do?lang=en_US&source=swg-idssa

IBM Data Studio (IDE)

http://www.ibm.com/services/forms/preLogin.do?lang=en_US&source=swg-idside

 db2_express_c_22

Eclipse ベースのツール。ダウンロードして適当なフォルダに展開

接続

作成した、DB2 Express-C に接続する。別ホストのため、ファイヤーウォール設定で 50000番ポートを開ける。

data_studio01

新規接続プロファイルの作成

管理エクスプローラーの「新規」ドロップダウンを選択し、「新規接続プロファイル」を選択

data_studio00

接続パラメータを指定

作成したサンプルデータベースに接続してみる

data_studio02

終了で、接続完了

data_studio03

SQLの発行

データ開発プロジェクトの作成

データ・プロジェクト・エクスプローラー のコンテキストメニューから、「データ開発プロジェクト」を選択

data_studio06

次へ

data_studio07

パスワードを入力

パスワードの一部の「o」を押すと、オプションタブに切り替わってしまい入力できない???

コピー&ペーストで、パスワードを入力

data_studio08

SQLスクリプトの作成

データ・プロジェクト・エクスプローラーのSQLスクリプトのコンテキストメニューから、新規-SQL または XQueryスクリプトを選択

data_studio09

SQLを入力して実行

data_studio10

以上。

DB2 Express-C をインストールしてみる

勉強がてら、DB2を触るために、Express-C を CentOS にインストールしてみる。

最初は、ServersMan@VPS Entry プラン にインストールを試みた。インストール自体は成功するのだが、インスタンスがメモリ不足で起動しない。やはり 256MB のサーバーにRDBMSを入れるのは無理があるか。きっと上位契約にすれば良いはずだが、学習用にはもったいない。

ということで、途中から、VirtualBox 上の CentOSに切り替えた。

DB2 Express-C は、使用できるメモリ2G、CPUコア2つという制限があるが、基本的にデータサイズやインスタンス数等などの制限は行わない、再頒布も申請すれば可能、と非常に面白いライセンスになっているので、場面によっては、かなり使えるのではないか。

Linux 用 インストールガイド

http://www.ibm.com/developerworks/jp/offers/db2express-c/installlin_v95/

★ は、必要な箇所、☆は、ServersMan@VPS ではまった、基本的に不要な箇所

★ ダウンロード

http://www-06.ibm.com/software/jp/data/db2/v9/express-c/

db2_express_c_01

本体:db2exc_974_LNX_x86.tar.gz と、ランゲージパック : db2exc_nlpack_974_LNX_x86.tar.gz をダウンロード。IBM ID がダウンロードに必要。無料でIDは取得できる。(自分は以前メンバーになっていたようで、ログインできた)

インストールを試みるも、ライブラリが足りない

ServersMan@VPS では、ライブラリが足りなかったため、インストールした。CentOSのインストーラから、GUI Server をインストールした場合、ライブラリを別途インストールする必要はなかった。

# tar -xvf db2exc_974_LNX_x86.tar.gz
# cd expc
# ./db2setup
ERROR: 
   The required library file libaio.so.1 is not found on the system. 
   Check the following web site for the up-to-date system requirements
   of IBM DB2 9.7
   http://www.ibm.com/software/data/db2/udb/sysreqs.html
   http://www.software.ibm.com/data/db2/linux/validate  
  Aborting the current installation ...
  Run installation with the option "-f sysreq" parameter to force the installation.

ライブラリをインストールして再実行してみる。

# yum install compat-libstdc++-33
# yum install libaio
# ./db2setup
DBI1190I  db2setup is preparing the DB2 Setup wizard which will guide
      you through the program setup process. Please wait.

The DISPLAY variable is not set properly.  Ensure that the DISPLAY variable is set properly and that permissions are set properly to open windows on the display specified, then rerun the command.

 

☆ VNCを入れる

ServersMan@VPS では、当然、GUIはないので、VNCを入れてみる。VirtualBoxには、GUI Server をインストールした。

途中で作成する、セットアップ設定ファイルを利用すると、サイレントインストール自体は可能なようだ。

switchdeskしようとしたら、GNOME がないので、言われたとおりにGNOMEも入れる

# yum install vnc-server.i386
# yum install switchdesk
# switchdesk gnome
Red Hat Linux switchdesk 4.0
Copyright (C) 1999-2004 Red Hat, Inc
Redistributable under the terms of the GNU General Public License
ERROR: GNOME is not installed on your machine! to install GNOME, please type
yum groupinstall "GNOME Desktop Environment"

指摘通り GNOME を入れる

# yum groupinstall "GNOME Desktop Environment"

デスクトップを GNOME に変更する

# switchdesk gnome
Red Hat Linux switchdesk 4.0
Copyright (C) 1999-2004 Red Hat, Inc
Redistributable under the terms of the GNU General Public License
Desktop now set up to run GNOME.

一旦、vncserver を実行後、設定を書き換える

# cd /root/.vnc
# mv xstartup  xstartup.bak
# ln -s /root/.Xclients xstartup

vncserver を実行

# vncserver
xauth: (stdin):1:  bad display name "dti-vps-srv39:1" in "add" command

New 'dti-vps-srv39:1 (root)' desktop is dti-vps-srv39:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/dti-vps-srv39:1.log

ServersMan@VPS にVNCクライアントから接続。

db2_express_c_02

★ DB2 Express-C インストール

ダウンロードしたファイルを解凍し、expc フォルダの中で、db2setup を実行

# tar -xvf db2exc_974_LNX_x86.tar.gz
# cd expc
# ./db2setup

左側ペインで、Install a Product を選択

db2_express_c_03

Install New を選択

db2_express_c_04

DB2をインストールする前に、最低でも以下の事を計画しておく必要があるらしい

DB2のインストールは初めてなので、デフォルトで進める。

DB2管理サーバーのユーザー名 デフォルト:dasadm1
DB2のインスタンス・オーナー・ユーザー名 デフォルト:db2inst1
fencedユーザーのユーザー名 デフォルト:db2fenc1
インスタンスのTCP/IPポート番号 50000番

 

「DB2のサーバー・プロセスは、上記の「DB2の管理ユーザー」で起動されます。また、DB2 ではインスタンスが外部(クライアント)からの接続を受け付けるために、1インスタンス毎に一つ、現在使用していないポート番号が必要になります。」

へぇ。

Next

db2_express_c_05

次の画面では、ライセンスに同意してNext

Typical (標準)- Next

View Features で導入されるコンポーネントを確認できる。

「多くの場合、「標準」のままで問題ありません。」

ということのなので、そのままで次へ。

db2_express_c_06

応答ファイル(レスポンス・ファイル)を作成するかどうかを設定

「応答ファイルは、インストール時に選択した内容を記録しておくファイルで、同じ内容で次回インストールする際にそのファイルを使用するとインストール作業を自動化できるというものです。」

なしでいいかな。とりあえず。

db2_express_c_07

インストールディレクトリはデフォルトのままで

/opt/ibm/db2/V9.7

db2_express_c_08

DB2の管理ユーザーについての設定

db2_express_c_09

インスタンスを作成するにして、次へ

db2_express_c_10

「DB2インスタンスを作成する」を選ばない場合、データベースを扱うためのインスタンスの作成・構成はインストール・プロセスの中では行われず、インストール終了後にdb2icrtコマンドなどを用いてマニュアルで実施することになります。

インスタンス・オーナー・ユーザーについて指定

fencedユーザーについても、同様に、パスワードを設定し進める。

fencedユーザーとは、

DB2のユーザー定義関数、ストアード・プロシージャーなどは、fencedユーザー権限で実行されます。fencedユーザーをインスタンス・オーナーと別に指定することで、ユーザー定義関数、ストアード・プロシージャーに問題があった際にインスタンス本体へ影響を及ぼすことを防ぎます。

db2_express_c_11

設定内容のサマリーが表示される

db2_express_c_12

インストール実行中

db2_express_c_13

マイナーエラー発生!?

db2_express_c_14

Post-install steps を実行しろと言っているようだ。

/tmp/db2setup.log を見ると、

ERROR: SQL1042C  An unexpected system error occurred.

ERROR: An error occurred while trying to start the "db2inst1" instance. The
return code is "4" and the SQL Message is:   "PROCESS_ERROR"

ERROR: An error occurred while configuring the instance "db2inst1".

Configuring DB2 instances :.......Failure 


ERROR: An error occurred while trying to start the "db2inst1" instance. The
return code is "4" and the SQL Message is:   "PROCESS_ERROR"

ERROR: The installation program is unable to add the contact "db2inst1". The
return value is "5109". See the DB2 Information Center for more information
about adding contacts and configuring health alert notifications.

インスタンスの起動に失敗しているようだ。

この後、OS自体がメモリ不足でウィンドウが開かない、コマンドが実行できない等の状況となったので、メモリが足りないため、インスタンスの起動ができなかったのだろう。

メモリを2Gに設定した、VirtualBox上にCentOSをインストールして、ここまでの作業をやり直したところ、は成功。

db2_express_c_23 

★ ランゲージパックのインストール

一旦、db2inst1 ユーザでログインし直し、db2stop を行ってから、rootになって実行(インスタンスが動いているとエラーが発生することがあるとのことなので)

# tar -xvf db2exc_nlpack_974_LNX_x86.tar.gz
# cd nlpack/
# sudo ./db2setup

Install a Product

db2_express_c_15

Work with Existing ~ Laun ch DB2 Setup wizard

db2_express_c_16

Next ~ Next Japanese を選択してNext

db2_express_c_17

Finish

db2_express_c_18

Setup Complete

db2_express_c_19

☆ JDKのインストールと設定

ServersMan@VPS にてエラーのため実施したが、通常は不要と思われる。

ダウンロード

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html

db2_express_c_21

インストールと設定

jdk-6u25-linux-i586.bin

# mv jdk-6u25-linux-i586.bin /opt/
# cd /opt/
# chmod +x jdk-6u25-linux-i586.bin 
# ./jdk-6u25-linux-i586.bin 
# vi /etc/profile.d/java.sh
export JAVA_HOME=/opt/jdk1.6.0_25
export PATH=$JAVA_HOME/bin:$PATH
# source /etc/profile.d/java.sh 
# alternatives --install /usr/bin/java java /opt/jdk1.6.0_25/bin/java 2
# alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/jdk1.6.0_25/bin/java

Enter to keep the current selection[+], or type selection number: 

rootでうごかしていたVNCサーバーを終了させる

# vncserver -kill :1

一旦ログオフし、db2inst1ユーザにて接続しなおしVNCの設定、VNCサーバーの起動

$ switchdesk gnome
Red Hat Linux switchdesk 4.0
Copyright (C) 1999-2004 Red Hat, Inc
Redistributable under the terms of the GNU General Public License
Desktop now set up to run GNOME.
$ cd /home/db2inst1/.vnc
$ mv xstartup xstartup.bak
$ ln -s /home/db2inst1/.Xclients xstartup
$ vncserver

db2_express_c_20

☆ DB2ファーストステップ(db2fs)

ServersMan@VPS にて、このステップを行おうとしてエラーとなったため、JDKをインストールしたが、VirtualBoxにインストールしたCentOSでは不要。

https://www-304.ibm.com/support/docview.wss?uid=swg21377358

$ db2fs
sh: /home/db2v2/sqllib/java/jdk32/jre/bin/java: No such file or directory DB2JAVIT : RC = 127

DB2の設定値を変更

$ db2 update dbm cfg using JDK_PATH $JAVA_HOME
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed 
successfully.

確認

$ db2 get dbm cfg | grep "JDK"
 Java Development Kit installation path       (JDK_PATH) = /opt/jdk1.6.0_25

これで、上記のエラーは解消されるも、メモリ不足のエラーのため、ServersMan@VPS での続行を断念し、VirtualBox に CentOSをインストールして、ここまでの処理を行う。

★  サンプルデータベースの作成

上記インストールガイドで、db2fs でやっているのはサンプルデータベースを作成するだけのようだ。そのために、ブラウザのインストールが必要とうのは面倒くさい。サンプルデータベースはコマンドラインから作成可能のようだ。

DB2 Express-C 入門 V9,7 対応

コマンドからサンプルデータベースを作成する

$ db2sampl -xml -sql

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

  'db2sampl' processing complete.

ここまでで、システムの再起動推奨

★ インストールの確認

再起動後、DB2の状態を確認

インストールされた  DB2  製品、fix  pack  のレベル、およびその他の詳細情報を表示

$ db2level
DB21085I  Instance "db2inst1" uses "32" bits and DB2 code release "SQL09074" 
with level identifier "08050107".
Informational tokens are "DB2 v9.7.0.4", "s110330", "IP23242", and Fix Pack 
"4".
Product is installed at "/opt/ibm/db2/V9.7".

インストールされた DB2 製品に固有のライセンス情報をすべてリストアップ

$ db2licm -l
Product name:                     "DB2 Express-C"
License type:                     "Unwarranted"
Expiry date:                      "Permanent"
Product identifier:               "db2expc"
Version information:              "9.7"
Max number of CPUs:               "2"
Max amount of memory (GB):        "2"

DB2  コピーのコア機能を検証することによって、インストールの検証

db2val 応答返らず

★ IBM Data Studio

IBM  Data  Studio  は、現在使用が推奨されない「コントロール・センター」や「コマンド・エディター」などの  DB2  ツールに置き換わるものです  (「コントロール・センター」、「コマンド・エディター」は  DB2  には組み込まれているものの、現在開発は行われていません)。

とのことなので、次は IBM Data Studio を利用して作成したデータベースに接続してみよう。

★ まとめ

ServersMan@VPS で、たびたびエラーが出たため対処、今後のためにメモを残しておくが、VirtualBox 上にインストールしたCentOSでは、db2val の応答がないことを除いて、全く問題なくスムースに作業は完了した。