1

as/400 には、テスト環境と生産環境があります。プログラムが機能することをテストしたら、それらを生産的な環境に置くことができます。どちらの環境にも、類似した一連のライブラリが含まれています。

プログラムがどの環境で動作するかをプログラムに伝える基本的なメカニズムは、プログラムが実行されるジョブに使用されるライブラリリストです。したがって、多くの場合、ジョブの送信時にプログラムにパラメーターが渡されます。これは、プログラムにテスト環境または生産環境のいずれかで動作するように指示します。私のプログラムは実行時間全体を通じて常にこのパラメーターを保持する必要があり、多くの場合、他のプログラムに渡すことさえあるため、これは私を悩ませます。初期プログラムは情報自体を必要としない場合もありますが、それを必要とするプログラムを呼び出すため、パラメーターとして受け取る必要があります。

私が直面している特定の問題を提示するには、より大きなプロセスの個々の部分間の通信は、システム全体のデータキューを介して行われることがよくあります。liblist に従って特定の DTAQ を読み取るのは魅力的ですRCVDTAQ。DTAQ の名前を呼び出すだけで、liblist が適切なライブラリを選択します。DTAQ への書き込みも同様です。

ただし、プログラムは、リスンまたは書き込みの前に新しい DTAQ を作成する必要がある場合があります。これは、レイアウトとライブラリリストでは機能しません。次のように考えてください。

PROD-liblist:

PPGMLIB1
PPGMLIB2
PDFILELIB1
PDTAQLIB1
P...
...

TEST-liblist

TPGMLIB1
TPGMLIB2
TDFILELIB1
TDTAQLIB1
T...
...

?DTAQLIB1ここで、私のプログラムはでDTAQ を作成する必要?があります。PT

私の最初のアイデアは、liblist を調べてエントリPDTAQLIBまたはエントリを探し、TDTAQLIBどちらか早い方を取ることですが、その方法がわかりませんでした (したがって、関連する質問:どうすれば liblist を内部から読み取ることができますか? ILE プログラム? (できれば RPG または CL) )。

どのユーザーが現在のジョブを所有しているかを確認することで目標を達成できる可能性があることはわかっていますが、それでは liblist によってライブラリを選択するロジックが壊れてしまいます (現在の回避策のように)。

足りないものはありますか?私が書こうとしている、おそらく呼び出すための特別な方法CRTDTAQ、またはこのliblist比較を行うための特別なAPIはありますか?

4

3 に答える 3

2

Warren の構成ファイルのアイデアは良いものですが、必要以上に多すぎるように思えます。データ領域だけを使用するのはどうですか?

例えば、?DFILELIB1 ライブラリーに MODE というデータ域が常に存在するようにします。モードには、「P」または「T」の 1 文字のみが含まれます。

または、さらに単純に (あまり明確ではありませんが)、TESTMODE データ領域の有無をテストし、それに応じて続行することもできます。

于 2012-07-17T10:11:04.820 に答える
1

CL でライブラリー・リストを読み取るには、RTVJOBA を使用します。ILE RPG で読むには、JOBI0700 形式の QUSRJOBI API をお勧めします。 http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Fapis%2Fqusrjobi.htm
ライブラリー・リストをスキャンするというあなたの考えは、おそらくあなたの環境にとって最良のものだと思います。

于 2012-07-16T15:53:59.740 に答える
1

私は通常、プログラムのどこにもライブラリ名をハードコーディングしないようにしています。特定の名前または名前パターンをスキャンしている場合、これは今のところ問題なく機能する可能性がありますが、新しい環境が作成されたときに、おそらく新しい命名スキームで何が起こるか. したがって、環境設定を構成データとして保存します。

これには2つのアプローチがあります。

あらゆる種類のプログラムがあらゆる種類の構成値を検索するために使用できる、一般的な構成値テーブルを設定できます。当店では、これを Generic Values ファイルと呼んでいます。主なキー フィールドが必要です。1 つ目はプログラム名に使用されることが多く、2 つ目は構成されている値の名前に使用されます。また、テーブル名を最初のキーとして、列名を 2 番目のキーとして配置することもよくあります。各レコードは、列の有効な値とその説明を定義します。

Data Queues を使用して SOA サービスを実装している場合、サービスに関する情報を定義するためのテーブルがあります。これには、ライブラリーやデータ・キュー名などの情報、およびクライアント・インターフェース、サービスを実行するジョブ、またはサービス・ジョブを管理するジョブによって使用されるその他の情報が含まれます。

いずれの場合も、構成ファイルは環境固有のデータ ライブラリにあり、その特定の環境に適した値が含まれています。ソース スキャンでライブラリまたはオブジェクト名の参照を簡単に見つけられるように、すべての構成レコードの INSERTS を含む SQL スクリプト メンバーにコメントを付けました。環境固有の構成を、テストして本番環境に移行する他のアプリケーション構成データから分離することをお勧めします。

于 2012-07-16T23:09:44.763 に答える