2.4. AdminShell


2.4.1. AdminShell 機能

AdminShell は以下の機能を提供します。
管理
AdminShell を使用すると、さまざまな管理タスクを実行するために JBoss Data Virtualization インスタンスに接続できます。
データアクセス
AdminShell を使用すると、仮想データベース (VDB) に接続し、SQL コマンドを実行して VDB データを問い合わせ、結果を参照できます。
移行
AdminShell を使用すると、VDB および関連するコンポーネントをある開発環境から別の開発環境に移行するスクリプトを開発できます (移行スクリプトは、本番稼働デプロイメントで実行する前にテストおよび自動化できます)。
テスト版
組み込みの JUnit テストフレームワークを使用すると、ユーザーはシステムの状態とデータの整合性を確認する回帰テストを作成できます。作成されたテストは、システム機能をアトミックに検証します。QA 担当者が手動で検証する必要はありません。

2.4.2. AdminShell スクリプト

Groovy 言語を使用して、タスクを自動化する AdminShell スクリプトを記述します。AdminShell は、JBoss Data Virtualization の管理を支援する Groovy 機能のカスタムライブラリーを提供します。これらのカスタム機能は、他の Groovy コードとは無関係に、または他の Groovy コードとともに使用できます。
基本的なルールは以下のとおりです。これらのルールを覚えて構文に慣れてください。
  • すべてのコマンドと関数では大文字と小文字を区別します。
  • Groovy コマンドは、セミコロンで終了する必要はありません。これはオプションです。
  • 関数は入力としてゼロ個以上のパラメーターをとります。
    • 関数パラメーターはかっこ内で提供されます。
    • 文字列パラメーターは、一重引用符または二重引用符内に提供する必要があります。
    connectAsAdmin("localhost", "9999", "user", "password", "conn1")
    
    Copy to Clipboard Toggle word wrap
  • 他の Java クラスおよびメソッドは、必要なライブラリーがすでにクラスパスで指定されている限り、スクリプト内からアクセスしたり、呼び出したりできます (lib ディレクトリーに追加された JAR ファイルは自動的にクラスパスに含まれます)。
    import my.package.*;
    myObject = new MyClass();
    myObject.doSomething();
    
    Copy to Clipboard Toggle word wrap

注記

disconnect() コマンドを入力して、AdminShell を終了する前に JBoss Data Virtualization から切断する必要があります。

参照

2.4.3. AdminShell ヘルプ

AdminShell で利用可能なすべてのカスタム管理メソッドは、adminHelp() メソッドを使用してリストできます (カスタム AdminShell メソッドのみが表示されることに注意)。
adminHelp()
Copy to Clipboard Toggle word wrap
特定のメソッドの定義と入力パラメーターが必要な場合は、adminHelp("METHOD") を使用します。
adminHelp("deploy")

/*
*Deploy a VDB from file
*/
void deploy(
String /* file name */)
throws AdminException
throws FileNotFoundException
Copy to Clipboard Toggle word wrap
すべての SQL 拡張メソッドをリストする場合は、sqlHelp() メソッドを使用します。
sqlHelp()
Copy to Clipboard Toggle word wrap
特定のメソッドの定義と入力パラメーターを取得する場合は、sqlHelp("METHOD") を使用します。

2.4.4. AdminShell 基本コマンド

Expand
表2.1 AdminShell 基本コマンド
コマンド説明
adminHelp();
利用可能なすべてのカスタム AdminShell メソッドを表示します。
adminHelp("METHOD");
提供された AdminShell メソッドの定義および入力パラメーターを表示します。
sqlHelp();
利用可能なすべてのカスタム SQL AdminShell メソッドを表示します。
sqlHelp("METHOD");
提供された SQL AdminShell メソッドの定義および入力パラメーターを表示します。
println "STRING";
値をコンソールに出力します。
sql = connect();
connection.properties ファイルで指定されたデフォルトの接続を使用して、拡張された Groovy SQL 接続を取得します。
sql.execute("SQL");
SQL コマンドを実行します。
connectAsAdmin();
connection.properties ファイルで指定されたデフォルトの接続を使用して管理ユーザーで接続詞ます。このコマンドは VDB 名を必要としません。これは管理接続であり JDBC 接続ではないため、この接続を使用して SQL コマンドを発行できません。SSL が使用される場合は、接続 URL とクライアント SSL 設定を必要に応じて調整する必要があります (通常は、2 方向 SSL の場合のみ)。
println getConnectionName();
アクティブな接続の名前を返します。
useConnection("cNAME");
該当する接続を使用します。
disconnect();
アクティブな接続を切断します。
disconnectAll();
すべての接続 (アクティブな接続および中断された接続) を切断します。

