JasperReports Server で DB2 のレポートを作成

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData JDBC Driver をJasperReports Server にデプロイして、レポートや組み込み分析などから DB2 データにリアルタイムでアクセスできます。

CData JDBC Driver for DB2 を使用すると、企業全体で DB2 のデータ へのアクセスを提供できます。この記事では、JasperReports Server にドライバーをデプロイし、DB2 のデータ のビジネスビューであるレポートドメインに基づいたシンプルなレポートを作成する方法を説明します。

ドライバー JAR のデプロイ

以下の手順に従って、JasperReports Server にドライバー JAR をデプロイします。この手順は DB2 と JasperReports Server にバンドルされている Tomcat サーバーに固有のものです。Tomcat ではなく JBoss AS 7 を使用している場合は、標準的なプロセスに従って JBoss への DB2 JDBC Driver のデプロイを行ってください。

  1. インストールディレクトリの lib サブフォルダにあるドライバー JAR と .lic ファイルを、JasperReports Server インストールディレクトリ内の apache-tomcat フォルダの lib サブフォルダにコピーします。
  2. apache-tomcat -> webapps -> jasperserver-pro -> META-INF に移動し、以下のリソースエントリを context.xml ファイルに追加します。

    
    <Resource name="jdbc/db2"   auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.db2.DB2Driver"  url="jdbc:db2:Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=test;" maxActive="20" maxIdle="10" maxWait="-1" factory="com.jaspersoft.jasperserver.tomcat.jndi.JSCommonsBasicDataSourceFactory"/>
    

    JDBC URL(url 属性)に必要な接続プロパティを指定します。

    DB2 に接続するには以下のプロパティを設定します。

    • Server: DB2 を実行するサーバー名。
    • Port: DB2 サーバーのポート。
    • Database: DB2 データベース名。

    接続の準備ができたら、認証スキームを選択し、以下で説明するように適切なプロパティを設定します。

    CData 製品 は、DB2 への認証に4つの異なるスキームをサポートします。DB2 ユーザー資格情報(デフォルト)、暗号化されたユーザー資格情報、IBM Identity and Access Management(IAM)認証、および Kerberos です。

    DB2 ユーザー資格情報

    ユーザー資格情報を使用して認証するには、次のプロパティを設定します。
    • AuthSchemeUSRIDPWD
    • User:データベースへのアクセス権を持つユーザーのユーザー名。
    • Password:データベースへのアクセス権を持つユーザーのパスワード。

    暗号化されたユーザー資格情報

    サーバーがセキュア認証に対応しており、暗号化されたユーザー資格情報を使用して認証を行いたい場合は、このプロパティを設定します。
    • AuthSchemeEUSRIDPWD

    IAM、Kerberos で認証したい場合は、ヘルプドキュメントの「はじめに」セクションを参照してください。

    パスワード方式によるSSH 接続

    パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。

    • User: DB2 のユーザ
    • Password: DB2 のパスワード
    • Database: DB2 の接続先データベース
    • Server: DB2 のサーバー
    • Port: DB2 のポート
    • UserSSH: "true"
    • SSHAuthMode: "Password"
    • SSHPort: SSH のポート
    • SSHServer: SSH サーバー
    • SSHUser: SSH ユーザー
    • SSHPassword: SSH パスワード

    接続文字列形式では以下のようになります。

    Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=testUseSSH=true;SSHAuthMode=Password;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;

    公開鍵認証方式方式によるSSH 接続

    公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。

    • User: DB2 のユーザ
    • Password: DB2 のパスワード
    • Database: DB2 の接続先データベース
    • Server: DB2 のサーバー
    • Port: DB2 のポート
    • UserSSH: "true"
    • SSHAuthMode: "Public_Key"
    • SSHClientCertType: キーストアの種類
    • SSHPort: SSH のポート
    • SSHServer: SSH サーバー
    • SSHUser: SSH ユーザー
    • SSHClientCert: 秘密鍵ファイルのパス

    接続文字列形式では以下のようになります。

    Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=test;UseSSH=true;SSHAuthMode=Public_Key;SSHClientCertType=PUBLIC_KEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;

    組み込みの接続文字列デザイナー

    JDBC URL の構築には、DB2 JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行します。

    java -jar cdata.jdbc.db2.jar
    

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションを設計する際のパフォーマンス向上に役立ちます。

  3. jasperserver-pro -> WEB-INF に移動し、以下の参照を web.xml ファイルに追加します。
    
      DB2 のデータ JSP
      jdbc/db2
      javax.sql.DataSource
      Container
    
    
  4. サーバーを再起動します。

