DB2 LUW の場合の変更

SQL Server データベースではなく DB2 LUW データベースを使用するためにチュートリアルに加える変更について説明します。

前提条件

このチュートリアルは、「チュートリアル:Java Web サービス環境での既存の COBOL プログラムの再利用」の続きであり、Apache Tomcat アプリケーション サーバーに加えて、同じ CobolBook および JSPBookDemo プロジェクトを使用します。したがって、Tomcat 7 アプリケーション サーバーを使用して前述のチュートリアル全体を完了してから、このチュートリアルを開始する必要があります。詳しい手順については、「チュートリアル:Java Web サービス環境での既存の COBOL プログラムの再利用」を参照してください。

IBM DB2 LUW バージョン 10 Express-C 32 ビットもインストールする必要があります。

変更

本セクションでは、アプリケーションが SQL Server ではなく DB2 LUW と連携できるようにするために SQL Server バージョンのチュートリアルに加える必要がある変更について説明します。

JDBC ドライバーのインストールおよび構成
JDBC ドライバーのインストール
このチュートリアルでは、データベース システムのインストーラーに付属している IBM DB2 LUW 10.5 Express-C JDBC ドライバーを使用するため、ダウンロードおよびインストールは必要ありません。
JDBC ドライバーの Tomcat へのコピー
JDBC ドライバーのインストールおよび構成」のトピックの「JDBC ドライバーの Tomcat へのコピー」に記載されている手順に従いますが、Apache Tomcat のインストール場所の lib サブディレクトリには db2jcc.jar ファイルおよび db2jcc_license_cu.jar ファイルをコピーします。
DB2 LUW データベースの作成およびロード
SAMPLE DB2 LUW データベースの作成
このチュートリアルでは、DB2 LUW First Steps ツールを使用して作成できる SAMPLE データベースを使用します。手順の詳細については、DB2 LUW のマニュアルを参照してください。
Enterprise Developer を起動します。
Enterprise Developer を「チュートリアル:Java 環境での既存の COBOL プログラムの再利用」の完了後に閉じてしまった場合は、もう一度開いて、[Java EE] パースペクティブおよび [Project Explorer] を開きます。
DB2 接続の定義
SQL Server データベースの作成およびロード」のトピックの「SQL Server 接続の定義」に記載されている手順に従いますが、次の変更を加えます。
  • [New Connection Profile] ダイアログ ボックスで、[DB2 for Linux, Unix, and Windows] プロファイル タイプを選択します。
  • [New Driver Definition] ダイアログ ボックスの [Name/Type] タブで、[IBM Data Server Driver for JDBC and SQLJ] を選択します。
  • [JAR List] タブで、次の手順に従います。
    1. [Driver file] リストで db2jcc.jar ファイルを選択し、[Edit JAR/Zip] をクリックします。
    2. DB2 LUW のインストール場所の java サブディレクトリをブラウズして、そこにある db2jcc.jar ファイルをダブルクリックします。

      リストの db2jcc.jar ファイルが置き換えられ、その他の .jar ファイルのパスを更新して同じ場所が使用されるようにすることを求めるメッセージが表示されます。別のディレクトリに追加するのは単一の .jar ファイルだけであるため、その他のファイルのパスを更新する必要はありません。

    3. [No] をクリックします。
    4. [Driver file] リストで db2jcc_license_cisuz.jar ファイルを選択し、[Remove JAR/Zip] をクリックします。
    5. [Add JAR/Zip] をクリックします。
    6. DB2 LUW のインストール場所の java サブディレクトリをブラウズして、db2jcc_license_cu.jar ファイルをダブルクリックします。

      このファイルが [Driver file] リストに追加されます。

  • [Properties] タブで、次の情報を使用します。
    プロパティ
    [Connection URL] jdbc:db2://localhost:50000/SAMPLE
    [Database Name] SAMPLE
    [Driver Class] com.ibm.db2.jcc.DB2Driver
    [Password] 空白
    [User ID] 空白
  • [New Connection Profile] ダイアログ ボックスで、次の手順に従います。
    1. [Save password] をオンにします。
    2. [User name] フィールドおよび [Password] フィールドに、DB2 のユーザー名およびパスワードの資格情報をそれぞれ入力します。
      注:DB2 データベースで固有のユーザー名およびパスワードを使用しない場合は、代わりに Windows 認証の資格情報を入力します。
    3. [Test Connection] をクリックします。
    4. 接続に成功したら、表示されたメッセージ ボックスを閉じます。続いて [Finish] をクリックして、接続を保存して [New Connection Profile] ダイアログ ボックスを閉じます。
SQL スクリプトの追加
SQL Server データベースの作成およびロード」のトピックの「SQL スクリプトの追加」に記載されている手順に従いますが、次の変更を加えます。
  • 新しいスクリプト ファイルに SetupDB2Books.sql という名前を付けます。
  • 次の内容を追加します。
    DROP TABLE BOOKS;
    
    CREATE TABLE BOOKS (
    	TITLE	VARCHAR(50) NOT NULL,
    	TYPE    	VARCHAR(20) NOT NULL,
    	AUTHOR  	VARCHAR(50) NOT NULL,
    	STOCKNO CHAR(4) NOT NULL PRIMARY KEY,
    	ISBN    	DECIMAL (13, 0) NOT NULL, 
    	RETAIL	DECIMAL(4,2) NOT NULL,
        	ONHAND	INT NOT NULL,
        	SOLD	INT NOT NULL
    );
    
    INSERT INTO BOOKS VALUES(
    	'OLIVER TWIST',
    	'CHARLES DICKENS',
    	'CLASSIC',
    	'1111',
    	9780140620467,
    	5.00,
    	10,
    	30
    );
    
    INSERT INTO BOOKS VALUES(
    	'A GAME OF THRONES',
    	'GEORGE R. R. MARTIN',
    	'FANTASY',
    	'1112',
    	7428545,
    	3.86,
    	17,
    	75
    );
    
    INSERT INTO BOOKS VALUES(
    	'A CLASH OF KINGS',
    	'GEORGE R. R. MARTIN',
    	'FANTASY',
    	'1113',
    	7447833,
    	6.49,
    	17,
    	75
    );
    
    INSERT INTO BOOKS VALUES(
    	'THE DAY OF THE JACKAL',
    	'FREDERICK FORSYTH',
    	'ADVENTURE',
    	'1114',
    	99552710,
    	2.00,
    	26,
    	75
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE PHILOSOPHER''S STONE',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1116',
    	747558191,
    	5.24,
    	48,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE CHAMBER OF SECRETS',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1117',
    	747562180,
    	5.24,
    	44,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE PRISONER OF AZKABAN',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1118',
    	747573760,
    	5.24,
    	49,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE GOBLET OF FIRE',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1119',
    	747582386,
    	6.74,
    	44,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE ORDER OF THE PHOENIX',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1120',
    	747591261,
    	6.74,
    	37,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE HALF-BLOOD PRINCE',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1121',
    	747598460,
    	6.74,
    	41,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'HARRY POTTER AND THE DEATHLY HALLOWS',
    	'J. K. ROWLING',
    	'ADVENTURE',
    	'1122',
    	1408810298,
    	6.74,
    	40,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'THE FELLOWSHIP OF THE RING',
    	'J. R. R. TOLKIEN',
    	'FANTASY',
    	'1123',
    	7123825,
    	4.95,
    	23,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'THE TWO TOWERS',
    	'J. R. R. TOLKIEN',
    	'FANTASY',
    	'1124',
    	261102362,
    	7.99,
    	28,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'LORD OF THE FLIES',
    	'WILLIAM GOLDING',
    	'SCARY',
    	'2222',
    	9780571191475,
    	4.50,
    	30,
    	100
    );
    
    INSERT INTO BOOKS VALUES(
    	'CATCH 22',
    	'JOSEPH HELLER',
    	'WAR',
    	'3333',
    	9780099477310,
    	6.50,
    	50,
    	200
    );
    
    INSERT INTO BOOKS VALUES(
    	'THE HITCHHIKER''S GUIDE TO THE GALAXY',
    	'DOUGLAS ADAMS',
    	'COMEDY',
    	'4444',
    	9780345453747,
    	6.73,
    	100,
    	360
    );
    
    INSERT INTO BOOKS VALUES(
    	'TO KILL A MOCKINGBIRD',
    	'HARPER LEE',
    	'CLASSIC',
    	'5555',
    	9780099466734,
    	4.87,
    	50,
    	75
    );
    
    SELECT * FROM yourSchema.BOOKS;
    SELECT CURRENT SCHEMA FROM SYSIBM.SYSDUMMY
  • スクリプトの下から 2 行目の yourSchema を、SAMPLE データベースの作成時に使用したスキーマの名前に置き換えます。
SQL スクリプトの実行
SQL Server データベースの作成およびロード」のトピックの「SQL スクリプトの実行」に記載されている手順に従いますが、次の変更を加えます。
  • SetupDB2Books.sql ファイルを使用します。
  • [Type] を [DB2 UDB_V9.1] に設定します。
  • [Name] を DB2 接続の名前に設定します。
  • [Database] フィールドで [SAMPLE] を選択します。
COBOL ソースの変更
COBOL ソースの変更」のトピックに記載されている手順に従いますが、次の変更を加えます。
book.cblsqlbook.cbl に置換
COBOL ソースの変更」のトピックの「book.cblsqlbook.cbl に置換」に記載されている手順に従います。
注:このチュートリアルをすでに実行しており、book.cblsqlbook.cbl ファイルに置き換えている場合は、この手順をスキップして「EXEC SQL 文の変更」に進んでください。
EXEC SQL 文の変更
  1. プロジェクト エクスプローラーで、sqlbook.cbl エントリをダブルクリックしてエディターで開きます。
  2. 変更前:
    exec sql connect to PUBS end-exec

    変更後:

    exec sql connect to db2 end-exec
  3. sqlbook.cbl を保存します。
book-rec.cpy の変更
COBOL ソースの変更」のトピックの「book-rec.cpy の変更」に記載されている手順に従います。変更は不要です。
注:このチュートリアルをすでに実行しており、book-rec.cpy を変更している場合は、この手順をスキップして「Java ソースの変更」に進んでください。
Java ソースの変更
Java ソースの変更」のトピックのすべてのセクションを完了します。
注:このチュートリアルをすでに実行しており、java ソースを変更している場合は、この手順をスキップして「XML の追加と変更」に進んでください。
XML の追加と変更
context.xml の追加
XML の追加と変更」のトピックの「context.xml の追加」に記載されている手順に従いますが、次の変更を加えます。
  • 次のコードをコピーし、context.xml ファイルに貼り付けます。
    <Resource name="db2" auth="Container" type="javax.sql.DataSource"
                   maxActive="10" maxIdle="10" maxWait="10000"
                   username="db2UserName" password="db2Password"
                   driverClassName="com.ibm.db2.jcc.DB2Driver"
                   url="jdbc:db2://localhost:50000/sample:retrieveMessagesFromServerOnGetMessage=true;"/>

    db2UserName および db2Password を DB2 データベースの資格情報に置き換えるか、該当する場合は Windows 認証の資格情報に置き換えます。

注:このチュートリアルをすでに実行しており、context.xml ファイルを追加している場合は、ファイルの内容をここに示したコードに置き換えてください。
web.xml の変更
XML の追加と変更」のトピックの「web.xml の変更」に記載されている手順に従いますが、次の変更を加えます。
  • web.xml のすべての内容を次のコードに置き換えます。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             version="2.5">
      <display-name>JSPBookDemo</display-name>
      <servlet>
        <servlet-name>BookServlet</servlet-name>
        <servlet-class>com.microfocus.book.BookServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>BookServlet</servlet-name>
        <url-pattern>/view</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>view</welcome-file>
      </welcome-file-list>
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>db2</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    </web-app>
JSP アプリケーションの実行
DB2 LUW に関する変更は不要です。「JSP アプリケーションの実行」のトピックに記載されている手順に従います。