2.4.5. 非インタラクティブ AdminShell でのスクリプトの実行

手順2.3 非インタラクティブ AdminShell でのスクリプトの実行

  1. コマンドラインターミナルを開く

  2. スクリプトを実行する

    /adminshell.sh load [-Dparam=value] PATH/FILENAME コマンドを実行します。

注記

-D を使用して渡すオプションプロパティーには、System.getProperty() を使用してスクリプトファイル内からアクセスできます。
value = System.getProperty("param")
Copy to Clipboard Toggle word wrap

重要

スクリプト内で確立されたすべての接続は、スクリプトが修了する前に切断する必要があります。

2.4.6. インタラクティブ AdminShell の起動

手順2.4 インタラクティブ AdminShell の起動

  1. adminshell ディレクトリーに移動する

    1. コマンドラインターミナルを開きます。
    2. AdminShell ディレクトリーへ移動します: /EAP_HOME/dataVirtualization/teiid-adminshell/.
  2. AdminShell を展開します: unzip teiid-VERSION-adminshell-dist.zip
  3. adminshell スクリプトを起動する

    ./adminshell.sh コマンドを実行します。
    ログの出力は以下のようになります。
    ======================================================================
    
      Teiid AdminShell Bootstrap Environment
    
      TEIID_HOME  = /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION
      CLASSPATH   = /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/lib/patches/*:/EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/lib/teiid-adminshell-VERSION.jar:/EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/lib/*
      JAVA        = /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/java
    
    ======================================================================
    
    ===> [import static org.teiid.adminshell.AdminShell.*; import static org.teiid.adminshell.GroovySqlExtensions.*; import org.teiid.adminapi.*;]
    Groovy Shell (1.7.2, JVM: 1.7.0_25)
    Type 'help' or '\h' for help.
    -------------------------------------------------------------------------------
    groovy:000>
    
    Copy to Clipboard Toggle word wrap
結果:

インタラクティブ AdminShell が実行されています。この時点で、個々のコマンドを行ごとに実行できます。

注記

exit コマンドを入力することにより、いつでもインタラクティブ AdminShell を終了できます。

2.4.7. インタラクティブ AdminShell に役に立つヒント

Expand
表2.2 インタラクティブ AdminShell コマンド
コマンド説明
↑ ('up arrow')
実行した過去のコマンドを最新のものから表示します。
help
インタラクティブシェア内で使用するために特別に提供された追加コマンドを表示します。
シェルの動作

インタラクティブシェルは特別なインタープリターを使用し、Groovy スクリプトを実行して期待される動作とは異なる動作を表示します。

  • def ステートメントは、シェルのコンテキストで変数を定義しません。たとえば、def x = 1, use x = 1 は使用しないでください。
  • シェルは、アノテーションを使用する Groovy クラスを解析できません。

2.4.8. インタラクティブ AdminShell でのスクリプトの保存

手順2.5 インタラクティブ AdminShell でのスクリプトの保存

  1. インタラクティブ AdminShell を開く

    1. コマンドラインターミナルを開きます。
    2. /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/ に移動します。
    3. ./adminshell.sh コマンドを実行します。
  2. ファイルへの記録を開始する

    record start PATH/FILENAME コマンドを入力します。
  3. 記録する必要なコマンドを入力する

    入力/出力を記録する一連のコマンドを入力します。
  4. ファイルへの記録を停止する

    record stop コマンドを入力します。
結果:

record start コマンドを発行し、record stop コマンドを発行するまでのすべての入力と出力が PATH/FILENAME にキャプチャされます。

注記

入力と出力の両方が記録されるため、ファイルはスクリプトファイルとして実行する前に編集する必要があります。

2.4.9. インタラクティブ AdminShell でのスクリプトの実行

手順2.6 インタラクティブ AdminShell でのスクリプトの実行

  1. インタラクティブ AdminShell を開く

    1. コマンドラインターミナルを開きます。
    2. /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/ に移動します。
    3. ./adminshell.sh コマンドを実行します。
  2. スクリプトを実行する

    • インタラクティブシェル load コマンドを使用してスクリプトを実行する

      load PATH/FILENAME コマンドを実行します。
    • Groovy evaluate コマンドを使用してスクリプトを実行する

      evaluate("PATH/FILENAME" as File) コマンドを実行します。

注記

また、スクリプトは、インタラクティブシェルを開いた後に行ごとに実行できます。

2.4.10. AdminShell GUI の起動

手順2.7 AdminShell GUI の起動

  1. adminshell ディレクトリーに移動する

    1. コマンドラインターミナルを開きます。
    2. /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/ に移動します。
  2. adminshell-console スクリプトを起動する

    ./adminshell-console.sh コマンドを実行します。
結果:

AdminShell GUI が表示されます。

注記

AdminShell GUI は、File Exit をクリックしていつでも終了できます。

2.4.11. AdminShell GUI でのスクリプトの保存

手順2.8 AdminShell GUI でのスクリプトの保存

  1. adminshell ディレクトリーに移動する

    1. コマンドラインターミナルを開きます。
    2. /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/ に移動します。
  2. スクリプトを入力する

    AdminShell GUI の上部のスクリプトウィンドウにスクリプトを入力します。スクリプトは、作業中に Script Run で実行してテストできます。
  3. スクリプトを保存する

    1. File Save As を選択します。
    2. スクリプトの場所とファイル名を選択し、Save をクリックします。

2.4.12. AdminShell GUI でのスクリプトの実行

手順2.9 AdminShell GUI でのスクリプトの実行

  1. AdminShell GUI を開く

    1. コマンドラインターミナルを開きます。
    2. /EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/ に移動します。
    3. ./adminshell-console.sh コマンドを実行します。
  2. スクリプトを準備する

    • 新しいスクリプトを入力する

      AdminShell GUI の上部のスクリプトウィンドウにスクリプトを入力します。
    • 保存されたスクリプトをロードする

      1. File Open を選択します。
      2. 必要なスクリプトファイルを見つけ、Open をクリックします。
        スクリプトが、AdminShell GUI の上部のスクリプトウィンドウに表示されます。
  3. スクリプトを実行する

    Script Run を選択します。

2.4.13. AdminShell 接続プロパティー

EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/connection.properties ファイルは、Boss Data Virtualization インスタンスに接続するために AdminShell が使用するデフォルトの接続プロパティーを提供します。
jdbc.user=user
jdbc.password=user
jdbc.url=jdbc:teiid:admin@mm://localhost:31000;

admin.host=localhost
admin.port=9999
admin.user=admin
admin.password=admin
Copy to Clipboard Toggle word wrap
入力パラメーターなしで connect() または connectionAsAdmin() を呼び出すと、このプロパティーファイルで定義された設定を使用して JBoss Data Virtualization に接続します。connect() は、jdbc の接頭辞を持つプロパティーを使用し、connectAsAdmin()admin の接頭辞を持つプロパティーを使用します。また、好きなプロパティーを使用して接続するために connect() メソッドまたは connectAsAdmin() メソッドにパラメーターを含めることもできます。
connect("URL", "USER", "PASSWORD")
Copy to Clipboard Toggle word wrap

警告

パスワードはクリアテキストで保存しないでください。上記の例はデモを目的としています。
ファイルにパスワードを保存する場合は、パスワードを安全にするのに必要な対策をとってください。必要な対策がとれない場合は、この機能を使用せずに、パスワードを対話的 (または他の安全な方法) に入力してください。

2.4.14. AdminShell での複数の接続

AdminShell を使用して、ユーザーは 1 つまたは複数の JBoss Data Virtualization インスタンスに対する複数の接続を管理できます。たとえば、ユーザーは開発サーバーに対する接続と統合サーバーに対する別の接続を同時に行えます。
新しい接続が行われるたびに、接続に一意な名前が割り当てられ、アクティブな接続になります。すでに接続がある場合は、一時停止されます (閉じられません)。
getConnectionName() メソッドは、アクティブな接続の名前を返します。この接続名は、次のコマンドを使用して変数 cName に割り当てることができます。
cName = getConnectionName();
Copy to Clipboard Toggle word wrap
現在の接続の名前は、接続を変更するために必要です。アクティブな接続を変更するには、使用する接続の名前 (または名前が割り当てられた変数) を指定して useConnection() コマンドを使用します。
useConnection(cName);
Copy to Clipboard Toggle word wrap

以下の例は、2 つの接続を使用して切り替える方法を示しています。

// 接続を作成する
connectAsAdmin();

//接続名を conn1 に割り当てる
conn1 = getConnectionName();

deploy("file.vdb")

// 2 番目の接続 (この時点ではアクティブな接続) を作成する 
connectAsAdmin();

//新しい接続名を conn2 に割り当てる
conn2 = getConnectionName();

deploy("file.vdb")

// アクティブな接続を conn1 に切り替える
useConnection(conn1);

// アクティブな接続 (conn1) を閉じる
disconnect();
Copy to Clipboard Toggle word wrap

2.4.15. サンプルスクリプト

例2.1 VDB のデプロイ

connectAsAdmin();
deploy("/path/to/<name>.vdb");

// デプロイメントを検証する
VDB vdb = getVDB("<name>", 1);
if (vdb != null){
     print (vdb.getName()+"."+vdb.getVersion()+" is deployed";
}
else {
     print ("<name>.vdb failed to deploy";
}
Copy to Clipboard Toggle word wrap

例2.2 データソースの作成 (Oracle)

connectAsAdmin();

// 最初に Oracle 用 JDBC jar ファイルをデプロイする 
deploy("ojdbc6.jar");

props = new Properties();
props.setProperty("connection-url","jdbc:oracle:thin:@<host>:1521:<sid>");
props.setProperty("user-name", "scott");
props.setProperty("password", "tiger");

createDataSource("oracleDS", "ojdbc6.jar", props);
Copy to Clipboard Toggle word wrap

例2.3 Teiid に対する SQL クエリの実行

sql = connect("jdbc:teiid:<vdb>@mm://<host>:31000", "user", "user");

// 選択する
sql.eachRow("select * from sys.tables") { println "${it}" }

// 更新、挿入、削除する
sql.execute(<sql command>);
Copy to Clipboard Toggle word wrap

2.4.16. AdminShell FAQ

問: なぜ adminhelp コマンドは GUI ツールで動作しないのですか?
問: 事前に作成されたスクリプトを利用できますか?
問: connectAsAdmin() と connect() の違いは何ですか?
問: getAdmin() は何を行うのですか? なぜこれが必要なのですか?
問: スクリプトを記述するために IDE サポートを利用できますか?
問: 他の環境で AdminShell メソッドを使用できますか?
問: デバッグサポートは利用できますか?
問:
なぜ adminhelp コマンドは GUI ツールで動作しないのですか?
答:
AdminShell GUI 環境では、Groovy によって直接サポートされない loadhelpadminhelp などのシェルコマンドが認識されません。GUI では、同等の機能形式を使用する必要があります (たとえば、adminhelp の代わりに adminHelp() を使用します)。
問:
事前に作成されたスクリプトを利用できますか?
答:
現時点では提供されていません。
問:
connectAsAdmin()connect() の違いは何ですか?
答:
connectAsAdmin() メソッドは、JBoss Data Virtualization の AdminAPI に対するコンテキスト接続を作成します。connect() メソッドは、JBoss Data Virtualization に対する SQL 呼び出しに使用する Groovy SQL オブジェクトの拡張を返します。
問:
getAdmin() は何を行うのですか? なぜこれが必要なのですか?
答:
getAdmin() メソッドは、connectAsAdmin() で接続したときに作成された現在のコンテキスト接続オブジェクトを返します。こおオブジェクトは、インターフェース org.teiid.adminapi.Admin を実装します。提供された AdminShell コマンドは、この API のラッパーです。上級ユーザーは、提供されたラッパーコマンドがニーズを満たさない場合にこの API を直接使用できます。
問:
スクリプトを記述するために IDE サポートを利用できますか?
答:
AdminShell GUI ツールは軽量な IDE です。Groovy には完全な IDE サポートが利用可能ですが、クラスパスとスクリプトインポートを手動で処理する必要があります。
問:
他の環境で AdminShell メソッドを使用できますか?
答:
AdminShell メソッド (名前付きコンテキスト接続、AdminAPI ラッパー、およびヘルプシステムを含む) は、Groovy に対する直接的な依存関係を持たないため、他のスクリプト言語で使用できます。
別の言語で AdminShell メソッドを使用するには、静的なメソッドと Admin クラスをスクリプトにインポートします。また、EAP_HOME/dataVirtualization/teiid-adminshell-VERSION/lib/teiid-VERSION.jarEAP_HOME/dataVirtualization/teiid-adminshell-VERSION/lib/teiid-adminshell-VERSION.jar がクラスパスで指定されていることを確認する必要があります。
以下のコード例は、Java、BeanShell、Groovy などで動作するインポートステートメントを示しています。
import static org.teiid.adminshell.AdminShell.*;
import org.teiid.adminapi.*;
Copy to Clipboard Toggle word wrap
問:
デバッグサポートは利用できますか?
答:
インタラクティブ AdminShell と GUI には現在の状態を検査するサポートが組み込まれています。ただし、ラインベースデバッグは本書の範囲外です。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat