ターミナルの概要
ターミナルは、ObjectScript コマンドを入力したり現在値を表示したりするためのシンプルなコマンド行インタフェースです。これは、学習、開発、およびデバッグのときに有用です。
ターミナルに [スパイ・モードがオン] というメッセージが示されたダイアログ・ボックスが表示された場合、これは、Alt-Shift-S が誤って押されたことを意味します。このモードを終了するには、Alt-Shift-S をもう一度押します。このモードは、一般的には使用されないため、ドキュメント化されていません。
さらに、ターミナルが応答しないように見える場合は、Ctrl-S が押されていて、自動スクロールが一時停止されている可能性があります。その場合は、Ctrl-Q を押して再開します。
ターミナル・プロセスを所有するユーザ・アカウント
プロセスは、Windows にログインしてターミナル・プログラム (iristerm.exe) を実行しているユーザによって所有されます。
また、すべての環境変数および共有ドライブ文字の指定は、ターミナルを実行しているユーザによって定義されます。
ターミナルの起動
ターミナルをインタラクティブに、またはバッチ・モードで使用できます。
ターミナルをインタラクティブに使用するには、次のいずれかを実行します。
-
ローカル・データベースを使用してターミナルで作業するには、[InterSystems ランチャー] を選択し、次に [ターミナル] を選択します。
-
リモート・サーバ上のデータベースを使用してターミナルで作業するには、[InterSystems ランチャー] を選択し、次に [リモート・システム・アクセス]→[ターミナル] を選択します。次にサーバ名を選択します。
または、[InterSystems ランチャー] を選択し、[リモート・システム・アクセス]→[Telnet] を選択します。ユーザ名とパスワードを使用してログオンします。
詳細および追加のオプションは、"システム管理ガイド" の “リモート・サーバへの接続” の章を参照してください。
-
ターミナルを UNIX から起動するには、UNIX のコマンド・ラインで iris terminal instancename コマンドを実行します。
いずれの場合でも、ターミナル・ウィンドウが表示されます。表示される既定のプロンプトは、現在作業しているネームスペースを示しています。次に例を示します。
USER>
バッチ・モードでは、実行するスクリプト・ファイルの名前をオペレーティング・システムのコマンド行に渡して、そこからターミナルを起動します。このモードは、一部のオペレーティング・システムでは使用できません。
背景
ターミナルは、InterSystems IRIS® アプリケーションとのやり取りを目的として設計されています。ターミナルでは、InterSystems IRIS との通信に、ローカルとネットワークという 2 種類の方法が使用されます。タイトル・バーには現在使用されている通信モードが示されます。
-
ターミナルがインストールされている InterSystems IRIS サーバとターミナルが通信するとき、ローカル通信が使用されます。この場合は、タイトル・バーに "InterSystems IRIS TRM:pid(instancename)" と表示されます。
-
pid は、ターミナルの通信先である InterSystems IRIS プロセスのプロセス ID です。
-
instancename は、プロセスが実行されている InterSystems IRIS インスタンスです。
-
-
ネットワーク通信では、TCP/IP を介した TELNET プロトコルを使用して、Windows InterSystems IRIS サーバまたは UNIX® ホストと通信します。この場合は、タイトル・バーに "(server NT — InterSystems IRIS Telnet)" と表示されます。server はリモート・サーバのホスト名です。
InterSystems IRIS の通信スタックは Winsock です。この通信モードから報告されるエラーには Winsock エラー・コードの名前が使用されます。例えば、WSAECONNREFUSED は、接続が拒否されたことを意味します。
一般的な使用
ターミナルでは、あらゆる ObjectScript コマンドを入力できます。ターミナルでは複数行にわたるコマンド入力がサポートされていないので、コマンド全体を 1 行に入力する必要があります。次に例を示します。
d ^myroutine
set dirname = "c:\test"
set obj=##class(Test.MyClass).%New()
write obj.Prop1
ただし、ターミナルで ZLOAD、ZINSERT、ZSAVE の各コマンドを実行するか、Tab キーの省略表現を使用することによって複数行のルーチンを定義できます。このようなルーチンは DO コマンドを使用して実行できます。
ターミナルでは、入力した各行の後に Use 0 コマンドが暗黙的に発行されます。これは、その他のデバイスへの直接出力に対して Use コマンドを発行した場合、このコマンドは基本的には無視されることを意味しています。
また、入力バッファのサイズが大きい場合は、Ctrl-C や Ctrl-S などの入力フローの停止を試みるキー操作に遅延が生じることがあります。この遅延はプロセッサと接続速度にも依存します。キーストロークに対応するための特別な処理が、ホスト入力よりも前に実行されています。
ターミナル・スクリプトも実行できます。ターミナル・スクリプトとは、ファイル・システムに存在する拡張子 .scr が付いたファイルです。ターミナルには、これらのスクリプトで使用できる小規模なコマンド・セットが用意されています。このコマンド・セットには、手動でコマンドを入力したかのようにターミナルに ObjectScript コマンドを送信するコマンドなどが含まれます。
ZWELCOME ルーチン
ターミナルが実行を開始すると、コードは、%SYS ネームスペースに ZWELCOME という名前のルーチンが存在するかどうかをチェックします。該当するルーチンが見つかると、ターミナルのログイン・シーケンスがある場合は、その直前にそのルーチンを呼び出します。このルーチンは、その名前が意図するように、カスタムな識別情報やようこそメッセージをユーザに表示する目的で使用されます。
%SYS ネームスペースに ZWELCOME をインストールするには、管理者特権と IRISSYS データベースへの書き込みアクセスが必要です。
ZWELCOME ルーチンは、空の $USERNAME および %ALL に設定した $ROLES を指定して、%SYS ネームスペースで実行します。使用の際は、ZWELCOME が失敗した場合でも影響が出ないようにする必要があります。また、このルーチンで $ROLES 変数を変更しないでください。
以下はその簡単な例です。
ZWELCOME() PUBLIC ;
; Example
Write !
Set ME = ##class(%SYS.ProcessQuery).%OpenId($JOB)
Write "Now: ", $ZDATETIME($HOROLOG, 3, 1), !
Write "Pid/JobNo: ", ME.Pid, "/", ME.JobNumber, !
Write "Priority: ", ME.Priority, !
Quit
実行開始ネームスペース
ターミナルを起動すると、特定のネームスペースで開きます。このオプションは、ユーザ定義の [開始ネームスペース] オプションで制御されます。"セキュリティ管理ガイド" の “ユーザ” を参照してください。
既定のプロンプトには、次のような現在のネームスペースが表示されます。
USER>
ネームスペースの変更
新しいネームスペースに変更するには、$namespace 変数を使用します。
USER>set $namespace="SAMPLES"
SAMPLES>
詳細は、"ObjectScript リファレンス" の "$namespace" のリファレンス・ページを参照してください。
ターミナル・プロンプト
ターミナルの既定のプロンプトは、現在作業しているネームスペースを示しています。トランザクション・レベルまたはプログラム・スタック・レベルを示すために、プロンプトに追加情報が表示される場合があります。SQL シェル、MDX シェル、またはオペレーティング・システム・シェルを使用する場合は、プロンプトが変更されます。既定のプロンプトをカスタマイズすることもできます。
トランザクション・レベル
トランザクション内で作業している場合、プロンプトには、トランザクション・レベルを示す接頭語が含まれます。接頭語の形式は TLn: です。n はトランザクション・レベルです。例えば、User ネームスペース内で作業している場合に、ObjectScript コマンド TSTART を入力すると、プロンプトは以下のように変更されます。
USER>tstart
TL1:USER>
ターミナルを終了すると、これによりトランザクションがロールバックされます。
プログラム・スタック・レベル
エラーが発生した場合、プロンプトには、プログラム・スタック・レベルを示す接尾語が含まれます。次に例を示します。
USER 5d3>
Quit コマンドを入力して、デバッグ・プロンプトを終了します。または、エラーをデバッグします。"ObjectScript の使用法" の “コマンド行ルーチンのデバッグ” の章を参照してください。
SQL シェルと MDX シェル
ターミナルでは、さまざまな方法でデータのクエリを実行できるシェルを使用することができます。これらのいずれかのシェルを使用する場合、プロンプトは以下の表に示すように変化します。
シェル | プロンプトの変化 | 関連項目 |
---|---|---|
SQL | [SQL] 接頭語が追加される | "InterSystems SQL の使用法" の “SQL シェル・インタフェースの使用法” |
TSQL | [SQL] 接頭語が追加される | "Transact-SQL (TSQL) 移行ガイド" の “概要” |
MDX | プロンプトが >> になる | "InterSystems IRIS Business Intelligence の概要" の “MDX シェル” |
オペレーティング・システム・シェル
ターミナルでは、既定のオペレーティング・システム・シェルを開くこともできます。シェルを開くには、! または $ と入力して、Enter キーを押します。これにより、ターミナルで既定のオペレーティング・システム・シェルが開き、プロンプトに作業ディレクトリが表示されます。次に例を示します。
USER>!
c:\intersystems\iris\mgr\user\>
Macintosh では、C シェルをこの方法で開くことはできません。アクセス拒否のエラーが表示されます。ただし、他のシェル (Bash、Bourne、または Korn) は使用できます。
シェルを終了するには、そのシェルに該当する quit コマンドか exit コマンドを使用します。
ターミナル・プロンプトのカスタマイズ
既定のターミナル・プロンプトをカスタマイズするには、管理ポータルを使用して、ターミナル・プロンプトを制御する構成オプション TerminalPrompt を設定します。このオプションは管理ポータルで使用できます。これを見つけるには、[システム管理]→[構成]→[追加設定]→[開始] を選択します。例えば、ターミナル・プロンプトには、使用するシステムの構成名を含めることができます。
ターミナルでの実行の中断
ターミナルを中断して、フォアグラウンドのすべての実行内容を停止するには、次のいずれかのキー組み合わせを使用します。
-
Ctrl-C — [Windowsエディットアクセラレータ] オプションが有効になっていない場合に使用します。
-
Ctrl-Shift-C — [Windowsエディットアクセラレータ] オプションが有効になっている場合に使用します。
[Windowsエディットアクセラレータ] オプションの詳細は、“ターミナルの外観および動作の制御” の章の “ユーザ設定” セクションを参照してください。
ターミナルの終了
ターミナルを終了するには、以下のいずれかの操作を実行します。
-
[ファイル]→[終了] を選択します
-
Alt-F4 を押します
-
HALT または H と入力します (大文字/小文字の区別なし)
これらのオプションにより、ターミナルの現行のコピーが終了し、開いているすべてのファイルが閉じられて、フォアグラウンドのすべての実行内容が停止されます。
このターミナルが起動時にサーバに接続されていた場合は、通信チャネルが閉じたときに自動的に終了します。
InterSystems ランチャーの [InterSystems Telnet] を使用してこのターミナルにアクセスした場合、ターミナルは通信チャネルが閉じたときに自動的に終了せず、アクティブ状態のままになるため、[接続] メニューを使用して再接続できます。