jp.co.sei.is.lib21.sub
クラス SeiDataSource

java.lang.Object
  上位を拡張 jp.co.sei.is.lib21.SeiObject
      上位を拡張 jp.co.sei.is.lib21.sub.SeiDataSource

public class SeiDataSource
extends SeiObject

[内部部品] データソース。

概要

定義されたデータソースの情報を管理します。 データソースとは、データベース(以下 DB)に接続するための情報です。 具体的には RDBMS(Relational DataBase Management System)の種類や、 DB に接続するための URL やユーザ ID、パスワード等です。 これらの情報は、データソースを一意に特定するための名前を付けて管理されます。

データソースは、アプリケーション毎のディレクトリ以下の "SeiDataSource.xml" という XML ファイルに定義します。 記述方法は以下の通りです。

        <?xml version="1.0" encoding="Shift_JIS"?>
        <SeiDataSource>
        <JDBCDriver Name="RDMBS名">JDBC ドライバクラス名</JDBCDriver>
        :
        :
        
        <DataSouce Name="データソース名">
            データソースの情報
        </DataSource>
        :
        :
        </SeiDataSource>

JDBCDriver 要素は、楽々FrameworkII が対応している RDBMS であれば記述不要です。 接続先 DB に対応した JDBC ドライバが読み込まれない場合は、JDBCDriver 要素を指定して下さい。

データソースのファイルは以下の順で検索します。

  1. SeiDataSource_ホスト名_起動ユーザー.xml
  2. SeiDataSource_ホスト名.xml
  3. SeiDataSource.xml

バックアップを作成する場合は、意図せず読み込まれないように、ファイル名の付け方に注意して下さい。 なお、アプリケーションのディレクトリ直下にバックアップファイルを作成すると、 動作上の問題が発生するだけでなく、保守性も低下しますので、 「conf-backup」のようなディレクトリを作成することをお勧めします。

データソース

データソースの情報には以下のタグを記述できます。 タグ名の括弧の中の文字列は省略表記または別名です。 タグ名の大文字、小文字は区別しません(開始タグと終了タグは同じ表記にして下さい)。

URL [必須] DB に JDBC 接続するための URL。 URL の記述方法は RDBMS によって異なりますが、 jdbc:rdbms名:DB 名 のような形式です。
User [必須] DB に接続するためのユーザ。
Password(Passwd) [必須] DB に接続するためのパスワード。
RDBMS RDBMS の種類。 通常は URL に設定された URL から自動判別します。 サポートしている RDBMS は別途記載します。
Title データソースのタイトル。 データソースを一言で表すような文字列を記述して下さい。 (例)受注 DB(本番)
Author(Auth) データソースの作成者。
Date データソースの作成日。 日付の形式は、デフォルトの言語区分に合わせて下さい。 日本語の場合は yyyyy-MM-dd です。
Remarks データソースの備考。 データソースの内容について詳しく記述して下さい。 何を記述しても動作には一切影響を与えません。
Server Dr.Sum(ウイングアーク テクノロジーズ株式会社)を利用する場合のサーバ名。 Dr.Sum を利用する場合は、URL の代わりに Server を設定します。 ポート番号をデフォルト(5001 番)から変更する場合は、 サーバ名:ポート番号 の形式で記述して下さい。
IsoLevel 分離レベル。 JDBC の分離レベルを設定します。 java.sql.Connection クラスに定義された定数値を記述するか、 以下の文字列を指定することができます。
READ_UNCOMMITTED
読み取り未コミット (コミットされていない読み取り)
READ_COMMITTED
読み取りコミット済み (カーソル固定、デフォルト)
REPEATABLE_READ
反復可能読み取り (読み取り固定)
SERIALIZABLE
逐次化可能 (反復可能読み取り)
AutoCommit 自動コミットモード。 このパラメータに true を設定すると、自動コミットするようになります。 DB 処理の途中で失敗した場合にロールバックできなくなるので、 通常は設定しないか false を設定して下さい。
CodeSet(CodePage, Encoding) DB の文字エンコード名。 デフォルトではユーザの言語区分に対応した文字エンコード名を指定します。 UTF-8 等、ユーザの言語区分とは別のエンコードを使用する場合に指定して下さい。 DB に登録する前のバイト数チェックに使用します。
Timeout タイムアウト時間。 SQL の結果が返るまでの待ち時間です。 デフォルトは無制限に待ちます。 数値のみを記述した場合の単位は秒で、 SeiType.toTime(int,String) メソッドの単位を使用できます ("10m" と記述すれば 10 分間)。 DB が Oracle の場合、このパラメータを指定すると不具合が発生する可能性があります。
MaxUseTime(MaxUse) コネクションの最大貸し出し時間。 コネクションを長時間使用し続けた場合、自動的に回収されるまでの時間です。 デフォルトは 10 分間です。 Timeout と同様の単位を使用可能です。 指定した時間以上使用したい場合は(大量のバッチ処理等)、 SeiConn.notifyContinue() メソッドを定期的に実行することで、 コネクションを回収されるまでの時間を延長することができます。
InitCon 初期コネクションプールサイズ。 最初にデータソースを利用したときにプールするコネクションの個数です。 デフォルトは 2 個です。 この値を大きくすることで、大量の同時アクセスに備えることができます。 但し、MaxCon(後述)より小さくして下さい。
MaxCon(MaxCons) 最大コネクションプールサイズ。 コネクションプールに入れることができる最大個数です。 デフォルトは 50 個です。 大量の同時アクセスがあった場合、このパラメータに設定した個数以上は接続できません。 接続できなかった場合、サーブレットの変数 g_checkDB を false に設定しない限り、 アプリケーションの画面は表示されずに「データベースに接続できません」のエラー画面になります。 このパラメータの設定値を大きくする場合は、DB 側に設定された最大接続数を超えないよう注意して下さい。
RetryCount コネクションプールが最大数に達した場合の待ち回数。 デフォルトは 3 回です。 コネクションプールが最大数に達した場合は、エラー画面を表示する前に一定回数再試行します。 再試行の回数を変更する場合に指定して下さい。 試行待ち中に別のユーザからアクセスがあった場合、 コネクションに空きがあれば後から来たユーザに割り当てられます。 また、再試行中はブラウザに何も送信されないため、 あまり回数を大きくするとブラウザがタイムアウトする可能性があります。
RetryInterval 再試行するまでの待ち時間。 デフォルトは 1 秒です。 Timeout と同様の単位を使用可能です。
DBID コードサーバを利用する場合にデータベースを識別するための ID。 コードサーバを利用する場合は必須です。 データベースをアプリケーション間で共有しない場合は、 アプリケーション名を指定して下さい。
DriverPath JDBC ドライバをロードするパスを指定します。 接続先データベースが同じ種類で異なるバージョンの場合、 同じバージョンの JDBC ドライバでは接続できない可能性があります。 その場合は、JDBC ドライバのアーカイブ(jar/zip)をアプリケーションのディレクトリにそれぞれコピーして、 データソース単位で DriverPath にアーカーブのパスを記述して下さい。 アプリケーションのディレクトリからの相対パスまたは絶対パスで記述して下さい。
DriverClass JDBC ドライバのクラス名。 指定しない場合は、RDBMS に対するデフォルトの JDBC ドライバが使用されます。
Property JDBCドライバーのプロパティ。Name属性にプロパティ名を指定します。
UsePrepare PreparedStatement を使用するかどうかを設定します。 デフォルトでは使用します。 このフラグに false を設定すると、楽々Framework II の内部では PreparedStatement を使用しなくなります。 アプリケーション側で SQL を作成する場合にも PreparedStatement を使用しないようにして下さい。 使用すると問題が発生する場合があります。 文字列中の「 ' 」をエスケープする処理を必ず実装するようにして下さい。
LogDir このパラメータは現在使用されておりません。