DB2 JDBC データソースの作成

以下の手順に従って、DB2 JDBC Driver を JDBC データソースにマッピングします。

  1. JasperReports Server にログインし、Create -> Data Source をクリックします。
  2. Type メニューで、JNDI Data Source を選択します。
  3. Service Name ボックスに、web.xml ファイルのリソース定義で指定した JNDI ルックアップを入力します。この例では、ルックアップは「jdbc/db2」です。
  4. Save をクリックしてデータソースを作成します。

ドメインの作成

ドメインは、レポート作成者に関連するビジネスビューを提供するメタデータおよびアクセス制御レイヤーです。以下の手順に従って、DB2 のカラムを選択し、フィルタを適用し、SQL を実行してドメインを作成します。

  1. Create -> Domain をクリックします。ドメインの ID を入力し、保存場所を選択します。
  2. Data Source セクションで Browse をクリックし、作成した DB2 データソースを選択します。
  3. Domain Design セクションで、Create with Domain Designer をクリックします。
  4. テーブルが含まれるスキーマを選択します。
  5. Tables タブで、Data Source ペインからテーブルを選択し、矢印をクリックして Selected Tables ペインに追加します。
  6. Derived Tables タブでは、SQL クエリに基づいてドメインを定義できます。例えば、
      SELECT Orders.Freight, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId=Orders.CustomerId
      
  7. Joins タブでは、結合条件を構築するカラムを選択し、結合タイプを選択することでテーブルを結合できます。
  8. Pre-Filters タブでは、カラムをドラッグ&ドロップして、ドメインを通じて公開されるデータをフィルタする検索条件を定義します。
  9. Display タブで、ユーザーに提示されるデータセットに DB2 データを選択します。
  10. OK をクリックして変更を確定し、Submit をクリックしてドメインを作成します。

リアルタイムでデータを探索

ドメインを作成したら、データに接続する準備が整います。以下の手順に従って、Ad Hoc Editor で Ad Hoc ビューを作成します。

  1. Create -> Ad Hoc View をクリックします。
  2. 表示されるダイアログで、作成した DB2 ドメインを選択します。
  3. Choose Data ページで、ビューで使用するカラムを選択します。Pre-Filters セクションでは、選択したフィールドに基づいてフィルタを作成できます。Display セクションでは、ドメインで表示されるカラム情報を変更できます。
  4. ウィザードが完了したら、ビュータイプを選択し、ビューにカラムを追加します。JasperSoft はドライバーのメタデータを使用して、データ型に基づいて利用可能なディメンションとメジャーを検出します。ディメンションとメジャーを Columns ボックスと Rows ボックスにドラッグします。メジャーを右クリックして集計計算を変更できます。Filters セクションで Columns スライダーを目的のデータレベルにドラッグします。
  5. ビューの設計中にデータの更新にアクセスするには、設計モードのツールバーでメニュー選択を Sample Data から Full Data に変更します。変更を行うと、JasperSoft Server はドライバーに対して基になる SQL クエリを実行します。
  6. ビューを保存します。

リアルタイムレポートの作成

これで、JasperSoft Server でホストされるレポートを作成できます。Ad Hoc Editor から作成するには、Save Ad Hoc View をクリックし、Create Report をクリックします。

はじめる準備はできましたか?

IBM DB2 Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

IBM DB2 Icon IBM DB2 JDBC Driver お問い合わせ

IBM DB2 連携のパワフルなJava アプリケーションを素早く作成して配布。