オブジェクトハンドラは、ライブラリ SYSOBJH に保存されているユーティリティ SYSOBJH、およびダイレクトコマンドインターフェイスで構成されています。 また、Natural プログラムからオブジェクトハンドラ機能を実行するために、アプリケーションプログラミングインターフェイス OBJHAPI が用意されています。
このセクションでは、次のトピックについて説明します。
下の図に、オブジェクトをソース環境からワークファイルにアンロードし、ワークファイルからターゲット環境にロードすることによって、オブジェクトがオブジェクトハンドラでどのように転送されるかを示します。 必要に応じて、ソース環境からターゲット環境へのワークファイルの転送に、FTP などのアプリケーションプロトコルを使用できます。
Windows、メインフレーム、UNIX、または OpenVMS プラットフォーム上のリモート環境で Natural 開発サーバーに接続されている場合、オブジェクトハンドラを使用して、ローカル Windows クライアントに保存されているワークファイルからのオブジェクトのアンロードまたはワークファイルへのオブジェクトのロードを直接行うことができます。
『Natural Development Server』ドキュメント
このセクションでは、次のトピックについて説明します。
新旧の環境は、Adabas データベースに含まれている FNAT、FUSER、および FDIC の各システムファイル、またはメインフレーム上の VSAM ファイルシステム、または UNIX、OpenVMS、および Windows プラットフォーム上のファイルシステムです。 次のセクションで説明するように、FNAT または FUSER システムファイルの Natural オブジェクトはライブラリに含めることができます。
ファイルセキュリティ(パスワードとサイファコード)は、Adabas または VSAM 環境のシステムファイルに対して定義されたセキュリティと関連付けられています。 システムファイルにセキュリティが定義されている場合、オブジェクトハンドラ機能を実行する前に、必要なソース/ターゲットシステムファイルに対して、パスワード、サイファコード、およびVSAM 名を指定する必要があります。 これを行わなかった場合、Adabas または VSAM によって該当するエラーメッセージが発行されます。 オブジェクトハンドラの開始時に Natural セッションに割り当てられているデフォルトのシステムファイルについては、セキュリティ情報を指定する必要はありません。
オブジェクトハンドラは、Natural ライブラリに含まれている Natural ソースオブジェクト(保存オブジェクトとも呼ばれる)およびカタログ化オブジェクト、Natural エラーメッセージ、Natural コマンドプロセッサソース、Natural 関連オブジェクト、Adabas FDT(フィールド定義テーブル)および外部ファイルを転送します。
オブジェクトが処理されるソース環境およびターゲット環境に応じて、バイナリフォーマットまたはテキストフォーマットでデータを転送できます。
バイナリフォーマットは、ソースオブジェクトおよびカタログ化オブジェクト、エラーメッセージ、Natural コマンドプロセッサソース、Natural 関連オブジェクト、Adabas FDT、および外部ファイルに使用できます。
テキストフォーマットは、ソースオブジェクト、Natural コマンドプロセッサソース、エラーメッセージ、および Adabas FDT に適用されます。 メインフレームおよび UNIX/OpenVMS/Windows プラットフォーム間では、テキストデータのみを転送できます。 同一プラットフォーム間では、バイナリデータを転送できます。 UNIX または OpenVMS および Windows プラットフォーム間では、内部フォーマットのポータブルワークファイルを使用してバイナリデータを転送できます。
このセクションでは、メニュー機能またはダイレクトコマンドのいずれかを使用してオブジェクトハンドラを呼び出す方法について説明します。
Natural 開発サーバーのリモート環境がアクティブになっているときにオブジェクトハンドラを開始すると、現在マップされているリモート環境に対してオブジェクトハンドラが呼び出され、この環境に含まれているオブジェクトのみが処理されます。 Natural スタジオでは、次のセクションの説明に従ってオブジェクトハンドラを呼び出したときに表示される[SYSOBJH - Object Handler]ウィンドウのタイトルに、現在の環境が示されます。
メニュー機能を使用してオブジェクトハンドラを呼び出すには
Natural スタジオウィンドウで、[ツール]メニューの[Development Tools and Object Handler]を選択します。
または:
Natural スタジオウィンドウで、[ビュー]メニューの[Command Line]を選択し、次のシステムコマンドを入力します。
SYSOBJH
次のオプションを含む、オブジェクトハンドラの[Welcome to the Natural Object Handler]ウィンドウが表示されます。
Unload
Load
Administration
オブジェクトハンドラウィザードを使用せずに機能処理を行うには、[Advanced user]チェックボックスをオンにします。
対応するコマンドボタンを選択するか、[Actions]メニューから対応する機能を選択して、目的の機能を選択します。
上記の機能に加え、[Actions]メニューには次のオプションも表示されます。
これらの機能の詳細と、上級ユーザーモードまたはウィザードでこれらの機能を実行する方法については、「機能」セクションを参照してください。
バッチモードまたはダイレクトコマンドオンラインモードでオブジェクトハンドラを呼び出すには
「バッチまたはダイレクトコマンドの呼び出し」および「ダイレクトコマンド」の説明に従って、システムコマンド SYSOBJH
の後にダイレクトコマンドを入力します。
ダイレクトコマンドの実行後は、別のダイレクトコマンドを入力するか、ピリオド(.)を入力してオブジェクトハンドラを終了します。
複数のコマンドをオンラインモードまたはバッチモードでオブジェクトハンドラに発行できます。 コマンドシーケンスの最後のコマンドは、ピリオド(.
)、STOP
、END
、QUIT
または FIN
にする必要があります。FIN
にすると Natural セッションが終了します。
このセクションでは、次のトピックについて説明します。
オブジェクトハンドラをバッチモードで呼び出す場合は、ダイレクトコマンドを発行してオブジェクトハンドラ機能を実行する必要があります。
オブジェクトハンドラへのコマンドは標準入力から読み込まれます。 各コマンドは、キーワードまたはキーワードの後の入力デリミタ(セッションパラメータ ID
)を入力することによって最大 20 のコマンドパーツ/文字列に分けることができます。 各コマンドパーツ/文字列は 248 バイト以内でなければなりません。
コマンドが 1 行より長い場合、コマンドに属している各行(最後の行を除く)の末尾にセッションパラメータ CF
で定義された文字(デフォルトは %
)を入力します。これは次の行への継続を示します。 ただし、これは、コマンド SYSOBJH
を単独で 1 行に指定する場合に限り可能です。 つまり、複数行コマンドが開始する同じ行に SYSOBJH
を入力した場合は CF
を使用できません。
,
に設定されているとみなす):
UNLOAD * LIB EXAMPLE, WHERE, WORK C:\TEMP\TEST.SAG STOP
「ダイレクトコマンドの使用例」の「リモート環境でのバッチ処理」
『オペレーション』ドキュメントの「バッチモードでの Natural」
コマンド行に入力されるオブジェクトハンドラへのコマンドは、最高 20 のコマンドパーツで構成できます。 複数のコマンドをオブジェクトハンドラに発行できます。 コマンドシーケンスの最後のコマンドは、ピリオド(.)、STOP
、END
、QUIT
または FIN
にする必要があります。FIN
にすると Natural セッションが終了します。
SYSOBJH UNLOAD * LIB EXAMPLE WHERE WORK C:\TEMP\TEST.SAG STOP
OBJHAPI アプリケーションプログラミングインターフェイスを使用して、Natural プログラムからオブジェクトハンドラにコマンドを発行できます。 必要なパラメータおよび例については、Natural システムライブラリ SYSOBJH にある Natural プログラム DOC-API を参照してください。
オブジェクトハンドラで作成されるレポート、再スタート、およびトレース用のデータは、Natural テキストメンバ(テキストタイプの Natural オブジェクト)としてワークプランライブラリに保存されます。 オブジェクトハンドラでは、[Options]ウィンドウで明示的に指定されていないテキストメンバ名が生成されます。 名前は、曜日と時刻を組み合わせて生成されます。 例えば、21415568 という名前のメンバは、火曜日(週の 2 日目)の 14:15:56,8 に作成されています。
Natural Security 環境でオブジェクトハンドラを使用するには、オブジェクトハンドラに対してユーティリティプロファイルを Natural Security で定義する必要があります。 少なくとも、デフォルトのプロファイルを定義する必要があります。 ユーティリティプロファイルの詳細については、『Natural Security』ドキュメントの「ユーティリティの保護」セクションを参照してください。
Natural Security がインストールされている場合、オブジェクトハンドラは、要求された機能が有効かどうかを確認するために、Natural Security の SYSOBJH ユーティリティプロファイルをチェックします。
ロード機能の実行中に Natural Security エラーが発生すると、次の操作が行われます。
[Write report]オプションがオンラインモードで設定されていると、エラーメッセージがレポートファイルに出力され、現在のロードコマンドの処理は続行します。
[Write report]オプションがバッチモードで設定されていると、エラーメッセージがレポートファイルに出力され、エラーが発生したロードコマンドの処理が完了した後、オブジェクトハンドラは終了します。
[Write report]オプションが設定されていないと、エラーメッセージが発行され、ロードコマンドは終了します。
Natural DDM(データ定義モジュール)は、ライブラリまたはシステムファイル FDDM に保存できます。 『パラメータリファレンス』ドキュメントの「FDDM - DDM 用の Natural システムファイル」も参照してください。
ロード、アンロード、または検索機能で DDM の処理にシステムファイル FDDM を使用するため、オブジェクトハンドラには[Use FDDM file for processing DDMs]オプションが用意されています。 このオプションを設定するには、[Use additional options]を選択します(「設定」セクションを参照)。
[Use FDDM file for processing DDMs]を選択するときは、次の点に注意してください。
FDDM が NATPARM モジュールでアクティブにされていると、このオプションがデフォルトで選択されます。
ライブラリに保存されている DDM は処理できません。
ライブラリ SYSTEM および Natural オブジェクトタイプ V
を指定する必要があります(「オブジェクト指定」セクションの「Natural ライブラリオブジェクトの詳細」を参照)。
ロード機能で使用すると、すべての DDM が システムファイル FDDM にロードされます。 この場合、パラメータ NEWLIBRARY
は無視されます。