Connection conn = null;
FileInputStream fis = null;
// 初期化が行われていない場合例外をスローする。
if (!initialized) {
throw new BulkLoaderSystemException(CLASS, "TG-COMMON-00001",
"初期化が行われていない");
}
// プロパティからDB接続情報を取得
String url = ConfigurationLoader.getProperty(Constants.PROP_KEY_DB_URL);
String user = ConfigurationLoader.getProperty(Constants.PROP_KEY_DB_USER);
String password = ConfigurationLoader.getProperty(Constants.PROP_KEY_DB_PASSWORD);
String param = ConfigurationLoader.getProperty(Constants.PROP_KEY_NAME_DB_PRAM);
try {
if (param != null && !param.isEmpty()) {
// チューニングパラメータのプロパティが指定されている場合
fis = new FileInputStream(new File(param));
Properties prop = new Properties();
prop.load(fis);
prop.setProperty("user", user);
prop.setProperty("password", password);
conn = DriverManager.getConnection(url, prop);
} else {
// チューニングパラメータのプロパティが指定されていない場合
conn = DriverManager.getConnection(url, user, password);
}
// トランザクション分離レベルをREAD_COMMITTEDに設定
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
// オートコミットをFALSEに設定
conn.setAutoCommit(false);
return conn;
} catch (SQLException e) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e1) {
// ここで例外が発生した場合は握りつぶす
e1.printStackTrace();
}
}
throw new BulkLoaderSystemException(e, CLASS, "TG-COMMON-00001",
"コネクション取得中にSQL例外が発生");
} catch (FileNotFoundException e) {
throw new BulkLoaderSystemException(e, CLASS, "TG-COMMON-00001",
MessageFormat.format("チューニングパラメータのプロパティが見つからない。ファイル名:{0}", param));
} catch (IOException e) {
throw new BulkLoaderSystemException(e, CLASS, "TG-COMMON-00001",
MessageFormat.format("チューニングパラメータのプロパティの読み込みに失敗。ファイル名:{0}", param));
} finally {
if (fis != null) {
try {
fis.close();