JDBC ドライバ

サポートしている RDBMS に対する JDBC ドライバは内部で自動的にロードします。 ロードする JDBC ドライバ名は ConMgr のトレースを採ることで確認できます。 期待する JDBC ドライバがロードされない場合は、 JDBCDriver 要素で明示的に指定して下さい。 JDBCDriver 要素の Name 属性は、データソースの RDBMS 要素と同じにして下さい。 同じ Name 属性を持つ JDBCDriver を複数記述しても構いません。

DB2 Type2 に対しては、レガシードライバ(COM.ibm.db2.jdbc.app.DB2Driver)をロードします。 Type2 でユニバーサルドライバ(com.ibm.db2.jcc.DB2Driver)を利用する場合は、JDBCDriver を指定して下さい。

記述例

SeiDataSource.xml ファイルの記述例を以下に示します。

        <?xml version="1.0" encoding="Shift_JIS"?>
        <SeiDataSource>

        <DataSource Name="demo20">
            <Title>デモシステム</Title>
            <RDBMS>DB2</RDBMS>
            <URL>jdbc:db2:testdb</URL>
            <User>demo20</User>
            <Passwd>pwd20</Passwd>
            <Timeout>10</Timeout>
            <Auth>Taro Sumitomo</Auth>
            <Date>2002-02-01</Date>
            <Remarks>サンプル・アプリケーション</Remarks>
        </DataSource>

        </SeiDataSource>

いくつかのデータベースに対するデータソースの記述例を以下に示します。 RDBMS の種類は URL から自動判定するため、通常は省略できます。

DB2(Type2)
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>DB2 Type2</TITLE>
            <URL>jdbc:db2:DB_NAME</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
DB2(Type4)
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>DB2 Type4</TITLE>
            <URL>jdbc:db2://hostname.domain:50000/DB_NAME</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
Oracle
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>Oracle</TITLE>
            <URL>jdbc:oracle:thin:@hostname.domain:1521:SID</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
PostgreSQL
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>PostgreSQL</TITLE>
            <URL>jdbc:postgresql://hostname.domain:5432/DB_NAME</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
MySQL
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>MySQL</TITLE>
            <URL>jdbc:mysql://hostname.domain:3306/DB_NAME</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
Microsoft SQL Server 2003 以前
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>MS SqlServer 2003</TITLE>
            <URL>jdbc:microsoft:sqlserver://hostname.domain:1433;DatabaseName=DB_NAME;SelectMethod=Cursor</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
Microsoft SQL Server 2005
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>MS SqlServer 2005</TITLE>
            <URL>jdbc:sqlserver://hostname.domain:1433;DatabaseName=DB_NAME;SelectMethod=Cursor</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>
