このドキュメントでは ADANUC ユーティリティについて説明します。ADANUC は、データベースニュークリアスタスクです。
次のトピックについて説明します。
ニュークリアスパラメータは、Adabas ニュークリアス実行環境を定義するのに使用します。
ニュークリアスパラメータは、ニュークリアスの起動時に設定されます。
ニュークリアスパラメータには、次の情報を指定します。
使用されるデータベース
最大 Adabas バッファサイズおよびトランザクションとユーザーの非アクティブ状態の時間制限など、各種 Adabas セッションパラメータの設定
Adabas セッション時に記録するコマンドデータのタイプおよび数これらのパラメータはあくまでも統計的な情報の指定に使用するものであって、Adabas データプロテクションログにデータベース更新履歴を記録するのに使用するものではありません。
このユーティリティは単一機能ユーティリティです。
ニュークリアス起動中に ADANUC が STP055 や STP997 などのストップエラーで終了した場合、指定したパラメータでニュークリアスを起動するために必要なオペレーティングシステムのリソース(メモリなど)がおそらく十分でなかったためです。いくつかのニュークリアスパラメータ(NT や LBP など)の値を減らすことで、このストップエラーを回避することができます。
データベースの作成後またはリストア後、最初のニュークリアスセッションの開始時に、Adabas ニュークリアスは WORK コンテナのすべてのブロックを初期化します。WORK コンテナが大きい場合は、数分かかることがあります。WORK コンテナの初期化の終了後、データベースは使用可能になります。
比較的小さい Adabas バッファで Adabas コールを実行するユーザーの数が 20 以内である場合は、ニュークリアスパラメータのデフォルト値を使用できます。その他のニュークリアスパラメータ値は、どのような状況で使用する必要あるかについて、次に説明します。
Adabas コマンドの応答時間が一時的に長くなる場合(Adabas バッファフラッシュ中)、またはハードウェアには問題がないにもかかわらず非同期 I/O 中に I/O エラーが発生する場合は、BFIO_PARALLEL_LIMIT を設定することを考慮してください。
LOB 処理の場合など、大きい Adabas バッファで Adabas コマンドを実行している場合は、LAB と LBP の値を大きくすることを考慮してください。
マルチスレッドアプリケーションが Adabas コールを実行している場合は、NCL パラメータの値を大きくすることを考慮してください。
並行 Adabas セッションの数が 20 より大きい場合、NU パラメータの値を増やします。
ニュークリアスのクラッシュ後に自動再スタートの時間を短縮する必要がある場合、大きいバッファプールを使用しているのであれば、WRITE_LIMIT を小さい正の値に設定します。
Adabas コンテナの書き込み権限を無効にするか、OPTIONS=READ_ONLY を指定すると、データベースを読み取り専用モードで実行できます。データベースを読み取り専用モードで実行する際に、一時ワークスペースの場所(環境変数 TEMPLOCn
、または DBnnn.INI ファイルの TEMPORARY_LOCATION
エントリ)を明示的に指定していると、ディスクに一時ワークスペースが作成されます。詳細については、『Adabas Basics』の「一時ワークスペース」を参照してください。
前の Adabas セッションが SHUTDOWN または CANCEL によって正常に終了されなかった場合、Adabas は自動再スタートを実行します。ニュークリアスがクラッシュしたときにアクティブだったすべてのトランザクションがロールバックされ、不足しているすべてのデータベース更新が ASSO および DATA に書き込まれます。この目的のために、すべての更新処理が WORK コンテナに記録されています。また、すべての更新処理が NUCPLG ファイルに記録されます。これは、ディスク障害などにより 1 つ以上のデータベースコンテナが破損した場合に、データベースの最新の状態を回復するために必要です。ニュークリアスのクラッシュが発生した場合は、両方のログに同じ情報が含まれている必要があります。同じでないと、データベースに追加のトランザクションが含まれたり、後でリストア/リカバリを実行した場合にトランザクションが失われたりする可能性があります。これをチェックするには、自動再スタートが実行されるときに、PLOG ファイルが依然として同じ名前で使用可能になっている必要があります。PLOG ファイルの名前を変更していた場合、または別の場所に移動していた場合は、次の警告が表示されます。
%ADANUC-W-PLNOF, Last plog not found, so consistency check is not possible. New backup required.
この警告が表示された場合でも、データベースの整合性はまだ維持されていますが、後でリストア/リカバリを実行したときに、データベースの整合性が失われる可能性があります。リストア/リカバリのベースとして使用する新しいバックアップを作成すると、リストア/リカバリの整合性が再度保証されます。
UNIX プラットフォームでは、ADAOPR SHUTDOWN または ADAOPR CANCEL を使用してニュークリアスを正常にシャットダウンしていないと、Adabas ニュークリアスによって割り当てられた IPC リソースが削除されません。これらのリソースが削除された後にのみ、ニュークリアスを再起動できます。そのため、ニュークリアスは
showipc -k <dbid>
コマンドを実行します。重要:推奨されるユーザー "sag"、グループ "sag" で Adabas をインストールしなかった場合は、環境変数 SIPUSER または SIPGROUP(あるいはその両方)を設定する必要があります。詳細については、『管理マニュアル』の「showipc」を参照してください。Windows プラットフォームでは、使用されなくなった IPC リソースがオペレーティングシステムによって自動的に削除されます。
シーケンシャルファイル NUCPLG および NUCCLG は複数エクステントを持つことができます。複数のエクステントを持つシーケンシャルファイルの詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。
データセット | 環境 変数/ 論理名 |
記憶媒体 | 追加情報 |
---|---|---|---|
アソシエータ | ASSOx | ディスク | |
コマンドログ | NUCCLG | ディスク、テープ | ユーティリティマニュアル、 ADACLP |
データストレージ | DATAx | ディスク | |
DBnnn.INI | ディスク | Adabas 拡張オペレーションマニュアル | |
プロテクションログ | NUCPLG | ディスク | ユーティリティマニュアル、 ADAPLP |
コントロールステートメント | stdin/ SYS$INPUT |
ユーティリティマニュアル | |
ADANUC メッセージ | stdout/ SYS$OUTPUT |
メッセージおよびコード | |
WORK | WORK1 | ディスク | |
CSA ダンプ | ADA_CSA_DUMP | ディスク | Adabas CSA ダンプ (「ADAOPR RESPONSE_CHECK」を参照) |
SMP ダンプ | SMP_DUMPFILE | ディスク | SMP ダンプ |
一時ワークスペース (NUCTMPx、NUCSRTx) |
TEMPLOCx | ディスク | Adabas Basics マニュアル(「一時ワークスペース」を参照) |
注意:
次の表は、ニュークリアスが記録するチェックポイントを示しています。
機能 | 記録チェックポイント |
---|---|
ニュークリアス起動 | SYNC |
ニュークリアス終了 | SYNC |
次のコントロールパラメータを使用できます。
D [NO]AB32BIT D ADABAS_ACCESS = {ALL | GROUP} APU = (n1,n2,n3) D AR_CONFLICT = keyword BFIO_PARALLEL_LIMIT = number D [NO]BI D CLOGBMAX = number [K | M] D CLOGLAYOUT = [5 | 6] M DBID = number D LAB = number [K | M] D LABX = number [K | M] D LBP = number [K | M] D LOGGING = (keyword [,keyword]...) D LPXA = number D LWP = number [K | M] D NCL = number D NISNHQ = number D NT = number D NU = number D OPTIONS = (keyword[,keyword]...) D [NO]PLOG D READ_PARALLEL_LIMITS = (records,blocks,total) D TNAA = number D TNAE = number D TNAX = number D TT = number D UNBUFFERED = ALL | CLEAR | (keyword [, keyword [, keyword]]) USEREXITS = (number[,number]...) WCHARSET = <ICU encoding> D WRITE_LIMIT = number
注意:
このパラメータは、HP-UX にのみ関係します。
HP-UX では、32 ビットアプリケーションから共有メモリにアクセスする場合に、32 ビット共有メモリセグメントを作成する必要があります。そのため、32 ビットアプリケーションで Adabas コールを実行する場合は、クライアントプログラムと ADANUC の間での通信に必要なアタッチドバッファ用の共有メモリを、32 ビット共有メモリとして作成する必要があります。ただし、32 ビット共有メモリセグメントの合計サイズには制限があります。マシン上に複数のデータベースがある場合は、32 ビットの共有メモリ容量をそれ以上利用できないことが原因で、LABTB(LAB が大きすぎる)というメッセージが表示され、ADANUC を起動できないことがあります。32 ビットアプリケーションがない場合は、パラメータ NOAB32BIT を指定すれば、このエラーを回避できます。このようにすれば、アタッチドバッファ用の共有メモリは、64 ビット共有メモリとして作成されます。
デフォルトは AB32BIT で、共有メモリは 32 ビット共有メモリセグメントとして作成されます。
注意:
ニュークリアスを NOAB32BIT パラメータで起動し、Adabas コールを実行する 32 ビットアプリケーションを起動すると、アプリケーションは Adabas レスポンスコード 148(Adabas がアクティブではない)を受け取ります。
ADABAS_ACCESS = {ALL | GROUP}
ADABAS_ACCESS = ALL を指定する場合、すべてのユーザー が Adabas コールを実行できるようになります。
ADABAS_ACCESS = GROUP を指定している場合は、Adabas を起動するユーザーのグループ(例えば sag)に属しているユーザーのみが Adabas コールを実行できます。
デフォルトは、ALL です。
ADABAS_ACCESS パラメータの使用法の詳細については、『管理マニュアル』の「Adabas のセキュリティ機能」にある「UNIX のグループ概念の使用」を参照してください。
注意:
このパラメータは、UNIX 環境でローカル Adabas コールを実行する場合にのみ使用できます。
APU = (n1,n2,n3)
このパラメータは、Adabas セッション用に確立される Adabas 処理ユニットの数とレイアウトを指定します。
Adabas 処理ユニットは、特に NUMA アーキテクチャのコンテキストで、Adabas コマンドの並列実行を最適化します。Adabas 処理ユニットは、レシーバースレッドとワーカースレッドの論理的な集合と、専用のコマンドキューで構成されています。レシーバースレッドは、受信したユーザー要求を取得して、コマンドキューに入れます。一方、ワーカースレッドは、コマンドキュー内のコマンドを処理します。
各 Adabas 処理ユニットには、1 つのコマンドキューがあり、少なくとも 1 つのレシーバースレッドと 1 つのワーカースレッドが必要です。
注意:
制御パラメータ NT および APU の両方が指定されている場合、パラメータ NT の設定は無視されます。Adabas ニュークリアスは、APU に定義された設定を使用してセットアップされます。
APU=(4,4,2)
これは、それぞれが 4 つのワーカースレッドと 2 つのレシーバースレッドを持つ、4 つの Adabas 処理ユニットを備えた Adabas ニュークリアスを定義します。この値は、合計 16 個のワーカースレッドと 8 つのレシーバースレッドがあることを意味しています。
APU=(8,2,1)
これは、それぞれが 2 つのワーカースレッドと 1 つのレシーバースレッドを持つ、8 つの Adabas 処理ユニットを備えた Adabas ニュークリアスを定義します。この値は、合計 16 個のワーカースレッドと 8 つのレシーバースレッドがあることを意味しています。
APU=(1,6,2)
これは、それぞれが 6 つのワーカースレッドと 2 つのレシーバースレッドを持つ、1 つの Adabas 処理ユニットを備えた Adabas ニュークリアスを定義します。この値は、合計 6 個のワーカースレッドと 2 つのレシーバースレッドがあることを意味しています。Adabas 処理ユニットを 1 つだけ定義すると、NT パラメータのみを使用して定義した実行時環境に類似した実行時環境になります。
AR_CONFLICT = keyword
このパラメータは、バッファフラッシュ時に最終システムが破壊され、それを再スタートによって検出された場合の対処方法を指定します。次のキーワードを使用できます。
キーワード | 説明 |
---|---|
ABORT | 再起動しません。 |
CONTINUE | システムは再起動を試みます。 |
AR_CONFLICT=ABORT に指定しておくことをお勧めします。バッファフラッシュの割り込みでニュークリアスが起動しない場合だけ、一時的に AR_CONFLICT=CONTINUE を設定する必要があります。
注意:
AR_CONFLICT=CONTINUE で再スタートした場合、不整合が発生する可能性があることに注意してください。この場合、ADAINV VERIFY 機能で整合性のチェックを行ってください。
デフォルトは ABORT です。
BFIO_PARALLEL_LIMIT = number
このパラメータは、バッファフラッシュによって並行に行われる I/O 要求数の上限を指定するのに使用し、他のスレッドから同時に発生した I/O のうち、処理の早いものを先に処理することを可能にします。例えば、大規模なバッファフラッシュが発生した場合、I/O キューがビジーになり、他の I/O(バッファプール読み取り I/O や WORK I/O など)が長時間キューに入れられ、コマンドスループットが遅くなり、バッファフラッシュがアクティブな場合はアプリケーションが停止したまま動かなくなる可能性もあります。
BFIO_PARALLEL_LIMIT を指定した場合、バッファフラッシュは指定された数の I/O を設定し、次のパケットを発行する前にこれらのフラッシュの処理が完了するまで待機します。"number" に指定する最大値は、UNIX カーネルパラメータ AIO_LISTIO_MAX など、オペレーティングシステムによって決まります。値 0 を指定すると、許容されている最大値を指定したものとみなされます。デフォルト値は 50 です。
注意:
BFIO_PARALLEL_LIMIT の値が高すぎる場合(または 0 の場合)、非同期 I/O の実行中に I/O エラー(ADRERR というユーティリティエラーメッセージ)が発生することがあります。この現象が発生するのは、オペレーティングシステム内で非同期
I/O に利用可能なメモリがなくなったためです。必要なメモリは、少なくともデータベースに書き込まれるブロックサイズに多少の追加スペースを加えた容量だと考えられます。この ADRERR エラーが発生しないようにするための BFIO_PARALLEL_LIMIT
の最大値は、オペレーティングシステムの構成、および同一マシンでアクティブになっているその他のプロセスによって決まります。BFIO_PARALLEL_LIMIT の値としては 50 が適しているようですが、それでも ADRERR エラーが発生する場合は、オペレーティングシステム構成を確認してください。
adanuc: bfio_parallel_limit = 20
1 回のバッファフラッシュに対し、並行に行われる I/O 要求が 20 まで許可されます。
adanuc: bfio_parallel_limit = 0
並行バッファフラッシュで使用する I/O 数には制限がありません。
[NO]BI
このパラメータは、ビフォーイメージを PLOG に書き込む(BI)か書き込まない(NOBI)かを指定するのに使用できます。
PLOG 上のビフォーイメージは、(正しい PLOG が使われているかなどの)データの整合性を検証するために再生成時に使用されます。NOBI を設定すると、PLOG は小さくなり、整合性の検証は行われません。
デフォルトは BI です。
NOBI を指定すると、ADAREC REGENERATE 機能を使用するときに、有効な整合性のチェック量が減少します。詳細については、「ADAREC」を参照してください。
CLOGBMAX = number[K | M]
このパラメータは、コマンドログに記録される Adabas バッファの最大長を指定します。Adabas バッファが指定値より大きくなると、バッファは切り捨てられてコマンドログに記録されます。0 を指定した場合は、バッファ全体が常に記録されます。
デフォルト値は 0 です(バッファ全体がログされる)。
adanuc: clogbmax = 4k
Adabas バッファのロギングは、それぞれのバッファの最初の 4 キロバイトに制限されます。
CLOGLAYOUT = [5|6]
CLOGLAYOUT=5 を指定すると、コマンドロギングを有効にしたとき、コマンドログは Adabas バージョン 5 と同じレイアウトになります。このレイアウトでは ACBX インターフェイスがサポートされないので、ACBX コールの場合には、従来の ACB インタフェイスでも使用可能な情報のサブセットのみが記録されます。コマンドログは、Adabas の旧バージョンにすでに存在していた ADACLP ユーティリティで評価できます。
CLOGLAYOUT=6 を指定した場合、Adabas バージョン 6 でサポートされる新しいレイアウトでコマンドログが生成されます。コマンドログを評価するプログラム例 prilogc
が提供されています。詳細については「付録 B」を参照してください。
デフォルト値は 5 です。
DBID = number
このパラメータは必須であり、使用対象データベースを選択するものです。"number" には 1 から 255 までの範囲内の数字を指定することができます。
adanuc: dbid = 2
データベース 2 が使用されます。
LAB = number[K | M]
Adabas セッション中に使用されるアタッチドバッファエリアのサイズを指定します。アタッチドバッファエリアは、コマンド実行中、ユーザーバッファの割り当てに使用されます。
Adabas は、アタッチドバッファエリアに割り当てるため、指定された値を 32 キロバイトの倍数に切り上げます。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
最小値は 1 メガバイトで、デフォルト値は 1 メガバイトです。しかし、指定された値が NCL パラメータの値(キロバイト単位)より小さい場合、LAB の値は自動的にその値に拡張されます。
注意:
LABX = number[K | M]
このパラメータは、LOB 処理、または大型の Adabas バッファエリアを使用するその他の Adabas コールに使用するアタッチドバッファ拡張エリアのサイズを指定します。通常のアタッチドバッファは、ユーザーの Adabas セッション全体で割り当てられたまま残りますが、アタッチドバッファ拡張は、64 KB 以上の大型のアタッチドバッファスペースを必要とするそれぞれの Adabas コールの前に割り当てられ、コールの最後に再び解放されます。
アタッチドバッファ拡張エリアが導入されたのは、通常のアタッチドバッファエリアに大型バッファを保存する場合、フラグメントのために非常に大きいスペースが必要になるためです。
Adabas は、アタッチドバッファエリアに割り当てるため、指定された値を 32 キロバイトの倍数に切り上げます。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
最小値は 1 メガバイト、デフォルト値は 20 メガバイトです。
LBP = number[K | M]
このパラメータは、セッション時の Adabas バッファプールの大きさをバイト単位で指定します。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
最小値は 32 メガバイト、デフォルト値は 100 メガバイトです。
注意:
バッファプールの実際のサイズは、NT パラメータに応じて異なります。LBP に指定されたサイズが NT * 2M 未満の場合、自動的に NT * 2M に増やされます。
Adabas でバッファプールを使用する理由は次のとおりです。
同じデータベースブロックが複数回アクセスされる場合、そのブロックを再び読み取るための物理 I/O を回避できます。
データベースを更新するコマンドは、すべての対応するデータベースブロックがディスクに書き込まれる前に終了できます。
バッファプールが小さすぎる場合は、十分なバッファプールサイズで同じデータベース操作を実行するときよりも I/O が多くなります。場合によっては、Adabas が Adabas コマンドを正常に処理できないことがあります。この場合、コマンドにはレスポンスコード 162(バッファプールが小さすぎる)が返されます。
特に LOB を処理する場合は、バッファプールのサイズを大きくしてください。その他多くのデータベースブロックを削除せずに、バッファプールに LOB を配置できるようにする必要があります。一方、バッファプール I/O がオペレーティングシステムのページング I/O で置き換わることに利点はないので、バッファプールを大きくしすぎないでください。
バッファプールの最適なサイズを探すには、ADAOPR パラメータ DISPLAY=BP_STATISTICS を使用できます。
adanuc: lbp=32m
Adabas バッファプールに対して 32 メガバイトが割り当てられます。
LOGGING = (keyword [,keyword]...)
このパラメータは、キーワードリスト内で定義として、バッファのロギングを指定します。
キーワードリストに指定できるキーワードは、次のとおりです。
キーワード | 説明 |
---|---|
CB | Adabas コントロールブロックを記録します。 |
FB | フォーマットバッファログを記録します。 |
RB | レコードバッファを記録します。 |
SB | サーチバッファを記録します。 |
VB | バリューバッファを記録します。 |
IB | ISN バッファを記録します。 |
ABD | Adabas バッファ記述を記録します。 |
IO | 入出力状況を記録します。 |
OFF | ロギングは実行されません。 |
オペレータコマンドを使用して、セッション実行中にロギングパラメータを指定することもできます。詳細については、「ADAOPR」のセクションを参照してください。
adanuc: logging=(cb)
現在の Adabas セッションに対してコマンドロギングが実行され、全 Adabas コントロールブロックが記録されます。
LPXA = number
このパラメータは、OPTIONS=XA が指定されている場合に、XA 環境の Adabas WORK のデータプロテクション情報用に予約されたブロック数を指定します。これらのブロックを使用して、XA 環境で実行しているトランザクションのうち、ニュークリアスのシャットダウン時に保留状態になっているか、または長時間保留状態(準備されているがまだコミットしていない)のもののプロテクション情報を保存します。それぞれこのようなトランザクションは、これらの最低 1 ブロックを使用します。このエリアに空きブロックが存在しない場合、Adabas はこのようなトランザクションをヒューリスティックにコミットします。
最小値は 1 で、デフォルト値は 10 です。
LWP = number[K | M]
このパラメータは、Adabas ワークプールのサイズを指定します。Adabas ワークプールは、Adabas ニュークリアスセッション用に使用される、メモリ内のワークエリアです。
Adabas ワークプールは、次の情報を格納するために使用されます。
ディスクリプタバリューテーブル(DVT)
コマンド実行時の WORK I/O エリア
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
デフォルト値は 16 M、最小値は 500 K、最大値は 4000 M です。
adanuc: lwp=750k
Adabas ワークプールの大きさは、750 K バイトです。
NCL = number
このパラメータは、データベースにローカルにアクセスしているクライアントスレッドの数を指定します。通常、クライアントスレッドの数は Adabas ユーザーセッションの数(= ユーザーキューエレメントの数)と同じです。これは NU パラメータによって制限されます。ただし、マルチスレッドアプリケーションの場合、同じ Adabas セッションに複数のスレッドがアクセスできるので、クライアントスレッドの数が多くなる可能性があります。一方、同じプロセスが異なるユーザー用に異なる Adabas ユーザーセッションを使用するアプリケーションサーバーの場合、クライアントスレッドの数が Adabas ユーザーセッションの数よりも少なくなることがあります。
最小値は 2 です。デフォルト値は NU パラメータの値になりますが、最低でも 50 になります。このパラメータでは最大値が決まっておらず、オペレーティングシステムで使用できる IPC リソースのみによって制限されます(詳細については、「System V リソースの増加(AIX 以外)」を参照してください)。
Net-Work バージョン 7 は、データベースにアクセスするために、いくつかのスレッドを使用することに注意してください。詳細については、Net-Work のドキュメントを参照してください。
注意:
NISNHQ = number
このパラメータは、単一のユーザーによっていつでもホールド状態にできる最大レコード数を指定します。
ユーザーが認められた件数を超えてレコードをホールド状態にしようとすると、ホールドキューにスペースがあっても、ゼロ以外のレスポンスコードが返されます。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
最小値は 0(0 は無制限であることを意味します)で、デフォルト値は 0 です。
adanuc: nisnhq=50
単一ユーザーがホールド状態にできる最大レコード件数は 50 件です。
NT = number
このパラメータは、Adabas セッションに対して確立できるスレッドの数を指定します。
Adabas コマンドごとに 1 スレッドへの割り当てが行われます。スレッドは該当コマンドの処理が完了すると解放されます。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
最小値は 1、最大値は 100 で、デフォルト値は 6 です。
注意:
adanuc: nt=8
8 スレッドがセッションに対して確立されます。
NU = number
このパラメータは、Adabas セッションに対して確立されるユーザーキューエレメントの数を指定するものです。
アクティブな Adabas ユーザーごとに 1 つのユーザーキューエレメントが割り当てられます。ユーザーキューエレメントは、ユーザーが OP コマンドを発行するか、または最初の Adabas コマンドが発行されると割り当てられます。またユーザーキューエレメントは、ユーザーが CL コマンドを発行するか、タイムアウトによって削除された場合に解放されます。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
最小値は 2、デフォルト値は 20、最大値は 99999 です。
adanuc: nu=100
Adabas ユーザーキューは 100 個のエレメントから構成されます。
注意:
NU パラメータは 2 つの異なる目的のために使用されます。
ユーザーキューエントリの数
コミュニケーションブロックの数
シングルスレッドアプリケーションの場合、必要となるコミュニケーションブロックの数は、ユーザーキューエレメントの数より多くありません。しかし、マルチスレッドアプリケーションの場合、Adabas コールを実行するアプリケーションのスレッドごとに 1 つのコミュニケーションブロックが必要となります。したがって、必要となる NU パラメータの値は、Adabas ユーザーの数よりはるかに大きくなることもあります。
OPTIONS = (keyword[,keyword]...)
このパラメータは、ニュークリアスの起動モードの定義に使用します。
次のキーワードが使用できます。
キーワード | 説明 |
---|---|
AUTO_EXPAND |
AUTO_EXPAND を選択した場合、データベースは、既存コンテナエクステントを拡張します。または、既存の Adabas ファイルを拡張したり、新規 Adabas ファイルを追加したりするための空きスペースがない場合は新規コンテナエクステントを作成します。詳細については、『Adabas Basics』の「コンテナファイル」セクションを参照してください。 |
AUTORESTART_ONLY |
AUTORESTART_ONLY キーワードは、ニュークリアスの起動シーケンスが完了した直後にニュークリアスをシャットダウンします。自動再スタートが保留状態の場合、自動再スタートが実行されます。ユーザーコマンドやユーティリティコールを実行しようとしても、ニュークリアスに拒否されます。 |
FAULT_TOLERANT_AR |
FAULT_TOLERANT_AR を選択すると、自動再スタートの実行中に Adabas エラーが発生した場合のニュークリアスの動作を制御できます。ファイルにエラーが発生した場合、詳細なエントリがニュークリアスログに作成されますが、自動再スタートは継続します。自動再スタートの完了時に、DBA は ADABCK RESTORE および ADAREC REGENERATE を関連するファイルに使用して、ファイルをリストアし、再生成することができます。ただし、ファイルのインデックスにエラーが発生したときには、ADAINV の REINVERT パラメータを使用してファイルのインデックスを再構築するだけで十分です。FAULT_TOLERANT_AR を選択しないと、エラーが検出されたとき、自動再スタートは異常終了するため、データベースに不整合が発生する可能性があります。 |
LOCAL_UTILITIES |
LOCAL_UTILITIES を選択すると、ADANUC はすべてのリモートユーティリティコールを排除します。つまり、Adabas ユーティリティはリモートノードからネットワーク経由で実行できないということです。オペレーティング環境でセキュリティが重要であれば、この設定をお勧めします。 LOCAL_UTILITIES および UTILITIES_ONLY は、データベースを終了させることなく、動的に有効/無効を切り替えできます(詳細については「ADAOPR」を参照)。 |
OPEN_REQUIRED |
OPEN_REQUIRED を選択する場合、オープン(OP)コマンドをユーザーセッションの第 1 番目に発行する必要があります。 アプリケーションサーバーから Adabas を呼び出すとき、Entire Net-Work を使用するときに lnk_set_adabas_id を使用する場合、このオプションを指定する必要があります。また、このようなケースで、このオプションを指定しない場合、ADANUC を再起動した後のトランザクションの完全性が保証されなくなります。 |
READONLY |
READONLY オプションを指定すると、ADANUC は読み取り専用モードで実行します。詳細については、『管理マニュアル』を参照してください。 |
TRUNCATION |
TRUNCATION キーワードは、英数字フィールドの桁落ちを制御します。このキーワードを設定すると、必要に応じて英数字フィールドの桁が落とされますが、返されるレスポンスコードは 0 になります。このキーワードを設定しない場合には、桁落ちが発生するとレスポンスコード 55 が返されます。 |
UTILITIES_ONLY |
UTILITIES_ONLY を選択すると、データベースのファイルに DBA 排他制御がかかり、ユーティリティ以外へのすべてのコールは拒否されます。ただし、この制限は新規ユーザーにのみ適用され、OPTIONS=UTILITIES_ONLY を指定したときにすでにアクティブであったユーザーは通常の処理を続行できます。ファイルまたはデータベース全体に対する排他的なユーティリティ制御が必要な場合は、ADAOPR の LOCK 機能を使用してください。 LOCAL_UTILITIES および UTILITIES_ONLY は、データベースを終了させることなく、動的に有効/無効を切り替えできます(詳細についてはこのマニュアルの「ADAOPR」を参照)。 |
XA |
キーワード XA は、サーバーが X/Open XA 仕様に従って、分散トランザクション処理をサポートすることを示します。Adabas XA インターフェイスがアプリケーションによって使用される場合、OPTION=XA を使用する必要があります。詳細については、「XA のサポート」を参照してください。 |
デフォルトでは、パラメータの値は設定されていません。
adanuc: options = utilities_only
ユーティリティ以外へのコールはすべて拒否され、DBA はデータベースファイルを排他的に制御できます。
[NO]PLOG
PLOG は、どのプロテクションログを記録するかを指定します。
ディスクが物理的に損傷したときに、プロテクションログがなければ、そのデータベースは再生成できません。この場合、そのデータベースは最新のデータベースダンプを使用して修復しなければなりません。しかし、最新のダンプの後に作成された更新内容は、修復後にすべて消失します。
PLOG がデフォルトです。
READ_PARALLEL_LIMITS = (records,blocks,total)
シーケンシャルコマンドの場合、Adabas は次のレコードに必要なデータベースブロックを前もって並行して読み取り、パフォーマンスを上げようとします。したがって、ディスクのストライプ化のメリットが活き、I/O のシーケンスも最適化されます。物理 I/O レートが高い場合にのみ、大幅なパフォーマンスの向上が期待できます。READ_PARALLEL_LIMITS パラメータによってパフォーマンスを改善できる一般的なケースとして、大容量ファイル全体(プログラムの起動時にバッファプールにない多数のデータベースブロックが含まれています)を読み込むバッチプログラムの実行が挙げられます。しかし、このようにデータベースブロックをプリフェッチすると、パフォーマンスに悪影響を及ぼすこともあります。
後続のレコードに必要なブロックを決めながら処理を行うことになるため、その処理の分だけ余計に CPU 時間がかかることになります。しかし、すべてのブロックがバッファプールにすでに格納されているのであれば、このような処理を行う意味がありません。
コマンドシーケンスの後続のレコードを読み取らないのであれば、このコマンドシーケンスのブロックの読み取りにかかるオーバーヘッドは本来、不要なものです。
ブロックの I/O を初期化するときのブロック数が多すぎると、並行して実行されるコマンドが他にもある場合には、そのコマンドに必要な I/O が大幅に遅れることがあります。
READ_PARALLEL_LIMITS パラメータでは、先読み動作を制御できます。3 つの数値を指定することができますが、その意味は次のとおりです。
- records
コマンドシーケンスの次から処理されるレコードの最大数。バッファプールにまだ入っていないブロックがあるかどうかチェックされます。指定できる最大値は 65,535 です。
- blocks
1 つのコマンドシーケンスで先読みするブロックの最大数。ブロックに指定する数値は、"records" に指定する数値以下にする必要があります。最大値はオペレーティングシステムによって異なります。
- total
データベース全体で同時に先読みするブロックの最大合計数。"total" に指定する数値は、"blocks" に指定する数値以上にする必要があります。最大値はオペレーティングシステムごとに異なります。
デフォルトは (0,0,0) であり、先読みは実行されません。
注意:total
に指定した数値が高すぎる場合は、非同期 IO 中に I/O エラー(ADRERR というユーティリティエラーメッセージ)が発生することがあります。この現象が発生するのは、オペレーティングシステム内で非同期 I/O に利用可能なメモリがなくなったためです。必要なメモリは、少なくともデータベースに書き込まれるブロックサイズに多少の追加スペースを加えた容量だと考えられます。この
ADRERR エラーが発生しない total
の最大値は、オペレーティングシステムの構成、および同一マシンでアクティブになっているその他のプロセスによって決まります。
adanuc: read_parallel_limits = (100,20,50)
シーケンシャルコマンドを処理するとき、コマンドシーケンスの次の 100 レコードまでが、まだバッファプールに入っていないブロックが必要な分だけあるかどうかがチェックされます。読み取りの対象となるブロックの検索は、20 ブロックが見つかったとき、または見つかったブロックの数および別のコマンドで現在読み取られているブロックの数の合計が 50 になったときに停止します。次に、見つかったブロックを対象に読み取り I/O が始まります。
TNAA = number
このパラメータは、アクセスオンリーユーザーが Adabas コマンドを発行しないでアクティブでいられる最大経過時間(秒単位で)を指定するものです。この値は、ADAOPR ユーティリティによってダイナミックに変更されることがあります。
この値は、OP コマンドを使用して上書きできます。詳細については、『コマンドリファレンス』の「OP コマンド」を参照してください。
タイムアウト条件を持つテーブルについては、『コマンドリファレンス』の「タイムリミット」を参照してください。
このパラメータに指定する数値は概算値であるという点に注意してください。実際の時間は、この値から最大10秒異なっていることがあります。
最小値は 20、デフォルト値は 900、最大値は 2592000 です。
adanuc: tnaa=180
アクセスオンリーユーザーの非アクティブ時間制限は 180 秒となります。
TNAE = number
このパラメータは、ET ロジックユーザーが Adabas コマンドを発行しなくてもアクティブでいられる最大経過時間(秒単位)を指定するものです。この値は、ADAOPR ユーティリティによってダイナミックに変更されることがあります。
この値は、OP コマンドを使用して上書きできます。詳細については、『コマンドリファレンス』の「OP コマンド」を参照してください。
タイムアウト条件を持つテーブルについては、『コマンドリファレンス』の「タイムリミット」を参照してください。
このパラメータに指定する数値は概算値であるという点に注意してください。実際の時間は、この値から最大10秒異なっていることがあります。
最小値は 20、デフォルト値は 900、最大値は 2592000 です。
adanuc: tnae=180
ET ロジックユーザーの非アクティブ時間制限は 180 秒となります。
TNAX = number
このパラメータは、ET ロジックを使用していない排他更新ユーザーが Adabas コマンドを発行しなくても、アクティブでいられる最大経過時間(秒単位)を指定するものです。この値は、ADAOPR ユーティリティによってダイナミックに変更されることがあります。
この値は、OP コマンドを使用して上書きできます。詳細については、『コマンドリファレンス』の「OP コマンド」を参照してください。
タイムアウト条件を持つテーブルについては、『コマンドリファレンス』の「タイムリミット」を参照してください。
このパラメータに指定する数値は概算値であるという点に注意してください。実際の時間は、この値から最大10秒異なっていることがあります。
最小値は 20、デフォルト値は 900、最大値は 2592000 です。
adanuc: tnax=180
排他更新ユーザーの非アクティブ時間制限は 180 秒となります。
TT = number
このパラメータは、ET ロジックユーザーによって発行される論理トランザクションに許可される最大経過時間(秒単位)を指定するものです。この値は、ADAOPR ユーティリティによってダイナミックに変更されることがあります。
この値は、OP コマンドを使用して上書きできます。詳細については、『コマンドリファレンス』の「OP コマンド」を参照してください。
論理トランザクションに対する時間の測定は、レコードをホールド状態に置いた最初のコマンドが発行されたときに開始され、ET、BT、または CL コマンドが発行されると終了します。この時間制限を超えると、Adabas は次の処置を行います。
トランザクション中のデータベースへの更新はすべてバックアウトされます。
トランザクション中にホールドされたレコードはすべて解放されます。
該当ユーザーのコマンド ID がすべて解放されます。
ユーザーが次に発行するコールで、レスポンスコード 9 が返されます。
この時間制限は、非 ET ロジックユーザーには適用されません。このパラメータに指定した値は、直接 Adabas WORK データセットの必要サイズに影響を与えます。
このパラメータの上限は、ADAOPR の DISPLAY パラメータを使用して表示できます。
このパラメータに指定する数値は概算値であるという点に注意してください。実際の時間は、この値から最大10秒異なっていることがあります。
最小値は 20、デフォルト値は 300、最大値は 2592000 です。
adanuc: tt=50
ET ロジックユーザーに対するトランザクションタイムリミットは 50 秒となります。
UNBUFFERED = ALL | CLEAR | (keyword [, keyword [, keyword]])
このパラメータは、プラットフォームが UNIX プラットフォームであり、データベースコンテナまたはプロテクションログがファイルシステムに保存されている場合にだけ使用可能なパラメータです。一般的には、書き込み I/O はファイルシステムによってバッファリングされます。しかし、書き込み I/O に相当する OPEN コールに O_DSYNC オプションが指定されていると、書き込み I/O 処理はバッファリングされません。このようにバッファリングを回避すると、パフォーマンスが上がることがあります。特に WORK と PLOG に、このオプションを指定すると効果があります。これは、トランザクションの終了時に、該当するログ情報がディスク上に実際に存在している必要があるからです。パラメータ UNBUFFERED を使用すれば、O_DSYNC 処理の使用方法を定義できます。
注意:
このパラメータの使用は、Adabas のパフォーマンスにのみ影響します。UNBUFFERED パラメータの実際の設定が最適なパフォーマンスを得るかどうかは、オペレーティングシステムと使用されているストレージシステムによって異なります。データベースの整合性は、UNBUFFERED
パラメータのすべての値に対して保証されます。
キーワードリストに指定できるキーワードは、次のとおりです。
キーワード | 説明 |
---|---|
DATABASE | ファイルシステムの ASSO コンテナと DATA コンテナは、オプション O_DSYNC で開きます。 |
NODATABASE | ファイルシステムの ASSO コンテナと DATA コンテナは、オプション O_DSYNC で開きません。 |
WORK | ファイルシステムの WORK コンテナは、オプション O_DSYNC で開きます。 |
NOWORK | ファイルシステムの WORK コンテナは、オプション O_DSYNC で開きません。 |
PLOG | ファイルシステムのプロテクションログは、オプション O_DSYNC で開きます。 |
NOPLOG | ファイルシステムのプロテクションログは、オプション O_DSYNC で開きません。 |
キーワード "ALL" は (DATABASE, WORK, PLOG) と同じです。
キーワード "CLEAR" は (NODATABASE, NOWORK, NOPLOG) と同じです。
デフォルトは (NODATABASE, WORK, PLOG) です。
adanuc: unbuffered=(nowork)
NODATABASE がデフォルトであるため、O_DSYNC は ASSO コンテナと DATA コンテナで使用されません。
NOWORK が指定されているので、O_DSYNC は WORK コンテナで使用されません。
PLOG がデフォルトなので、O_DSYNC はプロテクションログで使用されます。
USEREXITS = (keyword [,keyword]...)
このパラメータは、ユーザー出口機能と組み合わせて使用し、1 つまたは複数のユーザー出口を指定します。指定するユーザー出口は、実行時にロード可能でなければいけません。
キーワードとして、1、2、4、11、14 を指定できます。
注意:
使用可能なユーザー出口に関しての詳細については、『管理マニュアル』の「ユーザー出口とハイパー出口」を参照してください。
WCHARSET = <ICU encoding>
このパラメータは、ユーザーセッションの場合の W フィールドに対するデフォルトエンコードを指定します。このエンコーディングは、OP コールのレコードバッファ、または L または A/N コールのフォーマットバッファでエンコードが指定されていない場合に使用されます。
adanuc: wcharset=utf-16be
WRITE_LIMIT = number
このパラメータは、暗黙のバッファフラッシュが実行されるまでの、バッファプール内で変更されたデータベースブロックの割合を指定します。バッファフラッシュの詳細については、『管理マニュアル』の「データベースのモニタリングとチューニング」にある「バッファプール管理」を参照してください。
有効な値は 1~50 です。デフォルト値は 50 です。互換性を維持するために、0 と 51~70 の値も使用できるようになっていますが、これらは 50 と等しくなります。
注意:
adanuc: write_limit=10
変更されたデータベースブロックのサイズがバッファプールサイズの 10% になると、暗黙的なバッファフラッシュが実行されます。
パラメータ | 説明 | 最小値 | 最大値(注 1 を参照) | デフォルト値 | 動的な使用可(注 3 を参照) |
---|---|---|---|---|---|
[NO]AB32BIT | 32 ビット共有メモリとして定義されたアタッチドバッファにより、32 ビットアプリケーションからの Adabas アクセスが可能(HP-UX にのみ関連) | AB32BIT | × | ||
ADABAS_ACCESS | Adabas コールを実行できるユーザーを制限 | ALL | × | ||
APU | Adabas 処理ユニット | ありません。 | × | ||
AR_CONFLICT |
バッファフラッシュ時のクラッシュ後の再起動 | ABORT | × | ||
BFIO_PARALLEL_LIMIT | 並行に実行されるバッファフラッシュ I/O の上限 | 0(注 4 参照) | ありません。 | 50 | ○ |
[NO]BI | ビフォーイメージを PLOG に書き込む | BI | × | ||
CLOGBMAX | ログに記録された Adabas バッファの長さ(CLOGLAYOUT=6 の場合のみ) | 0(完全なバッファがログに記録されます) | 4GB | 4096 | × |
CLOGLAYOUT | CLOG のレイアウトを選択 | 5 | 6 | 5 | × |
DBID | データベース | 1 | 255 | ありません。 | × |
LAB | アタッチドバッファエリア | 1MB | 2GB | 最大(1MB、NCL 値 * 1024) | × |
LABX | アタッチドバッファ拡張エリア | 1MB | ありません。 | 20MB | × |
LBP | Adabas バッファプールサイズ(注 2 を参照) |
32MB | ありません。 | 100MB | × |
LOGGING | コマンドロギング | OFF | ○ | ||
LPXA | XA データプロテクションエリアの大きさ | 1 ブロック | 65535 ブロック | XA オプション設定時は 10 ブロック | × |
LWP | Adabas ワーク プール長 |
500 KB | 4000 MB | 16 MB | × |
NCL | ローカルクライアントスレッドの数 | 2 | ありません。 | =NU、最低でも 50 | × |
NISNHQ | ホールド状態にできるユーザー当たりの最大 ISN 数 | 0(注 4 参照) | ありません。 | 0 | ○ |
NT | スレッド数 | 1 | 100 | 6 | × |
NU | ユーザーキューの大きさ | 2 ユーザー | 99999 ユーザー | 20 ユーザー | × |
OPTIONS | さまざまなオプション | オプションなし | 一部のオプション | ||
[NO]PLOG | プロテクションロギング | PLOG | × | ||
READ_PARALLEL_LIMITS | 先読み I/O パフォーマンスの最適化 | (0,0,0) | ○ | ||
TNAA | 非アクティビティ タイムリミット (アクセスオンリーユーザー) |
20 | 2592000 | 900 秒 |
○ |
TNAE | 非アクティビティ タイムリミット (ET ロジックユーザー) |
20 | 2592000 | 900 秒 |
○ |
TNAX | 非アクティビティ タイムリミット (EXU、EXF ユーザー) |
20 | 2592000 | 900 秒 |
○ |
TT | トランザクション タイムリミット |
20 | 2592000 | 300 秒 |
○ |
UNBUFFERED | O_DSYNC オプションの設定(UNIX プラットフォームのみ) | NODATABASE、WORK、PLOG | × | ||
USEREXITS | 使用する ユーザー出口 |
ありません。 | × | ||
WCHARSET | W フィールドのデフォルトエンコード | なし(UTF-8) | × | ||
WRITE_LIMIT |
バッファプール 変更リミット |
1(注 5 参照) | 50 | 50(注 5 参照) | ○ |
注意: