// プロファイル用のテーブル
Map<String, TableTransferProfile> profiles = new TreeMap<String, TableTransferProfile>();
while (reader.next()) {
FileProtocol protocol = reader.getCurrentProtocol();
assert protocol.getKind() == FileProtocol.Kind.CONTENT;
// ファイル名を取得
String fileName = protocol.getLocation();
// テーブル名を取得
String tableName = FileNameUtil.getExportTableName(fileName);
if (tableName == null) {
LOG.error("TG-EXPORTER-02003", fileName, "(Unknown)");
return false;
} else if (bean.getExportTargetTable(tableName) == null) {
LOG.error("TG-EXPORTER-02003", fileName, tableName);
return false;
}
// プロファイル情報の引当
TableTransferProfile profile = profiles.get(tableName);
if (profile == null) {
profile = new TableTransferProfile(tableName);
profiles.put(tableName, profile);
}
// ファイル名を作成
File file = FileNameUtil.createExportFilePath(
fileDirectry,
bean.getTargetName(),
bean.getJobflowId(),
bean.getExecutionId(),
tableName,
fileSeq++);
// ファイルを読み込んでローカルファイルに書き込む
LOG.info("TG-EXPORTER-02008", tableName, file.getAbsolutePath());
long dumpStartTime = System.currentTimeMillis();
long dumpFileSize = 0;
int byteSize = Integer.parseInt(
ConfigurationLoader.getProperty(Constants.PROP_KEY_EXP_FILE_COMP_BUFSIZE));
byte[] b = new byte[byteSize];
InputStream content = reader.openContent();
OutputStream fos = null;
try {
fos = createFos(file);
while (true) {
int read;
try {
read = content.read(b);
} catch (IOException e) {
throw new BulkLoaderSystemException(e, getClass(), "TG-EXPORTER-02002",
"Exportファイルの読み込みに失敗。エントリ名:" + protocol.getLocation());
}
// 入力ファイルの終端を察知する
if (read < 0) {
break;
}