0

UNIX 環境で Java コードを実行しているときに、メモリ不足の Java ヒープ例外が発生します。

スクリプトを実行してから数秒以内にJavaクラスを呼び出すbashシェルスクリプトがあり、エラーが発生します。

どんな提案も役に立ちます。

以下は私のシェルスクリプトです。

home_dir=/opt/IBM/IEEP/MigrationBatch
java_home=/opt/IBM/WAS/java
lib_path=$home_dir/lib
job_path=$home_dir/bin/jobs
config_path=$home_dir/bin/config

batch_root_path=$home_dir
root_path=$batch_root_path/migration

mkdir -p $root_path
mkdir -p $root_path/working

log_date=$(date +%m%d%Y_%H%M%S)
run_date=$(date +%Y%m%d_%H%M%S)
job_name="MigrationBatch"

script_log_path=$root_path/script_logs
logfile=$script_log_path/script_log_migration_txt_$log_date.txt
mkdir -p $script_log_path
echo "Script Log Files available at $logfile"
exec>>$logfile
echo "Starting Java process for MigrationBatch Job...."

## STEP 1 : Run the Java Job
export JAR_HOME=$lib_path
export JOB_HOME=$job_path
export CONFIG_HOME=$config_path

JAR_CLASSPATH=:$lib_path/activation-1.1.jar:
echo $JAR_CLASSPATH

$java_home/bin/java -Djob_name=$job_name - Drun_timestamp=$run_date -cp $JAR_CLASSPATH:$job_path:$config_path org.springframework.batch.core.launch.support.CommandLineJobRunner migrationJob.xml  migrationJob -next

script_output="$(echo $?)"
4

1 に答える 1

2

これはメモリ不足のシェルではありません。これは、試すことができるJavaコマンドラインの実行です。

 java -Xmx1024m -jar jarfie
 java -Xms512m -Xmx2g -jar somejar
 $java_home/bin/java -Xms512m -Xmx2g -Djob_name=$job_name -Drun_timestamp=$run_date -cp $JAR_CLASSPATH:$job_path:$config_path org.springframework.batch.core.launch.support.CommandLineJobRunner migrationJob.xml migrationJob -next

それでもメモリの問題が発生する場合は、さらに増やす必要があるかもしれません

于 2013-03-04T14:48:16.823 に答える