いつものようにData Loaderを使おうとしたところ、固まって動かなくなってしまいました。
閉じることもできず、タスクマネージャーでタスクを終了して何度かやり直しても同じところで固まる。。。
原因は意外なところにありました。Gemini先生に聞かないとたどり着けなかったと思います。
環境
OS: Windows 11
Data Loader Version: v63.0.0
JDK Version: Zulu OpenJDK 21.0.6
発生した事象
「Delete」を選択してcsvファイルを指定し「Next」をクリックしたところ、画面が固まってしまい、「Cancel」を押すこともできなくなってしまいました。
試したけど解消しなかったこと
Geminiに聞きながら以下を試しましたが、今回は効果がありませんでした。
- バッチサイズを小さくする
- CSVファイルの件数を1件にしてみる
- Bulk APIとSOAP APIを切り替える
- CSVファイルをネットワークドライブからローカル(デスクトップ)に移す
- CSVファイルの空行の削除
- データローダーの「設定ファイル」を削除
- C:\Users\Username.dataloader (ユーザーフォルダ内の .dataloader という隠しフォルダ)の削除
確認したこと
ログ情報をGeminiに伝えたら、以下のように教えてくれました。
CSVのヘッダー(項目名)を読み取った直後、次の処理(画面遷移やデータ型の判定)に移る際」にデッドロック(フリーズ)を起こしている。ここで止まる場合、原因はファイルの中身ではなく「GUI(画面表示)を描画するためのJavaライブラリとWindowsの相性」である可能性が極めて高いです。」
INFO [main] csv.CSVFileReader initializeDaoColumnsList (CSVFileReader.java:218) - Columns in CSV header = 2
次に提案された内容を行うことで事象の解決ができました。
Windowsの「画面の拡大縮小(スケーリング)」の設定変更
原因はWindowsのディスプレイ設定にありました。
最近の高解像度ノートPCでは、画面の文字を読みやすくするために「拡大縮小」が125%や150%に設定されていることが多く、Javaベースで動いているデータローダーは、この「スケーリング」の描画処理に失敗してフリーズしてしまうことがあるようです。
解決方法
まず試してみたこと: ディスプレイ設定の変更
まずは全体のディスプレイ設定の拡大縮小の値を変更し、データローダーが固まることなく動くようになりました。ただ、これだとどの画面にも設定が反映され、文字が小さすぎて使いづらかったです。
- デスクトップの何もないところで右クリック > 「ディスプレイ設定」
- 「拡大縮小とレイアウト」の値を 100% に変更する
- その状態でデータローダーを起動し、CSVを読みこむ
最終的に行った設定: 高DPI設定を上書き
データローダーに個別に拡大縮小の設定を反映できるように高DPI設定を変更し、ディスプレイ設定は元の拡大縮小率に戻しました。
- Zulu Java を右クリックして「プロパティ」を開く
- C:/Program Files/Zulu/Zulu-16/Bin/Java.exe
- 「互換性」タブを選択
- 「高DPI設定の変更」ボタンをクリック
- 「高いDPIスケール設定の上書き」にチェックを入れる
- ドロップダウンメニューから「システム」を選択してOK
まとめ
「データローダーが動かない=ファイルに原因がある」と思いがちですが、実はPCの表示設定という外部要因で動かなくなるケースがあるようです。
もし同様のことでお困りになったら、ぜひ「高DPI設定」を疑ってみてください。
追記
解決後、再び同様の事象が発生しました。
高DPIの設定を変えても解消できずでしたが、データローダーを操作するディスプレイをモニターに変えたら解消しました。
意外とはまってしまい悔しいです。
参考