AS400
        <DataSource Name="DATASOURCE_NAME">
            <TITLE>System I5</TITLE>
            <URL>jdbc:as400://hostname.domain/DB_NAME;date format=iso;cursor hold=false</URL>
            <USER>user</USER>
            <PASSWORD>password</PASSWORD>
        </DataSource>

関連項目:
SeiConMgr, SeiConn

フィールドの概要
static java.lang.String CONF_CMPT_UnicodeSizeCheck
          CodeSet が Unicode の文字長チェックの互換性。
static java.lang.String CONF_DataSouce_CacheFactory
          Factory から取得したデータソースをキャッシュするフラグ。
static java.lang.String CONF_DataSouce_Factory
          データソースを取得するクラス。
static java.lang.String CONF_DataSource_DebugReload
          データソースがリロードされたときにデバッグログに出力するかのフラグ。
static java.lang.String CONF_DataSourceName
          アプリケーションで使用するデータソース名。
protected  java.lang.String g_application
          アプリケーション名。
protected  java.lang.String g_author
          データソースの作成者
protected  java.lang.String g_codeset
          DB のコードセット
protected  java.lang.String g_date
          作成日
protected  java.lang.String g_dbid
          データベースを識別する ID。
protected  java.lang.String g_driverClass
          JDBC ドライバのクラス名。
protected  java.lang.String g_driverPath
          JDBC ドライバをロードするためのパス。
protected  int g_initcon
          初期コネクション数。
protected  int g_isolevel
          トランザクションアイソレーションレベル。
protected  java.lang.String g_logdir
          ログの出力先(未実装)
protected  int g_maxcon
          最大コネクション数。
protected  int g_maxusetime
          最大利用可能時間[ms]。
protected  java.lang.String g_passwd
          接続時のパスワード
protected  java.lang.String g_rdbms
          RDBMSの種類
protected  java.lang.String g_rdbms2
          RDBMSの種類(先頭3文字、大文字)
protected  java.lang.String g_remarks
          備考
protected  int g_retryCount
          リトライ回数。
protected  int g_retryInterval
          リトライ間隔。
protected  java.lang.String g_server
          DrSum サーバーのホスト名
protected  int g_timeout
          SQL のタイムアウト時間[ms]。
protected  java.lang.String g_title
          タイトル
protected  java.lang.String g_url
          コネクションの接続先
protected  boolean g_usePrepare
          PreparedStatement を使用するかどうかのフラグ。
protected  java.lang.String g_user
          接続時のユーザ名
 
クラス jp.co.sei.is.lib21.SeiObject から継承されたフィールド
g_class, g_class2, g_debug, g_deflang, g_lang, g_package, g_ssp
 
コンストラクタの概要
protected SeiDataSource(java.lang.String x_name)
          データソースを作成します。
  SeiDataSource(java.lang.String x_name, java.lang.String x_url, java.lang.String x_user, java.lang.String x_passwd)
          データソースを新規作成します。
  SeiDataSource(java.lang.String x_name, java.lang.String x_url, java.lang.String x_server, java.lang.String x_user, java.lang.String x_passwd)
          データソースを新規作成します。
 
メソッドの概要
static boolean add(SeiServletParam x_ssp, java.lang.String x_dsname, iSeiValue x_ds)
          データソースを追加します。
 void afterConnect(SeiConn x_con, java.sql.Connection x_con2)
          DB 接続時に呼び出されます。
static SeiDataSource create(SeiServletParam x_ssp, java.lang.String x_dsname, iSeiValue x_ds)
          新しいデータソースを作成します。
static java.lang.String decodePassword(SeiServletParam x_ssp, java.lang.String x_passwd)
          パスワードを復号化します。
static boolean delete(SeiServletParam x_ssp, java.lang.String x_dsname)
          データソースを削除します。
static java.lang.String encodePassword(SeiServletParam x_ssp, java.lang.String x_passwd)
          パスワードを暗号化します。
 java.lang.String getApplication()
          アプリケーション名を取得します。
 java.lang.String getAuthor()
          データソースの作成者(AUTHOR)を取得します。
 boolean getAutoCommit()
          自動コミットモードを取得します。
 java.lang.String getCodeset()
          コードセットを取得します。
 java.lang.String getConnectURL(java.lang.String x_application, java.lang.String x_url)
          JDBC の接続 URL を取得します。
static SeiDataSource getDataSource(java.lang.String x_dsname)
          推奨されていません。 以前のバージョンとの互換性のために残しています。 共通のデータソースのみを取得できます。 アプリケーション毎に設定したデータソースを取得するときは、 getInstance(SeiServletParam,String)を使用して下さい。
 java.lang.String getDate()
          データソースの作成日(DATE)を取得します。
 java.lang.String getDBID()
          データベースの識別名を取得します。
 java.lang.String getDriverClass()
          JDBC ドライバのクラス名を取得します。
 java.lang.String getDriverPath()
          JDBC ドライバをロードするためのパスを取得します。
 boolean getExecCommit()
          コミットを実行するかどうかを取得します。
 int getInitCon()
          初期コネクション数(INITCONS)を取得します。
static SeiDataSource getInstance(SeiServletParam x_ssp, java.lang.String x_dsname)
          データソース名を指定してインスタンスを取得します。
static SeiDataSource getInstance(java.lang.String x_dsname)
          推奨されていません。 データソース名を指定してインスタンスを取得します。 共通のデータソースのみを取得できます。 アプリケーション毎に設定したデータソースを取得するときは、 getInstance(SeiServletParam,String)を使用してください。
 int getIsoLevel()
          トランザクションアイソレーションレベル(ISOLEVEL, 分離レベル)を取得します。
 java.lang.String getIsoLevelString()
          分離レベルの文字列を取得します。
static java.lang.String[][] getJdbcDrivers()
          データソース定義ファイルに記述されているJDBCドライバ一覧を取得します。
 java.lang.String getLogDir()
          エラーログの出力先ディレクトリ(LOGDIR)を取得します。
 int getMaxCon()
          同時最大コネクション数(MAXCONS)を取得します。
 int getMaxUseTime()
          最大貸し出し時間(MAXUSETIME)を取得します。
 java.lang.String getName()
          データソース名(NAME 属性)を取得します。
 java.lang.String getPassword()
          データベースのパスワード(PASSWORD)を取得します。
 java.util.Properties getProperties()
          JDBCドライバのプロパティ一覧を取得します。
 java.lang.String getRdbms()
          データベースの種類(RDBMS)を取得します。
 java.lang.String getRdbms2()
          RDBMSの種類の先頭3文字を大文字で取得します。
protected static java.lang.String getRdbmsByURL(java.lang.String x_url)
          URLの文字列からRDBMSを自動判定します。
 java.lang.String getRemarks()
          データソースの備考(REMARKS)を取得します。
 int getRetryCount()
          全コネクション使用時のリトライ回数(RETRYCOUNT)を取得します。
 int getRetryInterval()
          全コネクション使用時のリトライ間隔(RETRYINTERVAL)を取得します。
 java.lang.String getServer()
          データベースサーバーの URL を取得します。
 int getTimeout()
          SQLのタイムアウト時間(ミリ秒)(TIMEOUT)を取得します。
 java.lang.String getTitle()
          データソースの見出し(TITLE)を取得します。
 java.lang.String getURL()
          JDBCのURL(URL)を取得します。
 boolean getUsePrepare()
          PreparedStatement を使用するかどうかを取得します。
 java.lang.String getUser()
          データベースのユーザ(USER)を取得します。
 boolean isDefaultCodeSet()
          コードセットがデフォルトのままかどうかを取得します。
 boolean isDefaultInitCon()
          初期接続数がデフォルトのままかどうかを取得します。
 boolean isDefaultMaxCon()
          最大接続数がデフォルトのままかどうかを取得します。
 boolean isDefaultMaxUse()
          最大接続時間がデフォルトのままかどうかを取得します。
 boolean isDefaultRetryCount()
          リトライ回数がデフォルトのままかどうかを取得します。
 boolean isDefaultRetryInterval()
          リトライ間隔がデフォルトのままかどうかを取得します。
 boolean isManaged()
          ライブラリが管理するデータソースかどうかを取得します。
 boolean isValid(SeiServletParam x_ssp)
          コネクションを使用可能かどうかを取得します。
static java.util.Enumeration list(SeiServletParam x_ssp)
          データソース定義ファイルに定義されているデータソースの一覧を取得します。
 SeiConn newConnection(int x_no)
          コネクションを作成します。
static void refresh(SeiServletParam x_ssp)
          全てのデータソースを再読み込みします。
static void refresh(SeiServletParam x_ssp, java.lang.String x_dsname)
          指定したデータソースを再読み込みします。
static void refresh(java.lang.String x_application)
          全てのデータソースを再読み込みします。
static void refresh2(SeiServletParam x_ssp, java.lang.String x_dsname)
          指定したデータソースを再読み込みします。
 void setMaxCon(int x_maxcon)
          最大接続数を設定します。
 void setMaxUseTime(int x_maxuse)
          最大接続時間を設定します。
 void setQueryTimeout(SeiConn x_con, java.sql.Statement x_stmt, int x_timeout)
          照会 SQL の最大待ち時間(タイムアウト)を設定します。
protected  void setRdbms(java.lang.String x_rdbms)
          データベースの種類(RDBMS)を設定します。
 void setRemarks(java.lang.String x_remarks)
          データソースの備考を設定します。
 void setRetryCount(int x_retryCount)
          リトライ回数を設定します。
 void setRetryInterval(int x_retryInterval)
          リトライ間隔を設定します。
 void setTimeout(int x_timeout)
          タイムアウト時間を設定します。
 void setTitle(java.lang.String x_title)
          データソースのタイトルを設定します。
 void setUsePrepare(boolean x_usePrepare)
          PreparedStatement を使用するかどうか設定します。
static boolean update(SeiServletParam x_ssp, java.lang.String x_dsname, iSeiValue x_ds)
          データソースを更新します。
 
クラス jp.co.sei.is.lib21.SeiObject から継承されたメソッド
createPmsTable, error, error, error, getAryMessage, getMsg, getPmsMessage, isDebug, isDebug, setSSP
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CONF_DataSourceName

public static final java.lang.String CONF_DataSourceName
アプリケーションで使用するデータソース名。 デフォルトは "アプリケーション名" です。

アプリケーションで主に使用するデータソース名を指定します。 データソースは、SeiDataSource.xml に定義して下さい。 このパラメータに設定したデータソースが SeiServletParam にセットされます。 SeiSql を使用してレコードを取得する場合や、 PmsTable でデータを登録する場合等に、 接続先を指定しなければこのパラメータのデータソースが使用されます。

関連項目:
定数フィールド値

CONF_DataSouce_Factory

public static final java.lang.String CONF_DataSouce_Factory
データソースを取得するクラス。 デフォルトは "なし" です。

関連項目:
定数フィールド値

CONF_DataSouce_CacheFactory

public static final java.lang.String CONF_DataSouce_CacheFactory
Factory から取得したデータソースをキャッシュするフラグ。 デフォルトは "false" です。

関連項目:
定数フィールド値

CONF_DataSource_DebugReload

public static final java.lang.String CONF_DataSource_DebugReload
データソースがリロードされたときにデバッグログに出力するかのフラグ。 デフォルトは "false" です。 このパラメータに true を設定すると、データソースがリロードされたときにデバッグログを出力します。 出力先は、log/debug/DataSource ディレクトリです。 出力される情報は以下の通りです。

導入されたバージョン:
RakFWII V5.0
関連項目:
定数フィールド値

CONF_CMPT_UnicodeSizeCheck

public static final java.lang.String CONF_CMPT_UnicodeSizeCheck
CodeSet が Unicode の文字長チェックの互換性。 デフォルトは "false" です。 CodeSet に「Unicode」を指定した場合、データ長をバイト数ではなく文字数で計算するようになりました。 PostgreSQL の VARCHAR は、文字数を指定するようになっており、 バイト数によるチェックではサイズを有効に利用できないことから、 文字数でのチェックができるように、CodeSet の機能を拡張しています。 従来から CodeSet に「Unicode」を指定している場合、このパラメータに true を設定して下さい。 なお、従来の動作で「Unicode」を指定した場合は、バイトオーダーマーク(BOM) が先頭に付加されるため、2 バイト多く計算される動作となります。

導入されたバージョン:
RakfWII V5.0
関連項目:
定数フィールド値

g_application

protected java.lang.String g_application
アプリケーション名。

導入されたバージョン:
RakFWII V2.1

g_title

protected java.lang.String g_title
タイトル


g_rdbms

protected java.lang.String g_rdbms
RDBMSの種類


g_rdbms2

protected java.lang.String g_rdbms2
RDBMSの種類(先頭3文字、大文字)


g_url

protected java.lang.String g_url
コネクションの接続先


g_server

protected java.lang.String g_server
DrSum サーバーのホスト名


g_user

protected java.lang.String g_user
接続時のユーザ名


g_passwd

protected java.lang.String g_passwd
接続時のパスワード


g_logdir

protected java.lang.String g_logdir
ログの出力先(未実装)


g_author

protected java.lang.String g_author
データソースの作成者


g_date

protected java.lang.String g_date
作成日


g_remarks

protected java.lang.String g_remarks
備考


g_isolevel

protected int g_isolevel
トランザクションアイソレーションレベル。 デフォルトは -1(データベースのデフォルトに従う)です。


g_codeset

protected java.lang.String g_codeset
DB のコードセット


g_timeout

protected int g_timeout
SQL のタイムアウト時間[ms]。 デフォルトは無限大。


g_maxusetime

protected int g_maxusetime
最大利用可能時間[ms]。 デフォルト 10 分。


g_initcon

protected int g_initcon
初期コネクション数。 デフォルトは 2 個です。


g_maxcon

protected int g_maxcon
最大コネクション数。 デフォルトは 50 個です。


g_driverPath

protected java.lang.String g_driverPath
JDBC ドライバをロードするためのパス。 jar ファイルまたはディレクトリを指定します。 指定した場合は、データソース毎に異なるドライバをロードできます。 クラス名は DriverClass で指定可能です。

導入されたバージョン:
RakFWII V2.1

g_driverClass

protected java.lang.String g_driverClass
JDBC ドライバのクラス名。

導入されたバージョン:
RakFWII V2.1

g_retryCount

protected int g_retryCount
リトライ回数。 デフォルトは 3 回です。


g_retryInterval

protected int g_retryInterval
リトライ間隔。 デフォルトは 1 秒です。


g_dbid

protected java.lang.String g_dbid
データベースを識別する ID。 コードサーバを利用する場合は必須です。

導入されたバージョン:
RakFWII V2.1

g_usePrepare

protected boolean g_usePrepare
PreparedStatement を使用するかどうかのフラグ。 デフォルトは true です。

コンストラクタの詳細

SeiDataSource

protected SeiDataSource(java.lang.String x_name)
データソースを作成します。 getInstance(String) を使用してインスタンスを取得して下さい。

パラメータ:
x_name - データソース名

SeiDataSource

public SeiDataSource(java.lang.String x_name,
                     java.lang.String x_url,
                     java.lang.String x_user,
                     java.lang.String x_passwd)
データソースを新規作成します。 データソース定義ファイルを解析した結果を取得する場合には、 getInstance(String)を使用して下さい。

パラメータ:
x_name - データソース名
x_url - URL
x_user - DBのユーザ名
x_passwd - DBのパスワード

SeiDataSource

public SeiDataSource(java.lang.String x_name,
                     java.lang.String x_url,
                     java.lang.String x_server,
                     java.lang.String x_user,
                     java.lang.String x_passwd)
データソースを新規作成します。 データソース定義ファイルを解析した結果を取得する場合には、 getInstance(String)を使用して下さい。

パラメータ:
x_name - データソース名
x_url - URL
x_server - DrSum サーバー
x_user - DBのユーザ名
x_passwd - DBのパスワード
メソッドの詳細

setRdbms

protected void setRdbms(java.lang.String x_rdbms)
データベースの種類(RDBMS)を設定します。

パラメータ:
x_rdbms - データベースの種類("DB2", "ORACLE")

create

public static SeiDataSource create(SeiServletParam x_ssp,
                                   java.lang.String x_dsname,
                                   iSeiValue x_ds)
新しいデータソースを作成します。 以下のフィールドの値を設定して下さい。
パラメータ名説明
titleデータソースのタイトル
urlデータソースの URL
user接続ユーザー
passwd接続パスワード
auth作成者
date作成日(設定しない場合は自動で現在日が設定されます)
remarks備考
serverサーバー名
dbidDBID
isolevel分離レベル g_isolevel
autocommit自動コミットモード
codesetDB の文字コード
timeoutタイムアウト時間
maxuse最大接続時間
initcon初期接続数
maxcon最大接続数
retrycountリトライ回数
usepreparePreparedStatement の使用有無

導入されたバージョン:
RakFWII V3.1

getInstance

public static SeiDataSource getInstance(SeiServletParam x_ssp,
                                        java.lang.String x_dsname)
データソース名を指定してインスタンスを取得します。

パラメータ:
x_ssp - SeiServletParam
x_dsname - データソース名
戻り値:
データソースのインスタンス

getInstance

public static SeiDataSource getInstance(java.lang.String x_dsname)
推奨されていません。 データソース名を指定してインスタンスを取得します。 共通のデータソースのみを取得できます。 アプリケーション毎に設定したデータソースを取得するときは、 getInstance(SeiServletParam,String)を使用してください。

パラメータ:
x_dsname - データソース名
戻り値:
データソースのインスタンス

getDataSource

public static SeiDataSource getDataSource(java.lang.String x_dsname)
推奨されていません。 以前のバージョンとの互換性のために残しています。 共通のデータソースのみを取得できます。 アプリケーション毎に設定したデータソースを取得するときは、 getInstance(SeiServletParam,String)を使用して下さい。

パラメータ:
x_dsname - データソース名
戻り値:
データソースのインスタンス

getJdbcDrivers

public static java.lang.String[][] getJdbcDrivers()
データソース定義ファイルに記述されているJDBCドライバ一覧を取得します。
                { { "RDBMS名0", "ドライバクラス名0" }, {"RDBMS名1", "ドライバクラス名1" }, ... }
        

戻り値:
JDBCドライバ一覧

list

public static java.util.Enumeration list(SeiServletParam x_ssp)
データソース定義ファイルに定義されているデータソースの一覧を取得します。 戻り値の Enumeration の要素は SeiDataSource です。 データソース定義ファイルが存在しない場合は null を返します。

パラメータ:
x_ssp - SeiServletParam
戻り値:
データソース定義ファイル

refresh

public static void refresh(SeiServletParam x_ssp)
全てのデータソースを再読み込みします。


refresh

public static void refresh(java.lang.String x_application)
全てのデータソースを再読み込みします。


refresh

public static void refresh(SeiServletParam x_ssp,
                           java.lang.String x_dsname)
指定したデータソースを再読み込みします。


refresh2

public static void refresh2(SeiServletParam x_ssp,
                            java.lang.String x_dsname)
指定したデータソースを再読み込みします。 但し、以下の情報は再読み込みされません。


add

public static boolean add(SeiServletParam x_ssp,
                          java.lang.String x_dsname,
                          iSeiValue x_ds)
データソースを追加します。 引数の x_ds に設定するフィールドについては、 create(SeiServletParam, String, iSeiValue) メソッドを参照して下さい。

データソースを追加するプログラム例を以下に示します。

        SeiValue    p_sv = new SeiValue(g_ssp);
        p_sv.setValue("title", "テスト接続先");
        p_sv.addValue("url", "jdbc:db2:test");
        p_sv.addValue("user", "user01");
        p_sv.addValue("passwd", "passwd01");
        SeiDataSource.add(x_ssp, "test01", p_sv);

パラメータ:
x_ssp - SeiServletParam
x_ds - データソース情報
導入されたバージョン:
RakFWII V3.1

update

public static boolean update(SeiServletParam x_ssp,
                             java.lang.String x_dsname,
                             iSeiValue x_ds)
データソースを更新します。

パラメータ:
x_ssp - SeiServletParam
x_dsname - 更新するデータソース名
x_ds - データソース情報
関連項目:
add(SeiServletParam, String, iSeiValue)

delete

public static boolean delete(SeiServletParam x_ssp,
                             java.lang.String x_dsname)
データソースを削除します。

パラメータ:
x_ssp - SeiServletParam
x_dsname - データソース名

encodePassword

public static java.lang.String encodePassword(SeiServletParam x_ssp,
                                              java.lang.String x_passwd)
パスワードを暗号化します。


decodePassword

public static java.lang.String decodePassword(SeiServletParam x_ssp,
                                              java.lang.String x_passwd)
パスワードを復号化します。


getRdbmsByURL

protected static java.lang.String getRdbmsByURL(java.lang.String x_url)
URLの文字列からRDBMSを自動判定します。 現在、"DB2", "Oracle", "PostgreSQL", "MySQL"に対応しています。

パラメータ:
x_url - データベース接続先のURL
戻り値:
RDBMS

getApplication

public java.lang.String getApplication()
アプリケーション名を取得します。

戻り値:
アプリケーション名
導入されたバージョン:
RakFWII V2.1

getName

public java.lang.String getName()
データソース名(NAME 属性)を取得します。

戻り値:
データソース名

getTitle

public java.lang.String getTitle()
データソースの見出し(TITLE)を取得します。

戻り値:
見出し

getRdbms

public java.lang.String getRdbms()
データベースの種類(RDBMS)を取得します。

戻り値:
データベースの種類("DB2", "ORACLE")

getURL

public java.lang.String getURL()
JDBCのURL(URL)を取得します。

戻り値:
JDBCのURL

getServer

public java.lang.String getServer()
データベースサーバーの URL を取得します。

戻り値:
データベースサーバーの URL

getUser

public java.lang.String getUser()
データベースのユーザ(USER)を取得します。

戻り値:
データベースのユーザ名

getPassword

public java.lang.String getPassword()
データベースのパスワード(PASSWORD)を取得します。

戻り値:
パスワード

getLogDir

public java.lang.String getLogDir()
エラーログの出力先ディレクトリ(LOGDIR)を取得します。 現在は未実装です。

戻り値:
エラーログの出力先ディレクトリ

getAuthor

public java.lang.String getAuthor()
データソースの作成者(AUTHOR)を取得します。

戻り値:
作成者

getDate

public java.lang.String getDate()
データソースの作成日(DATE)を取得します。

戻り値:
作成日

getRemarks

public java.lang.String getRemarks()
データソースの備考(REMARKS)を取得します。

戻り値:
備考

getMaxUseTime

public int getMaxUseTime()
最大貸し出し時間(MAXUSETIME)を取得します。

戻り値:
最大貸し出し時間[ms]

getTimeout

public int getTimeout()
SQLのタイムアウト時間(ミリ秒)(TIMEOUT)を取得します。

戻り値:
SQLのタイムアウト時間[ms]

getMaxCon

public int getMaxCon()
同時最大コネクション数(MAXCONS)を取得します。

戻り値:
同時最大コネクション数

getInitCon

public int getInitCon()
初期コネクション数(INITCONS)を取得します。

戻り値:
初期コネクション数

getIsoLevel

public int getIsoLevel()
トランザクションアイソレーションレベル(ISOLEVEL, 分離レベル)を取得します。
読み取りコミット済み (カーソル固定) (デフォルト)
1 読み取り未コミット (コミットされていない読み取り)
2
3 反復可能読み取り (読み取り固定)
4 逐次化可能 (反復可能読み取り)
SeiDataSourceでは、以下の文字列を指定することもできます。

戻り値:
トランザクションアイソレーションレベル

getIsoLevelString

public java.lang.String getIsoLevelString()
分離レベルの文字列を取得します。


getAutoCommit

public boolean getAutoCommit()
自動コミットモードを取得します。 デフォルトは false です。 通常は、トランザクションの中で DB 処理を行いますが、 AutoCommit に true を設定すると、自動コミットするようになります。

戻り値:
自動コミットモード
導入されたバージョン:
RakFWII V5.0

getExecCommit

public boolean getExecCommit()
コミットを実行するかどうかを取得します。 デフォルトは true です。

戻り値:
コミットする場合は true
導入されたバージョン:
RakFWII V5.1

getRetryCount

public int getRetryCount()
全コネクション使用時のリトライ回数(RETRYCOUNT)を取得します。

戻り値:
全コネクション使用時のリトライ回数

getRetryInterval

public int getRetryInterval()
全コネクション使用時のリトライ間隔(RETRYINTERVAL)を取得します。

戻り値:
全コネクション使用時のリトライ間隔[ms]

getRdbms2

public java.lang.String getRdbms2()
RDBMSの種類の先頭3文字を大文字で取得します。

戻り値:
RDBMSの先頭3文字

getCodeset

public java.lang.String getCodeset()
コードセットを取得します。

戻り値:
コードセット

getDBID

public java.lang.String getDBID()
データベースの識別名を取得します。

導入されたバージョン:
RakFWII V2.1

getUsePrepare

public boolean getUsePrepare()
PreparedStatement を使用するかどうかを取得します。

戻り値:
使用する場合は true

getDriverPath

public java.lang.String getDriverPath()
JDBC ドライバをロードするためのパスを取得します。

導入されたバージョン:
RakFWII V2.1

getDriverClass

public java.lang.String getDriverClass()
JDBC ドライバのクラス名を取得します。

導入されたバージョン:
RakFWII V2.1

