• 検索結果がありません。

サンプルアプリケーション

ドキュメント内 アプリケーション開発ガイド (JDBCドライバ編) (ページ 195-200)

第5章 アプリケーションのコンパイルおよび実行

B.4 サンプルアプリケーション

サンプルアプリケーションを以下に示します。

ここでは、データベースのデータを参照するプログラム例を説明します。

データベースへの接続形態には、リモートアクセス(RDB2_TCP連携)を使用しています。

// 以下のパッケージをインポートします。

import java.sql.*;

// クラスを定義します。

public class MyURLAccess {

public static void main(String args[]) {

try {

// JDBCドライバを指定します。

Class.forName("com.fujitsu.symfoware.jdbc.SYMDriver");

// データベースと接続します。

Connection con =

DriverManager.getConnection("jdbc:symford://myhost:26551/COMPANY", "UID", "PWD");

// 自動コミットモードの無効化 con.setAutoCommit(false);

// Statementインタフェースのオブジェクトを生成します。

Statement stmt = con.createStatement();

// SQL文を実行し、ResultSetの // オブジェクトを生成します。

ResultSet rs = stmt.executeQuery("SELECT ID,NAME FROM GENERAL.EMPLOYEE");

int iID = 0;

String sName = null;

while(rs.next()) {

// ResultSetの列に対応する // データを取得します。

iID = rs.getInt(1);

sName = rs.getString(2);

// 取得した情報を表示します。

System.out.println("ID = " + iID);

System.out.println("NAME = " + sName);

}

// ResultSetのオブジェクトをクローズします。

rs.close();

// Statementのオブジェクトをクローズします。

stmt.close();

// Connectionのオブジェクトをクローズします。

con.close();

}

// SQLExceptionが発生した場合の処理を記述します。

catch (SQLException e)

{

// エラー情報を出力します。

System.out.println("ERROR MESSAGE : " + e.getMessage());

System.out.println("SQLSTATE : " + e.getSQLState());

System.out.println("ERROR CODE : " + e.getErrorCode());

e.printStackTrace();

}

// その他のExceptionが発生した場合の処理を記述します。

catch (Exception e) {

// スタックトレースを出力します。

System.out.println("ERROR MESSAGE : " + e.getMessage());

e.printStackTrace();

} } }

付録 C 異常時の対処

JDBCドライバ利用時に、異常が発生した際の対処方法について説明します。

なお、ここに記載されていない異常が発生した場合は、“付録E メッセージリファレンス”または“5.4 アプリケーションのデ バッグ”を参照し、対処を行ってください。

"LDWrapperクラスがローカルデータベースアクセスをロードしていません"のエラーが返却された場合

・ JDBCドライバが正しくインストールされているかを確認してください。

・ JDBCドライバの環境設定に誤りがある可能性があります。“5.3 アプリケーションの実行”を参照し、環境設定を見直

してください。

注意

ServletやJSPで環境設定を変更した場合、変更した値を有効にするために、使用しているServletコンテナを再起動

してください。

・ アプリケーションサーバ上に、以下のどちらかの製品が正しくインストールされていることを確認してください。

- Symfoware Server クライアント機能

- Symfoware Server

"データ受信中にサーバとの通信が切断されました"のエラーが返却された場合

・ 指定されたポート番号に誤りがある可能性があります。ポート番号が正しいかどうか、確認してください。

"コネクションの失敗: I/Oエラーが発生しました"のエラーが返却された場合

・ 指定されたホスト名、ポート番号およびデータ資源名が正しいか確認してください。

・ Symfoware Serverが起動されているかを確認してください。

"

同時に使用できるコネクション数の最大値を超えました

"

のエラーが返却された場合

・ JDBCドライバが同時に使用できるコネクション数の最大値を超えたため、コネクションをクローズするか、JDBCデー

タソースオプション設定画面で最大コネクション数の値を増やしてください。

必要に応じてSymfoware Serverの最大コネクション数も変更してください。

"コネクション違反 - SQLクライアントがSQLコネクションを獲得できませんでした"のエラーが返却された場合

・ JDBCドライバでタイムアウトが発生した可能性があります。

