2018年4月23日月曜日

PKCS#12形式の証明書をJKSに変換する

keytool -importkeystore -srckeystore [MY_FILE.p12] -srcstoretype pkcs12
 -srcalias [ALIAS_SRC] -destkeystore [MY_KEYSTORE.jks]
 -deststoretype jks -deststorepass [PASSWORD_JKS] -destalias [ALIAS_DEST]

2018年1月11日木曜日

oracleでエラーORA-28000、ORA-28002 発生したら

Oracle 11g ログイン時に以下のようなメッセージが出るようになりました。
 ORA-28002: パスワードは、n日以内に期限切れになります。
 これは、Oracle 11g ではデフォルトでパスワードの有効期限が 180日と設定されているのが原因のようです。

解決方法は以下です。*SYSユーザでログインするが必要
1、デフォルトプロファイルのパスワード有効期限を無期限に設定する
alter profile default limit password_life_time unlimited;
2、既存アカウントのパスワードを再設定する必要があります。
alter user ユーザ名 identified by パスワード;

また、期限切れでアカウントがロックされてしまった場合は、以下のエラーメッセージが出るようになりました。
ORA-28000: アカウントがロックされています。

ロックを解除する必要があります。
alter user ユーザ名 account unlock;

2014年11月6日木曜日

サービス名でORACLE接続用URLの書き方


Thin形式のサービス名は、JDBC Thinドライバでのみサポートされます。
構文は次のとおりです。
@//ホスト名:リスナのポート番号:サービス名

例は次のようになります。
jdbc:oracle:thin:userXXX/passXXX@//172.168.13.4:1521/myservicename

SIDで接続用URLの構文は次のとおりです。
jdbc:oracle:thin:@ホスト名:リスナのポート番号:sid

例は次のようになります。
jdbc:oracle:thin:@localhost:1521:ORCL

JAVAのサンプルコードは以下のようです。
// Javaデータアクセスの基礎 サンプルコード(1)
// EMP表への問合せを実行するJavaアプリケーション
// JDBC APIをインポート
import java.sql.*;

class JavaDataAccess01 {
  public static void main (String args[])
  throws SQLException, ClassNotFoundException {
    // Oracle JDBC Driverのロード
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // Oracle8iに接続
    Connection conn =
    DriverManager.getConnection
    ("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
    // ステートメントを作成
    Statement stmt = conn.createStatement();
    // 問合せの実行
    ResultSet rset = stmt.executeQuery("select EMPNO, ENAME from EMP");
    // 問合せ結果の表示
    while ( rset.next() ) {
      // 列番号による指定
      System.out.println(rset.getInt(1) + "\t" + rset.getString(2));
           }
    // 結果セットをクローズ
    rset.close();
    // ステートメントをクローズ
    stmt.close();
    // 接続をクローズ
    conn.close();
  }
} 

2014年11月4日火曜日

RAC構成のORACLEへ接続ためのJDBC URL例

ラック構成のORACLE DBへ接続する場合、JDBCのURLはtnsnames.oraの記述内容と一致する必要があります。

例:
tnsnames.oraの内容は以下のようです
RACServer=
 (DESCRIPTION=
  (LOAD_BALANCE=ON)(FAILOVER=ON)
  (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.13.2)(PORT=1521))
  (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.13.3)(PORT=1521))
  (ADDRESS=(PROTOCOL=TCP)(HOST=dbserver03)(PORT=1521))
  (CONNECT_DATA=(SERVICE_NAME=ORCL))
 )
JDBCのURLは以下のようです
Class.forName("oracle.jdbc.OracleDriver");
String jdbcUrl = 
    "jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=ON)(FAILOVER=ON)" +
    "(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.2)(PORT = 1521))" +
    "(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.3)(PORT = 1521))" +
    "(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver03)(PORT = 1521))" +
    "(CONNECT_DATA = (SERVICE_NAME = ORCL)))";
Connection con = DriverManager.getConnection(jdbcUrl, "userXXX", "passXXX");