getConnectURL

public java.lang.String getConnectURL(java.lang.String x_application,
                                      java.lang.String x_url)
JDBC の接続 URL を取得します。

パラメータ:
x_application - アプリケーション名
x_url - データソースに定義された URL
戻り値:
接続 URL
導入されたバージョン:
RakFWII V4.0

setTitle

public void setTitle(java.lang.String x_title)
データソースのタイトルを設定します。 データソースの簡単な説明を設定して下さい。 このパラメータの設定は、接続には影響ありません。

導入されたバージョン:
RakFWII V3.1

setRemarks

public void setRemarks(java.lang.String x_remarks)
データソースの備考を設定します。 このパラメータの設定は、接続には影響ありません。

導入されたバージョン:
RakFWII V3.1

setTimeout

public void setTimeout(int x_timeout)
タイムアウト時間を設定します。 デフォルトは無制限です。 単位は ms で設定して下さい。 無制限にする場合は -1 を設定して下さい。

導入されたバージョン:
RakFWII V3.1

setMaxUseTime

public void setMaxUseTime(int x_maxuse)
最大接続時間を設定します。 デフォルトは 10 分間です。 単位は ms で設定して下さい。 SeiConMgr でコネクションを取得後、このメソッドで設定した時間が経過すると自動的に回収されます。 回収するまでの時間を延長する方法は以下の通りです。
  1. SeiConn.notifyContinue() を定期的に呼び出す
  2. SeiConn.setMaxUseTime(long) で延長する
  3. 本メソッドで最大接続時間を設定する
この中で、本メソッドを使用すると全てのプログラムに影響が出ますので、 できるだけ 1. の方法をご利用下さい。

導入されたバージョン:
RakFWII V3.1

setMaxCon

public void setMaxCon(int x_maxcon)
最大接続数を設定します。 デフォルトは 50 個です。

導入されたバージョン:
RakFWII V3.1

setRetryCount

public void setRetryCount(int x_retryCount)
リトライ回数を設定します。 デフォルトは 3 回です。

導入されたバージョン:
RakFWII V3.1

setRetryInterval

public void setRetryInterval(int x_retryInterval)
リトライ間隔を設定します。 デフォルトは 1 秒です。 単位は ms で設定して下さい。

導入されたバージョン:
RakFWII V3.1

setUsePrepare

public void setUsePrepare(boolean x_usePrepare)
PreparedStatement を使用するかどうか設定します。

導入されたバージョン:
RakFWII V3.1

isManaged

public boolean isManaged()
ライブラリが管理するデータソースかどうかを取得します。 データソース取得クラスで取得したデータソースの場合は false を返します。


isDefaultCodeSet

public boolean isDefaultCodeSet()
コードセットがデフォルトのままかどうかを取得します。

戻り値:
デフォルトから変更されていない場合は true

isDefaultMaxUse

public boolean isDefaultMaxUse()
最大接続時間がデフォルトのままかどうかを取得します。


isDefaultInitCon

public boolean isDefaultInitCon()
初期接続数がデフォルトのままかどうかを取得します。


isDefaultMaxCon

public boolean isDefaultMaxCon()
最大接続数がデフォルトのままかどうかを取得します。


isDefaultRetryCount

public boolean isDefaultRetryCount()
リトライ回数がデフォルトのままかどうかを取得します。


isDefaultRetryInterval

public boolean isDefaultRetryInterval()
リトライ間隔がデフォルトのままかどうかを取得します。


newConnection

public SeiConn newConnection(int x_no)
コネクションを作成します。 このメソッドを使用して作成したコネクションはプールされません。 SeiConMgr を使用してコネクションを取得して下さい。


setQueryTimeout

public void setQueryTimeout(SeiConn x_con,
                            java.sql.Statement x_stmt,
                            int x_timeout)
                     throws java.sql.SQLException
照会 SQL の最大待ち時間(タイムアウト)を設定します。 SQL の実行に指定した時間を超えて RDBMS から応答がない場合、 例外が発生してエラーになります。 なお、PostgreSQL8.3 以降でタイムアウトを設定すると例外が発生するようになりましたが、 無視します(エラーログは出力します)。 エラーが出力された場合、データソースの Timeout は設定しないようにして下さい。

パラメータ:
x_con - コネクション
x_stmt - ステートメント
x_timeout - タイムアウト[秒]
例外:
java.sql.SQLException - タイムアウトの設定に失敗した場合
導入されたバージョン:
RakFWII V5.0

afterConnect

public void afterConnect(SeiConn x_con,
                         java.sql.Connection x_con2)
DB 接続時に呼び出されます。

パラメータ:
x_con - コネクション
x_con2 - JDBC コネクション
導入されたバージョン:
RakFWII V5.0

isValid

public boolean isValid(SeiServletParam x_ssp)
コネクションを使用可能かどうかを取得します。 このメソッドが false を返した場合、 JDBC ドライバがインストールされていないか不正な状態です。

パラメータ:
x_ssp - SeiServletParam
戻り値:
コネクションを使用可能の場合は true

getProperties

public java.util.Properties getProperties()
JDBCドライバのプロパティ一覧を取得します。



Copyright(C)1999-2012 Sumitomo Electric Industries, Ltd.
All rights reserved.