Spoon ソフトウェアの実行中にプログラムを右クリックすると応答しない場合の解決策
問題の説明
背景: Kettle8.2 バージョンは正常に起動できますが、右クリックの変換が停止し、プログラムが応答しません。
解決後の効果画像は次のとおりです。解決前は、DB接続の右ボタンが反応しなくなります。
JDKのバージョンが正しくありません
解決策 1:
JDK バージョンの確認方法: WIN+R----->cmd----->java -version
ネイティブ JDK 環境を 1.8 に変更します。
Kettle 7.0 以降を実行するには、JDK は 1.8 以降である必要があるため (JDK9 および JDK10 の使用が安定していないことが多くの実践で判明しています。ここでは、JDK1.8 を使用することを強くお勧めします。そうしないと、説明できない問題や問題が数多く発生します。後の使用プロセスミスでおかしな問題が発生)
解決策 2:
Kettle 7.0 用に 1.8 環境を別途設定する
1. jdk1.8 を Kettle 7.0 のルートディレクトリに置きます
2. エディタを使用して、spoon.bat
Linux の Kettle ルート ディレクトリを次のように開きます。spoon.sh
3. 次のコードを挿入し、Kettle を再起動します。
set JAVA_HOME=%cd%/jdk1.8.0_92
set PENTAHO_JAVA_HOME=%JAVA_HOME%
コンピューターのハードウェア構成が低すぎる
spoon.bat
Linux でspoon.sh
内部メモリ構成を変更します。
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"
に変更されました
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=256m"
つまり、変更-Xms
、-Xmx
値、変更後に保存、spoon.bat の再起動
要約する
1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的总和 超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。
ローカルメモリが占有されすぎているのと、JVMのパラメータ設定が大きすぎるためJVMが起動できないようで、spoon.batを実行した後、Kettleが起動できなくなりました
JVM (Java 仮想マシン) 関連の概念
1) ヒープ (ヒープ) メモリと非ヒープ (非ヒープ) メモリ
JVM は主に、ヒープと非ヒープの 2 種類のメモリを管理します。
簡単に言うと、ヒープは Java コードにアクセスできるメモリであり、開発者用に予約されており、非ヒープは JVM が独自に使用するために予約されています。
2) JVM のいくつかのパラメータ:
-Xms2058m JVM によって最初に割り当てられたヒープ メモリ
-Xmx1024m JVM によって割り当てられた最大ヒープ メモリ、オンデマンドで割り当て
-XX:PermSize=128M JVM によって最初に割り当てられた非ヒープ メモリ
-XX:MaxPermSize=256M JVM によって割り当てられた最大非ヒープ メモリ、押します割り当てる必要がある
3) Xms Xmx PermSize MaxPermSize の違い
ブロガー @远星博文を参照してください: https://www.cnblogs.com/mingforyou/archive/2012/03/03/2378143.html