JDBCデータソースオプション設定画面のサーバ待ち時間の値を見直し,適切な値を設定してください。0を指定した 場合は、待ち時間の監視を行いません。

・ Symfoware Serverが正しく動作しているかを再度確認してください。

"JYP1059E 不当なプロトコルが転送されました."のエラーが返却された場合

・ 指定されたポート番号に誤りがある可能性があります。ポート番号が正しいかどうか、確認してください。

"java.sql.SQLException: No suitable driver "のエラーが返却された場合

・ DriverManager.getConnectionメソッドの引数に指定するURLの記述形式が正しいか確認してください。

・ Class.forNameメソッドの引数に指定するJDBCドライバ名が正しいか確認してください。

"java.lang.NoClassDefFoundError"のエラーが返却された場合

・ JDBCドライバの環境設定に誤りがある可能性があります。“5.3 アプリケーションの実行”を参照し、環境設定を見直 してください。

"java.lang.OutOfMemoryError"のエラーが返却された場合

・ メモリ不足が発生しました。

Javaでは、不要になったメモリの解放はガーベジコレクションで行われます。しかし、ガーベジコレクションは、使われ なくなったオブジェクトが使用しているメモリを解放するだけです。アプリケーションが必要なメモリの解放としては、十 分ではありません。 そのため、アプリケーションがメモリ不足になる場合があります。

メモリ不足が発生した場合は、以下の対処を行ってください。

- Java実行環境のヒープサイズを拡張する。

- System.gcメソッドを使い、強制的にメモリの解放を行う。

ただし、System.gcメソッドは実行性能に影響します。

呼び出しのタイミングなどを十分に検討した上で使用してください。

[Java実行環境のヒープサイズ拡張例]

初期サイズを64MByte、最大サイズを128MByteに設定します。

java -Xms64m -Xmx128m <class Name>

"java.lang.IncompatibleClassChangeError"のエラーが返却された場合

・ 現在有効になっているJDKのバージョンが、1.1.*になっている可能性があります。以下のコマンドを使用して、有効 になっているJDKのバージョンを確認してください。

java -version

JDK1.1.*を使用している場合、JDKの環境設定(環境変数“PATH”)を見直し、再度確認してください。

"java.lang.UnsupportedClassVersionError"のエラーが返却された場合

・ 現在有効になっているJDKのバージョンとJDBCドライバとの組合せに問題がある可能性があります。

以下のコマンドを使用して、有効になっているJDKのバージョンを確認し、JDBCドライバモジュールがそのバージョ ンをサポートしているかを確認していください。

java -version

JDBCドライバとJDKとの組合せについては、“1.4 JDKとの組合せ”を参照してください。

・ 利用するJDBCドライバの環境設定に誤りがある可能性があります。“5.3 アプリケーションの実行”を参照し、環境設 定を見直してください。

付録 D 使用可能 SQL 文一覧

JDBCドライバを使用したアプリケーションで指定可能なSQL文について説明します。

以下のインタフェースのパラメタで指定可能なSQL文について説明します。

・ CallableStatementインタフェース

・ PreparedStatementインタフェース

・ Statementインタフェース CallableStatementインタフェース

分類 SQL文

ストアドプロシジャ CALL文

PreparedStatementインタフェース

分類 SQL文

スキーマ定義文 CREATE SCHEMA文 (注1) (スキーマ定義)

CREATE TABLE文 (注1) (注2) (表定義)

CREATE VIEW文 (ビュー定義)

CREATE PROCEDURE文 (プロシジャルーチン定義) CREATE FUNCTION文 (ファンクションルーチン定義) CREATE INDEX文 (注1) (注2) (インデックス定義)

CREATE TRIGGER文 (トリガ定義)

CREATE SEQUENCE文 (順序定義)

スキーマ操作文 DROP SCHEMA文 (スキーマ削除文) DROP TABLE文 (表削除文) ALTER TABLE文 (表定義変更文) DROP VIEW文 (ビュー削除文) DROP PROCEDURE文 (プロシジャルーチン削除文) DROP INDEX文

(インデックス削除文) DROP TRIGGER文 (トリガ削除文)

ドキュメント内 アプリケーション開発ガイド (JDBCドライバ編) (ページ 195-200)