HOME

Cloudscape 接続URLの属性

2005.07.25

  1. Coloudscape データベース 接続URLの属性
  2. CloudscapeではJDBCの機能として、データベース接続URLにて属性のリストを与えることができます。

    通常は、属性のリストをセミコロン(;)で区切って、プロトコルやサブプロトコルに続けます。
    Cloudscape は、それらの属性をプロパティに変換します。

    また、それらの属性を Properties オブジェクトにセットして、 DriverManager.getConnection に引き渡すこともできます。
    (ただし、それらの属性を system properties に設定することはできません。Properties オブジェクトにて、 DriverManager.getConnection メソッドに引き渡すことができるのみです)

    属性名/属性値 のペアは、プロパティに変換され、プロパティは、接続呼出時に提供されます。
    接続呼出時にプロパティが無い場合、データベース接続URLのみを含むひとつのプロパティが生成されます。

    		Connection conn = DriverManager.getConnection("jdbc:derby:sampleDB;create=true");
    
    		// プロパティへの属性の設定
    		Properties p = new Properties();
    		p.put("create", "true");
    		Connection conn = DriverManager.getConnection("jdbc:derby:sampleDB", p);
    
    		// ユーザ名とパスワードの入力をパスする
    		Connection conn = DriverManger.getConnection("jdbc:derby:sampleDB", "dba", "password");
    	

    注意 : 属性は正確に設定すること もし、不正な属性等を設定した場合、それは単に無視されます。 また、Cloudscape は、属性が正確化を解析するツールを提供しません。

  3. レファレンス
  4. 属性 機能 他の属性との組み合わせ
    bootPassword=key 暗号化された新規のデータベース、またはすでに存在する暗号化されたデータベースを利用するためのキーを設定します。
    最低8桁のアルファベットもしくは数字を設定してください。
    新規にデータベースを作成する場合、create=truedataEncryption=true と組み合わせて使用する必要があります。
    その他の属性は必須ではありません。
    -- 暗号化されたデータベースを起動 jdbc:derby:encryptedDB;bootPassword=cseveryPlace
    -- 暗号化されたデータベースを新規に作成 jdbc:derby:newDB;create=true;dataEncryption=true; bootPassword=cseveryPlace
    create=true

    Cloudscape に接続した、データベース接続URLに含まれる設定に基づいて、スタンダードなデータベースを作成します。
    もし、データベースが作成できない場合、エラーログにエラーが出力されます。そして、 データベースが見つからない旨のSQLExceptionとともに接続が失敗します。

    もしデータベースがすでに存在する場合、存在するデータベースへの接続が生成され、SQLWarnigが発せられます。

    データベース生成時に接続エラーが発生した場合でも、JDBCはデータベースを削除しません。
    もし、データベース接続URLにcreate=trueを使用していて、接続エラーが発生した場合、データベースディレクトリを確認してください。
    データベースが存在していた場合、次のデータベース生成を試みる前にそれを削除してください。

    データベース名(データベース接続URLのサブプロトコルに続いた)もしくは、"databaseName=データベース名" 属性を合わせて設定する必要があります。

    この属性を他の属性と組み合わせて使用することができます。 データベース作成時、地域を territory=ll_CC 書式にて設定することができます。

    注意 : データベース作成時に、既にデータベースが存在すると、SQLWarning が発生します。

    jdbc:derby:sampleDB;create=true

    jdbc:derby:;databaseName=newDB;create=true;

    databaseName=nameofDatabase

    接続のためのデータベース名を設定します。 サブプロトコルに続いてデータベース名を設定する代わりにこの属性を使用できます。

    たとえば、これらのURL(Propertiesオブジェクト)の組み合わせは等価です:

    • jdbc:derby:toursDB
    • jdbc:derby:;databaseName=toursDB
    • jdbc:derby:(with a property databaseName and its value set to toursDB in the Properties object passed into a connection request)

    もし、データベース名をURLの一部として、および属性の両方に設定した場合、URLの一部として設定したデータベース名が優先されます。
    例えば、次の接続URLは、toursDB に接続されます。
    jdbc:derby:toursDB;databaseName=flightsDB

    すべての他の属性と組み合わせて使用することができます。 jdbc:derby:;databaseName=newDB;create=true
    dataEncryption=true

    データベースをディスク上の暗号化されたデータとして作成します。

    暗号化についての詳細は、IBM Cloudscape Developer's Guide.の"Encrypting Databases on Disk"を参照してください。

    create=truebootPassword=key 属性と組み合わせて使用する必要があります。

    オプションを設定することもできます。 "encryptionProvider=providerName"、 "encryptionAlgorithm=algorithm"

    jdbc:derby:encryptedDB;create=true;dataEncryption=true; bootPassword=cLo4u922sc23aPe
    encryptionProvider=providerName

    暗号化プロバイダを設定します。

    暗号化についての詳細は、IBM Cloudscape Developer's Guide.の"Encrypting Databases on Disk"を参照してください。

    この属性を設定しない場合の規定の暗号化プロバイダーは、com.sun.crypto.provider.SunJCE です。

    create=truebootPassword=key および dataEncryption=true と組み合わせて使用する必要があります。

    また、"encryptionAlgorithm=algorithm" オプションも使用することができます。

    jdbc:derby:encryptedDB;create=true;dataEncryption=true; encryptionProvider=com.sun.crypto.provider.SunJCE; encryptionAlgorithm=DESede/CBC/NoPadding; bootPassword=cLo4u922sc23aPe
    encryptionAlgorithm=algorithm

    暗号化のアルゴリズムを設定できます。

    Javaでは一般的に、次のようにアルゴリズムを設定します
    algorithmName/feedbackMode/padding

    Cloudscapeでは、padding タイプには、NoPadding のみ指定できます。

    暗号化アルゴリズムを設定しない場合、規定値として、DES/CBC/NoPadding が使用されます。

    暗号化についての詳細は、IBM Cloudscape Developer's Guide.の"Encrypting Databases on Disk"を参照してください。

    create=truebootPassword=keydataEncryption=true および encryptionProvider=providerName と組み合わせて使用する必要があります。

    jdbc:derby:encryptedDB;create=true;dataEncryption=true; encryptionProvider=com.sun.crypto.provider.SunJCE; encryptionAlgorithm=DESede/CBC/NoPadding; bootPassword=cLo4u922sc23aPe

    注意 : サポートされていない暗号化プロバイダを指定した場合、Cloudscapeは例外を発生します。

    territory=ll_CC

    データベースの作成、またはアップデートを行う時に、この属性を 規定値ではない地域にデータベースを結びつけるのに使用できます。

    システム規定のデータベース地域を上書きする場合、システムの規定地域は java.util.Locale.getDefault() を使用することによって得られます。

    Language codes consist of a pair of lower case letters that conform to ISO-639 地域を ll_CC として設定できます。ll は2文字で言語コードをあらわします、 CC は2文字で、国コードを表します。

    言語コードは 小文字のペアから成り立ちます。ISO-639 に準拠しています。
    言語コード 内容
    de German
    en English
    es Spanish
    ja Japanese
    ISO-639 のすべてのコードは http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt ここから参照できます。

    国コードは 大文字のペアから成り立ちます。ISO-3166 に準拠しています。
    国コード 内容
    DE Germany
    US United States
    ES Spain
    MX Mexico
    JP Japan
    ISO-3166 のすべてのコードは http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html ここから参照できます。

    地域属性は、データベース作成時のみ使用できます。

    次の例では、新規データベースを、言語:スペイン語、国:メキシコで作成しています。
    jdbc:derby:MexicanDB;create=true;territory=es_MX

    logDevice=logDirectoryPath

    logDirectoryPath は、作成またはリストア時のデータベースログを格納するためのディレクトリへのパスを設定します。 もし、相対パスを指定した場合、logDirectoryPath は、絶対パスの内部に作成されます。

    create=truecreateFromrestoreFrom もしくは rollFowardRecoveryFromと合わせて使用してください。

    jdbc:derby:newDB;create=true;logDevice=d:/newDBlog
    password=userPassword

    ユーザ名に対して有効なパスワード

    user=userNameと合わせて使用する。

    jdbc:derby:toursDB;user=jack;password=upTheHill
    rollForwardRecoveryFrom=Path

    起動時に rollForwardRecoveryFrom=Path を設定することで、バックアップコピーを利用し、 アーカイブおよびアーカイブログを使用したロールフォワード回復を行い、データベースをリストアするための URLを指定できます。

    ロールフォワード回復をデータベースのリストアに使用するには、 回復しようとする時点以降のすべてのアーカイブおよびアクティブログファイル、 データベースのバックアップコピーがとられている必要があります。 また、すべてのログファイルが、データベースの log ディレクトリに置かれている必要があります。

    完全バックアップから、データベースをリストアした後に、 トランザクションが、オンラインアーカイブログ、およびアクティブログから再実行されます。

    この属性は、createFromrestoreFrom、 および create とは併用できません。

    URL: jdbc:derby:wombat;rollForwardRecoveryFrom=d:/backup/wombat
    createFrom=Path

    起動時に完全バックアップを使用して接続URLから、データベースをリストアする時に、restoreFrom=Path属性で、 その場所を指定できます。 Cloudscape.system.homeに同名のデータベースが複数存在する場合、 バックアップからコピーされた内容で、再起動時に、すべてのデータベースは削除されます。

    バックアップがとられたときにログファイルが同じ場所にコピーされた場合、 logDevice 属性によって、withrestoreFrom=Path で別の場所に格納されたログを共用できます。、

    この属性は、createFromrollforwardrecoveryFrom、 および create とは併用できません。

    URL: jdbc:derby:wombat;restoreFrom=d:/backup/wombat
    restoreFrom=Path

    場所を指定して完全バックアップからデータベースをリストアする接続URLの起動時、restoreFrom=Pathを設定できます。 もし同名のデータベースが Cloudscape.system.home に存在する場合、 バックアップからコピーされた内容で、再起動時に、すべてのデータベースは削除されます。

    バックアップがとられたときにログファイルが同じ場所にコピーされた場合、 logDevice 属性によって、withrestoreFrom=Path で別の場所に格納されたログを共用できます。、

    この属性は、createFromrollforwardrecoveryFrom、 および create とは併用できません。

    URL: jdbc:derby:wombat;restoreFrom=d:/backup/wombat
    shutdown=true

    databaseName で指定したデータベースをシャットダウンします。 (データベースに再接続しデータベースを再起動します)

    databaseName を指定しない場合、Cloudscape 全体がシャットダウンされます。

    ひとつのデータベースをシャットダウンする場合、Cloudscapeプラットフォームは、そのデータベースに最後のチェックポイントを生成します。

    システム全体をシャットダウンする場合、Cloudscapeは、最後のチェックポイントをすべてのシステムデータベースに作成し、 JDBCドライバーの登録を削除し、起動したJVMを終了します。 シャットダウンが成功すると、Cloudscape がシャットダウンされ、コネクションが切断されたことを示す、SQLExceptionが発せられます。 一旦 Cloudscape をシャットダウンしたら、リスタートするには、JDBCドライバーを再度読み込む必要があります。

    Cloudscape の再起動については、IBM Cloudscape Developer's Guideの Chapter 1 "Shutting Down the System" を参照。

    チェックポイントとは、すべてのデータおよびトランザクション情報が、ディスクに書き込まれた状態を意味します。 つまり、次回の接続時に、リカバリを実行する必要がありません。

    システム全体へのシャットダウンは、組み込みアプリケーションの場合にのみ使用されます。

    注意 : DriverManagerへのいかなる要求も、shutdown=true 属性とともに使用された場合、例外を発生します。

     

    -- システム全体のシャットダウン
    jdbc:derby:;shutdown=true

    -- salesDB のシャットダウン
    jdbc:derby:salesDB;shutdown=true

    user=userName

    システムに対して有効なユーザ名をパスワードとともに設定します。 認証機能が有効な場合、有効なユーザ名とパスワードが要求されます。

    password=userPassword と共に使用します。

    以下の接続URLは、ユーザ jill にて、 toursDBに接続します。 jdbc:derby:toursDB;user=jill;password=toFetchAPail
    (no attributes)

    なにも属性を設定しない場合、databaseName は設定しなければいけません。

    カレントシステムディレクトリに指定された名前のデータベースが存在する場合、Cloudscapeは、そのデータベースへのコネクションを開きます。 もし、データベースが存在しない場合、コネクションは データベースが見つからない旨のSQLExceptionを返すように試みます。

      jdbc:derby:mydb