前へ | 次へ | 目次 | 索引 |
この例では,プリント・ジョブ 1347 のブロック・サイズを得るために F$GETQUI レキシカル関数が使用されています。F$GETQUI が戻す値は,プリント・ジョブ1347 に関連するファイルが占有している総ブロック・サイズです。
#2 |
---|
$ IF F$GETQUI("DISPLAY_QUEUE", "QUEUE_STOPPED", "VAX1_BATCH") .EQS. "TRUE" THEN GOTO 500 |
この例では,F$GETQUI レキシカル関数を使用して VAX1_BATCH キューが停止状態かどうかを調べています。VAX1_BATCH が停止状態であれば TRUE,そうでなければ FALSE が戻されます。 VAX1_BATCH キューがシステムに存在しない場合は,空文字列("") が戻されます。
#3 |
---|
! This command procedure shows all queues and the jobs in them. $ TEMP = F$GETQUI("") $ QLOOP: $ QNAME = F$GETQUI("DISPLAY_QUEUE","QUEUE_NAME","*") $ IF QNAME .EQS. "" THEN EXIT $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT "QUEUE: ", QNAME $ JLOOP: $ NOACCESS = F$GETQUI("DISPLAY_JOB","JOB_INACCESSIBLE",,"ALL_JOBS") $ IF NOACCESS .EQS. "TRUE" THEN GOTO JLOOP $ IF NOACCESS .EQS. "" THEN GOTO QLOOP $ JNAME = F$GETQUI("DISPLAY_JOB","JOB_NAME",,"FREEZE_CONTEXT") $ WRITE SYS$OUTPUT " JOB: ", JNAME $ GOTO JLOOP |
この例は,システムのすべてのキュー,およびユーザが READ アクセスを持つすべてのジョブを表示するコマンド・プロシージャです。外側のループでは,ワイルド・カードを使用してキューの表示が実行されます。キュー情報を得る時には,アクセス権の確認は必要ありません。これは,すべてのユーザは暗黙でキュー属性への READ アクセス権を持っているからです。キュー名にワイルドカード ("*") が指定されているため,キューのリスト (ワイルドカード・コンテキスト) が保持されます。
内側のループでは,すべてのジョブの情報を得るために,ワイルドカード表示キュー・モードからネストしたワイルドカードを入力しています。このループでは,ジョブに対しては暗黙の READ アクセス権は与えられていないので,ジョブ情報を得る事ができるかどうかを確認しなければなりません。ジョブに対する要求の中で FREEZE_CONTEXT キーワードを使用して,ワイルドカード・コンテキストを次のオブジェクトへ進めないないようにしています。ジョブ名が検索され表示されると,制御は次のジョブに移ります。この時には,FREEZE_CONTEXT キーワードは使用されていないので,コンテキストは次のジョブに進みます。このワイルドカード・キュー・コンテキストは,一致するキューがなくなるまで維持されます。一致するキューがなくなると,F$GETQUI は,一致するオブジェクトがこれ以上ないことを示すために,空文字列 ("") を戻します。
#4 |
---|
$ THIS_NODE = F$EDIT(F$GETSYI("SCSNODE"),"COLLAPSE") $ TEMP = F$GETQUI("CANCEL_OPERATION") $ SET NOON $LOOP: $ QUEUE = F$GETQUI("DISPLAY_QUEUE","QUEUE_NAME","*","WILDCARD") $ IF QUEUE .EQS. "" THEN GOTO ENDLOOP $ IF THIS_NODE .EQS.- F$GETQUI("DISPLAY_QUEUE","SCSNODE_NAME","*","WILDCARD,FREEZE_CONTEXT") $ THEN $ IF .NOT.- F$GETQUI("DISPLAY_QUEUE","QUEUE_AUTOSTART","*","WILDCARD,FREEZE_CONTEXT")- THEN START/QUEUE 'QUEUE' $ ENDIF $ GOTO LOOP $ENDLOOP: $ SET ON |
この例は,ローカル・クラスタ・ノードに関するすべてのキューを調べ,自動起動になっていないキューを開始させるコマンド・プロシージャです。
このコマンド・プロシージャは,ローカル・システムのノード名を得て, F$GETQUI コンテキストをクリアにします。キューが既に起動している場合は, START QUEUE コマンドの結果としてこのコマンド・プロシージャが強制終了されることのないように,エラー処理を無効にしておきます。
ループ内では,F$GETQUI レキシカル関数は,キュー・リストから次のキュー名を取り出します。次のキューがない場合は,ループを終了します。
次の IF は,ローカル・ノードでキューが実行するかをチェックしています。実行する場合は,次に,キューが自動起動になっているかをチェックします。ローカル・ノードでキューが実行しない場合は, START コマンドを使用してキューを起動させます。その後,ループを繰り返します。
最後のコマンドは,DCL エラー処理を以前の設定にリストアします。
#5 |
---|
$ IF p1.EQS."" THEN INQUIRE p1 "Queue name" $ TEMP = F$GETQUI("") $ QLOOP: $ QNAME = F$GETQUI("DISPLAY_QUEUE","QUEUE_NAME",p1,"WILDCARD") $ IF QNAME .EQS. "" THEN EXIT $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT "QUEUE: ", QNAME $ JLOOP: $ RETAINED = F$GETQUI("DISPLAY_JOB","JOB_RETAINED",,"ALL_JOBS") $ IF RETAINED .EQS. "" THEN GOTO QLOOP $ Entry = F$GETQUI("DISPLAY_JOB","ENTRY_NUMBER",,"FREEZE_CONTEXT,ALL_JOBS") $ WRITE SYS$OUTPUT " Entry: ''Entry' Retained: ''RETAINED'" $ IF RETAINED.EQS."TRUE" THEN DELETE/ENTRY='Entry' $ GOTO JLOOP |
このコマンド・プロシージャは,指定されたキューに保持されているすべてのエントリを削除します。ワイルドカードを使用することもできます。
#6 |
---|
$ WRITE SYS$OUTPUT F$GETQUI("DISPLAY_QUEUE","RAD","BATCHQ1") -1 |
この例は,RAD の値を返します。値 "-1" は,キューに RAD の値が割り当てられていないことを示します。
$GETSYI システム・サービスを呼び出し,ローカル・システム (複合アーキテクチャの OpenVMS Cluster の場合は,ローカル・ノード) に関する状態情報と識別情報を戻します。
F$GETSYI (項目 [,ノード名] [,クラスタ id])
項目
ローカル・ノード (使用しているシステムが OpenVMS Cluster の場合は, OpenVMS Cluster 内の他のノード)に関して報告される情報の種類を指定します。項目は,文字列式として指定します。また,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』に示すシステム・パラメータも指定することができます。
ノード名
情報が報告される OpenVMS Cluster のノードを指定します。ノードは,文字列式として指定します。ノード名に (*) や (%) のワイルド・カード文字は使用できません。クラスタ id
情報が報告される,クラスタ・ノード識別番号を指定します。クラスタ内のすべてのノードの情報を取得するには,F$CSID レキシカル関数を使用して各クラスタ・システム識別番号を取得し,F$GETSYI の クラスタ id 引数を使用して各ノードの情報を集めます。
F$GETSYI レキシカル関数は,$GETSYI システム・サービスを呼び出し,ローカル・システム (使用しているシステムがクラスタの一部である場合は,ローカル OpenVMS Cluster のノード) の状態および識別情報を戻します。 F$GETSYI 関数は,$GETSYI システム・サービスで指定できる項目の情報を戻します。 $GETSYI システム・サービスにつての詳細は,『OpenVMS System Services Reference Manual』を参照してください。ノード名 または クラスタ id 引数を指定すると,情報を得るノードを指定することができます。ただし,これらの引数を同時に指定することはできません。
F$GETSYI レキシカル関数に指定できる項目を 表 DCLI-10 に示します。
表 DCLI-10 F$GETSYI 項目 項目 データ・
タイプ戻される情報 ++ACTIVE_CPU_MASK 整数値 CPU インデックス付きのビットベクトルを表す値。特定のビット位置がセットされているとき,その CPU ID 値を持つプロセッサはインスタンスのアクティブ・セットのメンバであり, OpenVMS SMP スケジューリング活動に参加している。 ACTIVECPU_CNT 整数値 対称的マルチプロセッサ (SMP) システムの現在のブートでアクティブな CPU の数。 ARCHFLAG 整数値 システムのアーキテクチャ・フラグ。 ARCH_NAME 文字列 CPU アーキテクチャ名。 OpenVMS Alpha の場合は Alpha。OpenVMS VAX の場合は VAX。 ARCH_TYPE 整数値 CPU アーキテクチャのタイプ。VAX の場合は 1,Alpha の場合は 2 。 ++AVAIL_CPU_MASK 整数値 CPU インデックス付きのビットベクトルを表す値。特定のビット位置がセットされているとき,その CPU ID 値を持つプロセッサは,インスタンスの構成セットのメンバであり,パーティションによって所有され,発行元インスタンスによって制御される。 AVAILCPU_CNT 整数値 システムが承認した CPU 回数。 BOOTTIME 文字列 システムがブートされた時刻。 CHARACTER_EMULATED 文字列 文字列命令が CPU でエミュレートされた場合は TRUE,そうでない場合は FALSE を戻す。 ++CONSOLE_VERSION 文字列 コンソール・ファームウェア・バージョン。 CONTIG_GBLPAGES 整数値 未使用で連続したグローバル・ページの総数。 CLUSTER_EVOTES 整数値 クラスタ内のボート (投票数) の総数。 CLUSTER_FSYSID 文字列 クラスタ (基本ノード) 内でブートする最初のノードのシステム識別番号。 16 進数を含む文字列を戻す。 CLUSTER_FTIME 文字列 クラスタで最初のノードがブートされた時刻。 CLUSTER_MEMBER 文字列 ノードがローカル・クラスタのメンバである場合は TRUE,そうでない場合は FALSEを戻す。 CLUSTER_NODES 整数値 クラスタ内のノード総数を整数で表す。 CLUSTER_QUORUM 整数値 クラスタのクォーラム総数。 CLUSTER_VOTES 整数値 クラスタ内の投票総数。 ++COMMUNITY_ID 整数値 ハード・パーティション内の発行元インスタンスのハードウェア・コミュニティ ID。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 +CPU 整数値 VAX において, システム識別 (SID) 番号を表わすプロセッサ・タイプ。たとえば,1 は VAX-11/780,6 は VAX 8530, VAX 8550, VAX 8700,または VAX 8800 を表す。 ++CPU_AUTOSTART 整数値 コンマで区切られ,CPU ID のインデックスが付けられた 0 と 1 のリスト。値が 1 の項目は,特定の CPU が外部から現在のインスタンスに移行した場合,またはすでに所有されている状態で起動された場合に, OpenVMS アクティブ・セットになることを示す。 ++CPU_FAILOVER 整数値 コンマで区切られ, CPU ID のインデックスが付けられたパーティション ID 番号のリスト。現在のインスタンスがクラッシュした場合のプロセッサのデスティネーションを定義する。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 ++CPUCAP_MASK 文字列 コンマで区切られ,CPU ID のインデックスが付けられた 16 進値のリスト。それぞれの値は,ビットベクトルを表す。セットされているとき,対応するユーザ機能がその CPU で有効である。 ++CPUTYPE 整数値 Alpha において,ハードウェア再起動パラメータ・ブロック(HWRPB)に格納されるプロセッサ・タイプ。2 は DECchip 21064 プロセッサを表す。 CWLOGICALS 論理型 クラスタ単位の論理名データベースがその CPU で初期化されたことを示すフラグ。 DECIMAL_EMULATED 文字列 10 進数文字列の命令が CPU でエミュレートされている場合は TRUE,そうでない場合は FALSE を戻す。 DECNET_FULLNAME 文字列 DECnet Phase IV システムのノード名,または DECnet-Plus システムの完全なノード名。 DECNET_VERSION 文字列 ローカル・システムにインストールされている DECnet パッケージの特定のバージョンおよび ECO レベルに関する情報。この項目は,次の形式の 16 進数を含んだ文字列を戻す。
- バイト 0 = 顧客 ECO
- バイト 1 = DECnet ECO
- バイト 2 = DECnet フェーズ (Phase IV では 4,DECnet-Plus for OpenVMS では 5)
- バイト 3 = 予約済み
Phase IV と DECnet-Plus for OpenVMS を区別するには, DECnet バージョンを含んでいるバイト (バイト 2) を使用する。
バイト 0 とバイト 1 の詳細については,最新版の『 HP DECnet-Plus for OpenVMS Release Notes』を参照。
D_FLOAT_EMULATED 文字列 D 浮動少数点数の命令が CPU でエミュレートされている場合は TRUE,そうでない場合は FALSE を戻す。 ERRORLOGBUFFERS 整数値 エラー・ログ・バッファとして使用されるシステム・ページ数 (VAX の場合),またはページレット数 (Alpha の場合)。 F_FLOAT_EMULATED 文字列 F 浮動少数点数の命令が CPU でエミュレートされている場合は TRUE,そうでない場合は FALSE を戻す。 FREE_GBLPAGES 整数値 現在の未使用グローバル・ページ数。 FREE_GBLSECTS 整数値 現在の未使用グローバル・セクション・テーブル・エントリ数。 FREE_PAGES 整数値 未使用ページの総数。 G_FLOAT_EMULATED 文字列 G 浮動少数点数の命令が CPU でエミュレートされている場合は TRUE,そうでない場合は FALSE を戻す。 ++GALAXY_ID 整数値 128 ビットの Galaxy ID。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GALAXY_MEMBER 整数値 Galaxy 共有コミュニティのメンバの場合は 1 を,そうでない場合は 0。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GALAXY_PLATFORM 整数値 Galaxy プラットフォーム上で実行している場合は 1 を,そうでない場合は 0 を戻す。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GALAXY_SHMEMSIZE 整数値 共有メモリ・ページ数を戻す。現在のインスタンスが Galaxy のメンバでない場合,共有メモリは報告されない。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GH_RSRVPGCNT 整数値 Alpha において, システム・スタートアップ完了後, INSTALL ユーティリティで使用するために予約する粒度ヒントがカバーするページ数。 ++GLX_FORMATION 文字列 このインスタンスが属する Galaxy 構成の作成日時を示すタイムスタンプ文字列。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GLX_MAX_MEMBERS 整数値 現在の Galaxy 構成に参加できる最大インスタンス数。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GLX_MBR_MEMBER 整数値 64 バイトの整数。各 8 バイトは Galaxy メンバの番号を表し, 7 から 0 の並びになります。値は,インスタンスがメンバの場合は 1,メンバでない場合は 0 となります。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GLX_MBR_NAME 文字列 Galaxy メンバシップの中の既知のメンバを示す文字列。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++GLX_TERMINATION 文字列 このインスタンスが最後に属していた Galaxy 構成の終了日時を示すタイムスタンプ文字列。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++HP_ACTIVE_CPU_CNT 整数値 ファームウェア・コンソール・モードになっていないハード・パーティション内の CPU 数。OpenVMS の場合,これは CPU がハード・パーティション内のインスタンスの 1 つのアクティブ・セットに参加しているか,参加の途中であることを意味する。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 ++HP_ACTIVE_SP_CNT 整数値 ハード・パーティション内で実行中のアクティブなオペレーティング・システム・インスタンス数。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 ++HP_CONFIG_SBB_CNT 整数値 現在のハード・パーティション内の既存のシステム・ビルディング・ブロック数。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 ++HP_CONFIG_SP_CNT 整数値 現在のハード・パーティション内のソフト・パーティションの最大数。この数は,特定のソフト・パーティション内で実行中のオペレーティング・システム・インスタンスを表すわけではない。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 HW_MODEL 整数値 Alpha または VAX のモデル・タイプを示す整数値。整数値が 1023 より多きい場合は Alpha オペレーティング・システム,小さい場合は VAX オペレーティング・システムを表す。 HW_NAME 文字列 Alpha または VAX のモデル名。 ++ITB_ENTRIES 整数値 Alpha において, I ストリーム変換バッファ・エントリ数。これは,常駐コードに割り当てられる粒度ヒントをサポートする。 ++MAX_CPUS 整数値 このインスタンスによって認識される CPU の最大数。 MEMSIZE 整数値 システム構成でのメモリのページ数。 MODIFIED_PAGES 整数値 変更ページの総数。 MULTITHREAD 整数値 MULTITHREAD システム・パラメータの値。 NODENAME 文字列 ノード名 (ダブルコロンは含まない)。 NODE_AREA 整数値 ターゲット・ノードの DECnet 領域。 NODE_CSID 文字列 指定したノードの CSID を,16 進数を含む文字列で戻す。 CSID はシステム識別の形式。 NODE_EVOTES 整数値 ノードに割り当てた投票数。 NODE_HWVERS 文字列 指定したノードのハードウェア・バージョン。 NODE_NUMBER 整数値 指定したノードの DECnet 番号。 NODE_QUORUM 整数値 ノードが持つクォーラム。 NODE_SWINCARN 文字列 指定したノードのソフトウェア・インカーネーション番号。 16 進数を含む文字列で戻す。 NODE_SWTYPE 文字列 指定したノードが使用するオペレーティング・システム・ソフトウェアのタイプ。 NODE_SWVERS 文字列 指定したノードのソフトウェア・バージョン。 NODE_SYSTEMID 文字列 指定したノードのシステム識別番号。16 進数を含む文字列で戻される。 NODE_VOTES 整数値 ノードに割り当てた投票数。 PAGEFILE_FREE 整数値 現在インストールされているページング・ファイルの未使用ページ数。 PAGEFILE_PAGE 整数値 現在インストールされているページング・ファイルのページ数。 PAGE_SIZE 整数値 1 つの物理ページに含まれるバイト数。 ++PALCODE_VERSION 文字列 Alpha システムでの PALCODE (特権アーキテクチャ・ライブラリ) のバージョン。 ++PARTITION_ID 整数値 ソフト・パーティション ID。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 ++POTENTIAL_CPU_MASK 整数値 CPU インデックス付きのビットベクトルを表す値。特定のビット位置がセットされているとき,この CPU ID 値を持つプロセッサは,そのインスタンスの潜在的なセットのメンバとなる。潜在的なセット内の CPU は,このインスタンスによって所有された場合,このインスタンスの OpenVMS アクティブ・セットに積極的に参加する。このルールに従うには,CPU の特性が,そのインスタンス用に個別に定義されたハードウェアおよびソフトウェア互換性ルールに一致しなければならない。 ++POTENTIALCPU_CNT 整数値 このインスタンスの潜在的なセットのメンバであるハード・パーティション内の CPU 数。潜在的なセット内の CPU は,このインスタンスによって所有された場合,このインスタンスの OpenVMS アクティブ・セットに積極的に参加する。このルールに従うには,CPU の特性が,そのインスタンス用に個別に定義されたハードウェアおよびソフトウェア互換性ルールに一致しなければならない。 ++POWERED_CPU_MASK 整数値 CPU インデックス付きのビットベクトルを表す値。特定のビット位置がセットされているとき,この CPU ID 値を持つプロセッサは,そのインスタンスのパワード・セットのメンバとなる。これらの CPU は,ハード・パーティション内に物理的に存在し,操作のために起動される。 ++POWEREDCPU_CNT 整数値 物理的に起動しているハード・パーティション内の CPU 数。 ++PRESENT_CPU_MASK 整数値 CPU インデックス付きのビットベクトルを表す値。特定のビット位置がセットされているとき,この CPU ID 値を持つプロセッサは,そのインスタンスのプレゼント・セットのメンバとなる。これらの CPU は,ハード・パーティション内に物理的に存在する。プレゼント・セットのメンバであっても,パワード・セットのメンバとは限らない。 ++PRESENTCPU_CNT 整数値 ハードウェア・スロットに物理的に常駐するハード・パーティション内の CPU 数。 ++PRIMARY_CPUID 整数値 この OpenVMS インスタンスのプライマリ・プロセッサの CPU ID。 QUANTUM 整数値 他のプロセスが待ち状態の間,プロセスが受信ができる最大プロセッサ時間。 ++RAD_CPUS 整数値 RAD と CPU のペアのコンマ区切りのリスト。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++RAD_MEMSIZE 整数値 RAD と PAGES のペアのコンマ区切りのリスト。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++RAD_MAX_RADS 整数値 このプラットフォーム上で使用可能な RADS の数の最大値。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++RAD_SHMEMSIZE 整数値 RAD と PAGES のペアのコンマ区切りのリスト。 AlphaServer GS シリーズ・システム上でのみサポートされます。 ++REAL_CPUTYPE 整数値 ハードウェア・リスタート・パラメータ・ブロック (HWRPB) から抽出されたシステムの主 CPU の実際の CPU タイプ。 SCS_EXISTS 文字列 現在 OpenVMS ノードにシステム通信サブシステム(SCS)がロードされている場合は TRUE,そうでない場合は FALSE を戻す。 ++SCSNODE 文字列 Galaxy インスタンス名。パーティショニングをサポートする AlphaServer システム上でのみサポートされます。 SID 整数値 システム識別番号。 Alpha において,常に値が 256 である CPU 型フィールドを除いた,すべてのフィールドがゼロとなる値を戻す。 SWAPFILE_FREE 整数値 現在インストールされているスワッピング・ファイルの未使用のページ数。 SWAPFILE_PAGE 整数値 現在インストールされているスワッピング・ファイルのページ数。 SYSTEM_RIGHTS 文字列 ローカル・システムの権利リストの目次。リモート・システムを指定している場合は,空文字列("") が戻される。この項目は,コンマ(,) で区切られた識別子名のリストを戻す。 ++SYSTYPE 整数値 Alpha において, ファミリまたはシステム・ハードウェア・プラットフォーム。たとえば,2 は DEC 4000,3 は DEC 7000 または DEC 10000, 4 は DEC 3000 を表す。 TOTAL_PAGES 整数値 物理メモリメモリ・ページの総数。 USED_GBLPAGCNT 整数値 グローバル・ページ・テーブルで現在使用しているページ数。 USED_GBLPAGMAX 整数値 グローバル・ページ・テーブルでこれまでの最大使用ページ数。 USED_PAGES 整数値 使用ページの総数。 VECTOR_EMULATOR 論理値 VAX ベクタ命令エミュレータ機能 (VVIEF) の存在を示すフラグ。 VERSION 文字列 使用している OpenVMS のバージョン( 8 文字で残りを空白で埋める)。 VP_MASK 整数値 ベクタ共同プロセッサがあるプロセッサを示すマスク。 VP_NUMBER 整数値 システムのベクタ・プロセッサ数。
#1 |
---|
$ SYSID = F$GETSYI("SID") $ SHOW SYMBOL SYSID SYSID = 19923201 Hex = 01300101 Octal = 000401 |
前へ 次へ 目次 索引