Oracle の場合の変更

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

前提条件

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

Oracle Database 11g Express Edition もインストールする必要があります。

変更

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

JDBC ドライバーのインストールおよび構成
JDBC ドライバーのインストール
このチュートリアルでは、Oracle Database 11g Release 2 JDBC ドライバーを使用して Oracle 11g Express Edition に接続します。「JDBC ドライバーのインストールおよび構成」のトピックの「JDBC ドライバーのインストール」に記載されている手順の代わりに、次の手順に従います。
JDBC ドライバーの Tomcat へのコピー
JDBC ドライバーのインストールおよび構成」のトピックの「JDBC ドライバーの Tomcat へのコピー」に記載されている手順に従いますが、Apache Tomcat のインストール場所の lib サブディレクトリには ojdbc6.jar ファイルをコピーします。
Tomcat の HTTP ポートの変更
デフォルトでは、Oracle は Tomcat と同じポート 8080 を使用します。競合を避けるために、次の手順に従って Tomcat の HTTP ポートを変更します。
  1. プロジェクト エクスプローラーで、[Servers > Tomcat v7.0 Server at localhost-config] を展開します。
  2. server.xml をダブルクリックしてエディターで開きます。
  3. 変更前:
    <Connector connectionTimeout="20000"
    port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    変更後:

    <Connector connectionTimeout="20000"
    port="9000" protocol="HTTP/1.1" redirectPort="8443"/>
  4. [File > Save] をクリックして server.xml を保存します。
接続の定義および Oracle データベースのロード
Oracle データベースの作成
このチュートリアルでは、製品に付属している標準の Oracle XE データベースを使用するため、このチュートリアル用にデータベースを作成する必要はありません。
Visual COBOL を起動します。
Visual COBOL を「チュートリアル:Java 環境での既存の COBOL プログラムの再利用」の完了後に閉じてしまった場合は、もう一度開いて、[Java EE] パースペクティブおよび [Project Explorer] を開きます。
Oracle 接続の定義
SQL Server データベースの作成およびロード」のトピックの「SQL Server 接続の定義」に記載されている手順に従いますが、次の変更を加えます。
  • [New Connection Profile] ダイアログ ボックスで、[Oracle] プロファイル タイプを選択します。
  • [New Driver Definition] ダイアログ ボックスの [Name/Type] タブで、[Oracle Thin Driver (for System Version 11)] を選択します。
  • [JAR List] タブで、次の手順に従います。
    1. [Add JAR/Zip] をクリックします。
    2. ダウンロードした ojdbc6.jar ファイルが格納されているローカル ディレクトリをブラウズして、このファイルをダブルクリックして選択します。

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

  • [Properties] タブで、次の情報を使用します。
    プロパティ
    [SID] Xe
    [Host] Localhost
    [Port number] 1521
    [User name] Scott1
    [Password] tiger1,2
    [Connection URL] jdbc:oracle:thin:@localhost:1521:xe

    1 このチュートリアルで使用する接続資格情報です。

    2 パスワードの大文字と小文字は区別されます。

  • [New Connection Profile] ダイアログ ボックスで、次の手順に従います。
    1. [Test Connection] をクリックします。
    2. 接続に成功したら、表示されたメッセージ ボックスを閉じます。続いて [Finish] をクリックして、接続を保存して [New Connection Profile] ダイアログ ボックスを閉じます。
SQL スクリプトの追加
SQL Server データベースの作成およびロード」のトピックの「SQL スクリプトの追加」に記載されている手順に従いますが、次の変更を加えます。
  • 新しいスクリプト ファイルに SetupOraBooks.sql という名前を付けます。
  • 次の内容を追加します。
    DROP TABLE BOOKS;
    CREATE TABLE BOOKS (
    	TITLE	VARCHAR2(50) NOT NULL,
    	TYPE    	VARCHAR2(20) NOT NULL,
    	AUTHOR  	VARCHAR2(50) NOT NULL,
    	STOCKNO 	CHAR(4) 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 BOOKS;
    /* create user SCOTT identified by tiger
    grant dba to SCOTT */
SQL スクリプトの実行
SQL Server データベースの作成およびロード」のトピックの「SQL スクリプトの実行」に記載されている手順に従いますが、次の変更を加えます。
  • SetupOraBooks.sql ファイルを使用します。
  • [Type] を [Oracle_11] に設定します。
  • [Name] を Oracle 接続の名前に設定します。
  • [Database] フィールドで [xe] を選択します。
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 ora 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="ora" auth="Container" type="javax.sql.DataSource"
                   maxActive="10" maxIdle="10" maxWait="10000"
                   username="SCOTT" password="tiger"
                   driverClassName="oracle.jdbc.driver.OracleDriver"
                   url="jdbc:oracle:thin:@localhost:1521/XE" />
注:このチュートリアルを既に実行しており、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>pubs</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    </web-app>
JSP アプリケーションの実行
Oracle に関する変更は不要です。「JSP アプリケーションの実行」のトピックに記載されている手順に従います。