サポート > インポートとエクスポート機能活用ガイド > コマンドラインによる操作

大量データのインポート・エクスポート処理では、Web ブラウザから実行するとタイムアウト(時間切れ)となってしまうことがあります。このような場合は本手順に示す方法により、コマンドラインによる対応を行うことができます。

InitLoader の概要

ここでは、コマンドラインによるデータのインポートとエクスポートを行う方法を詳細に説明します。 Wagby はこの処理を行なうための InitLoader というユーティリティプログラムを提供しています。

InitLoader は「1つのXMLファイル」を「1レコード」として扱い、データベースとのやりとり(インポート・エクスポート)を行います。 具体的な XML ファイルは次のようになっています。

<?xml version="1.0" encoding="UTF-8"?>
<staff>
  <staffid>1000</staffid>
  <name>スタッフ1</name>
  <birth>1972-05-15</birth>
</staff>

(*) 要素名は、モデル名(英語)およびモデル項目名(英語)が使われます。

コマンドラインからのエクスポート

コンソール画面からコマンドを入力することで、エクスポート処理を行なうことができます。

  1. Web アプリケーションを停止します。
  2. コマンドプロンプトを開きます。
  3. wagbyapp フォルダに含まれる bin フォルダに移動します。
    > cd C:\Wagby-6.0.0\wagbyapp\bin
    
  4. export_db.bat を実行します。引数に出力先のフォルダを指定します。フォルダ名は「data_」を接頭語とし、年月日時分秒の情報を続けるとよいでしょう。(時分秒については、省略しても結構です。あとで思い出せるようなキーワードを付与するといった工夫でもよいでしょう。)
    R6.3.0 より、引数を指定しない場合は、project_env.xls で指定したフォルダ(標準では「..\..\export」)に出力されます。フォルダ名は、「data_"出力した時間(年月日時分秒)"」となります。
    > export_db.bat ..\..\export\data_20080901090000
    
  5. 処理が終了すると $(DEVHOME)/export フォルダ内に、上で指定したフォルダ名でエクスポートデータが生成されます。
  6. コマンドプロンプトを終了します。
    > exit
    
  7. Web アプリケーションを起動します。

R5.7.1 より前の Wagby をお使いの方は、こちらをお読みください。

Wagby に内蔵のデータベースをお使いの場合、エクスポート処理の前に Web アプリケーションを停止する必要があります。
ただしエクスポート中にデータが更新されることはあまりのぞましくありません。できるだけ Web アプリケーションを停止して行うか、あるいは誰もログオンしていないときにエクスポート処理を行なうことを推奨します。

コマンドラインからのインポート

コンソール画面からコマンドを入力することで、インポート処理を行なうことができます。

  1. Web アプリケーションを停止します。
  2. コマンドプロンプトを開きます。
  3. wagbyapp フォルダに含まれる bin フォルダに移動します。
    > cd C:\Wagby-6.0.0\wagbyapp\bin
    
  4. データを完全に初期化する場合、同ディレクトリにある drop_db.bat をはじめに実行し、テーブル情報を消去します。
    > drop_db.bat
    
    特定のテーブルに対してインポート処理を行なうこともできます。InitLoaderコマンドの詳細をお読みください。
  5. import_db.bat を実行します。引数に(取り込みたいデータが格納されている)フォルダ名を指定します。
    > import_db.bat ..\..\export\data_20080901090000
    
  6. コマンドプロンプトを終了します。
    > exit
    
  7. 終了後、Web アプリケーションを起動します。

R5.7.1 より前の Wagby をお使いの方は、こちらをお読みください。

インポートを行う場合は Web アプリケーションを停止してから行ってください。

大量データ処理の場合の追加対応

対象データが大量の場合、標準のメモリサイズでは足りずに「Out Of Memory」(メモリ不足)というエラーになることがあります。 この場合は、上記スクリプトファイルにおいて、次に示す太字の部分を追加・修正してください。

@ECHO OFF
...
"%JAVA_HOME%\bin\java"
-Xmx512m
-XX:MaxPermSize=128m
-Dcatalina.home=".."
-jar InitLoader.jar auto -all
-check_exists_table true
-c ..\webapps\wagby\WEB-INF\export\conf\initdb.xml
-d %1
(*) 実際には 1 行です。

-Xmx の指定を行っている行は、追加しています。この例では "512m" (512メガバイト)のメモリ割当を行っていますが、指定値については PC に搭載されている実メモリサイズを超えないようにしてください。
また、MaxPermSize 値の標準は "128m" (128メガバイト)となっています。

-Xmx 値と -XX:MaxPermSize 値を調整してください。

UNIX 系 OS の場合

Linux, Solaris, Mac OS X といった UNIX 系 OS で Web アプリケーションを運用している場合は、上記スクリプトファイルの拡張子「.bat」を「.sh」に読み替えて対応してください。

スクリプト経由ではなく、直接 InitLoader を実行する

InitLoader コマンドを直接、コンソールから操作する場合は Java を別途、インストールしておく必要があります。 Java のインストール方法については「Java のインストール」をお読みください。 また、このとき catalina.home 変数の指定を忘れないようにしてください。

R5.7.1 より前の Wagby をご利用の方

Wagby R5.7.0 以前の版では、export_db.bat (.sh) および import_db.bat (.sh) ファイルは含まれておりません。 このファイルをご自身でご用意ください。以下にサンプルを示します。

export_db.bat

@ECHO OFF
"%JAVA_HOME%\bin\java"
-XX:MaxPermSize=128m
-Dcatalina.home=".."
-jar InitLoader.jar export -all
-check_exists_table true
-c ..\webapps\wagby\WEB-INF\export\conf\initdb.xml
-d %1
(*1) "%JAVA_HOME..." で始まる行は、実際には一行です。改行しないようにしてください。
(*2) 最後の行に含まれる "wagby" は、お使いのプロジェクト(英語名)に該当します。

import_db.bat

@ECHO OFF
"%JAVA_HOME%\bin\java"
-XX:MaxPermSize=128m
-Dcatalina.home=".."
-jar InitLoader.jar auto -all
-check_exists_table true
-c ..\webapps\wagby\WEB-INF\export\conf\initdb.xml
-d %1
(*1) "%JAVA_HOME..." で始まる行は、実際には一行です。改行しないようにしてください。
(*2) 最後の行に含まれる "wagby" は、お使いのプロジェクト(英語名)に該当します。