製品間共通
索引
動作環境
- Q. クラスタ構成のシステムに対応していますか?
-
PowerSORTは、フェイルオーバーには対応していませんが、クラスタサービスが動作するサーバ上で運用できます。
相互待機形態(Active/Active)で運用する場合は、各サーバに製品を購入する必要があります。
運用待機形態(Active/Passive)で運用する場合は、PowerSORTのバージョンによって必要なライセンスが異なります。運用待機形態(Active/Passive)で運用する場合に必要なライセンスは以下のようになります。運用待機形態(Active/Passive)で運用する場合に必要なライセンス バージョン 必要なライセンス V6.0.0以降 通常運用時に待機ノードとなっているサーバには運用ノードで購入した製品をインストールして使用できます。 V5.0以前 運用/待機サーバそれぞれにライセンスを購入する必要があります。
ライセンス
- Q. メディアパックとは何ですか?
-
メディアパックは、製品をインストールするための媒体です。
使用権は添付されておりませんので、必要な分のライセンスを購入してください。メディアパックだけを購入し、製品を使用することはできません。
- Q. 旧バージョンを使用したいのですが、ライセンスを購入できますか?
-
最新バージョンのライセンスを購入することにより、旧バージョンを使用する権利を得ることができます(以降、「ダウングレード使用」と呼びます)。
「ダウングレード使用」を適用するためには、旧バージョン製品のインストール媒体をお客様がすでに購入されていることが前提となります。購入が必要なライセンス数については、最新バージョン製品のライセンス購入方法に従ってカウントします。「ダウングレード使用」可能な旧バージョンについては、「PowerSORT 価格」の「製品のご購入にあたって」を参照してください。
なお、最新バージョン製品のライセンスを購入して旧バージョンを使用した場合、購入したライセンスを最新バージョンと旧バージョンで同時に使用することはできません。
- Q. マルチコアプロセッサ搭載のサーバに導入する場合、ライセンスはどのように購入すればよいですか?
-
マルチコアプロセッサのライセンスカウント方法については、「富士通製ミドルウェア商品のライセンス体系について」の「マルチコアプロセッサ搭載サーバにおけるプロセッサライセンスカウント方法」を参照してください。
- Q. 仮想環境で使用する場合、ライセンスはどのように購入すればよいですか?
-
仮想環境で使用する場合のライセンスカウント方法については、「富士通製ミドルウェア商品のライセンス体系について」の「仮想環境利用時のライセンス購入方法について」を参照してください。
機能
- Q. キーフィールド(ソートキー)の指定において、キーの数や長さに制限はありますか?
-
1個あたりのキー長の最大値には、キーフィールド(ソートキー)のデータ形式により上限があります。
たとえば、ASCIIコード(文字)ではレコード長まで、固定小数点2進数(数値)では256バイトまでとなっています。しかし、キーの数や各キー長を合計した長さの上限は使用できるメモリ等の動作環境で決まり、仕様上は制限していません。
- Q. 半角カタカナをキーフィールドに指定できますか?
-
シフトJISコードの0xA1~0xDFの範囲で表される1バイトの文字(いわゆる半角カナ)については、キーフィールドのデータ形式にASCIIコードを指定することでコード順に並べることができます。
- Q. 年号の下2桁で表した数値を99の後に00が並ぶようにできますか?
-
キーフィールド(ソートキー)のデータ形式に「2桁年号データ形式」を指定することで、99の後に00を並べることができます。
しきい値(注1-1)は、Windowsでは環境変数、SolarisおよびLinuxではスタートアップファイルの指定により任意の値に変更することができます。注1-1
しきい値とは、1990年代と2000年代の境目となる値を意味します。
たとえば、しきい値を「60」とした場合、下2桁の数値を1960年から2059年の範囲とみなして並べます。
- Q. ASCIIコードの文字列を昇順(小さい順)に並び換えると数字(0~9)から英字(A~Z)の順になりますが、英字から数字の順番に並べることができますか?
-
キーフィールド(ソートキー)のデータ形式に「EBCDICコード」を指定することで、英字から数字の順(EBCDICコード順)に並べることができます。
- Q. 漢字ソートマージ機能はどのプラットフォームのPowerSORTでも使用できますか?
-
漢字ソートマージ機能は、Windows(x86) PowerSORT Server、Windows(x86) PowerSORT Workstation、Solaris PowerSORTで利用できます。
また、漢字ソートマージ機能を利用するためには関連製品が必要です。
- Q. 「+0」や「-0」を表現できるデータ形式の場合、「+0」と「-0」は同じ値と判断されますか?
-
「+0」と「-0」を同じ値と判断するかどうかは、PowerSORTのバージョンによって変わります。
バージョンによる「+0」と「-0」の判断の違い バージョン 「+0」と「-0」の判断方法 V6.0.0以降 「+0」と「-0」は同じ値と判断します。
また、Windowsでは環境変数、SolarisおよびLinuxではスタートアップファイルの指定により、V5.0以前と同じ動作にすることができます。V5.0以前 「+0」と「-0」は別の値として判断します。大小関係は「-0」<「+0」となります。
- Q. レコード長の指定が必須となっていますが、レコード長がわからない場合や、複数のファイルを指定する場合はどうしたらよいでしょうか?
-
PowerSORTでは、レコード長を元に最も性能が良くなるよう内部の動作条件を決定しているため、レコード長の指定は必須となっています。
バイナリファイル固定長レコード形式の場合は、レコード長はレコードの単位を示す重要な情報となりますので、処理対象のファイルを扱うことができるツール、エディタまたはファイル種別に対応したブラウザなどで調査してください。固定長レコード形式では、レコード長が異なる複数のファイルを同時に指定することはできません。
バイナリファイル可変長レコード形式またはテキストファイルの場合は、実際の最大レコード長よりも大きな値を指定すれば動作可能です。しかし、実際の最大レコード長から大きく異なる値を指定した場合は十分な性能を発揮できないため、できるだけ実際の最大レコード長に近い値を指定してください。複数のファイルを指定する場合は、その中の最大レコード長を指定します。
- Q. 作業域の大きさ(メモリサイズ)はどのような基準で指定したら良いのでしょうか?
-
入力がファイルの場合、作業域の大きさ(メモリサイズ)の指定は省略することをお勧めします。
指定を省略すると、PowerSORTが適切な作業域(メモリ)を計算して使用します(注1-3)。ただし、自動的に計算される作業域の大きさ(メモリサイズ)がシステム全体で使用可能な空きメモリを超える場合は、使用可能な空きメモリを超えないように作業域の大きさ(メモリサイズ)を指定してください。PowerSORTが多重で動作する場合、または他のプロセスと同時に動作する場合、同時に動作するプロセスが使用する作業域の大きさ(メモリサイズ)も考慮してください。
入力がファイル以外(注1-4)または標準入力の場合は、注1-3に記載した目安(入力ファイルサイズを入力レコードの総量に置き換えます)、かつシステム全体で使用可能な空きメモリを超えないように作業域の大きさ(メモリサイズ)を指定してください。注1-3
使用する作業域(メモリ)の目安は「入力ファイルサイズ×0.02」となります。
注1-4
BSORT関数を利用したC言語のアプリケーション上でbsrtput関数により入力レコードをPowerSORTに渡す場合があります。
- Q. レコード選択機能の選択条件として、「a & (b | c)」のような論理式が指定できますか?
-
bsortexコマンドでは、論理積(AND)、論理和(OR)、括弧を使用して選択条件を指定できます。
bsortコマンドでは、選択フィールドをカンマ(,)で区切ることで論理積(AND)を表し、選択フィールドオプション(-p)を複数指定することで論理和(OR)を表すことができます。
- Q. レコード集約機能において、集約結果を残すレコードを指定できますか?
-
bsortexコマンドを使用し、レコード集約オプション(-summary)のfirstオペランドまたはlastオペランドを指定することで残すレコードを指定できます。
firstオペランド、lastオペランドと出力されるレコードの関係 オペランド 出力されるレコード firstオペランド - ソート機能
同一のキーフィールドを持つレコードの中から、最初に入力したレコード(注1-5)に集約結果を格納して出力します。 - マージ機能
同一のキーフィールドを持つレコードの中から、最初に指定した入力ファイル内のレコードに集約結果を格納して出力します。
lastオペランド - ソート機能
同一のキーフィールドを持つレコードの中から、最後に入力したレコード(注1-5)に集約結果を格納して出力します。 - マージ機能
同一のキーフィールドを持つレコードの中から、最後に指定した入力ファイル内のレコードに集約結果を格納して出力します。
指定なし 同一のキーフィールドを持つレコードの中から、どのレコードが出力されるかは不定です。 注1-5
入力ファイル情報オプション(-input)のfileオペランドで指定した順にレコードを読み込みます。
- ソート機能
- Q. レコード集約機能を使って合計値を求めたいのですが等しいキーがありません。集約する方法はありますか?
-
入力レコード再編成機能を使って空白等のフィールドを追加し、そのフィールドをキーフィールドとして指定することで、全てのレコードをレコード集約機能の対象にすることができます。
- Q. レコード集約機能において、小数点を含む数値は処理できますか?
-
レコード集約機能では、浮動小数点2進数は処理できません。
また、ASCIIコードなどの文字で表した数値に小数点が含まれているデータも処理できません。
- Q. レコード集約機能を使用した場合のソート結果は、グローバルサーバ版ソートマージとPowerSORTで一致しますか?また、レコード集約後に出力されるレコードを指定できますか?
-
レコード集約機能により出力されるレコードは、動作環境、ファイル内容などにより変わることがあります。このため、同一製品、同一バージョンであっても、ソート結果は異なることがあります。
また、グローバルサーバ版ソートマージでは、レコード集約機能により出力されるレコードを指定することはできませんが、PowerSORTでは、最初に入力したレコードまたは最後に入力したレコードを出力するよう指定することができます。
- Q. グローバルサーバ版ソートマージでINCLUDE文とSUM文を指定していますが、bsortexコマンドではどのように指定すればよいでしょうか?
-
グローバルサーバ版ソートマージのINCLUDE文は、bsortexコマンドの入力ファイル情報オプション(-input)のincludeオペランドで指定します(注1-6)。また、SUM文は、レコード集約オプション(-summary)のfieldオペランドで指定します。
注1-6
bsortexコマンドの出力ファイル情報オプション(-output)でincludeオペランドを指定した場合、全てのレコードをレコード集約機能の対象とした後にレコード選択機能が行われるため、結果が異なります。
- Q. 同一のキーフィールドを持つレコードを入力順に出力できますか?
-
ソート機能では、先入力先出力(FIFO)機能を指定することで、同一のキーフィールドを持つレコードを入力順に出力できます。
マージ機能の場合は、先入力先出力(FIFO)機能の指定の有無に係わらず、同一のキーフィールドを持つレコードは入力ファイルの指定順に出力されます。
- Q. アーギュメントファイルにコメントは書けますか?
-
アーギュメントファイルは、コマンドのパラメタだけを記述する仕様であり、コメントは書けません。
- Q. bsortコマンドおよびbsortexコマンドにおいて、エラーの有無を判断できますか?
-
bsortコマンドおよびbsortexコマンドでは、終了ステータス(終了コード)によりエラー発生の有無を通知しています。
bsortコマンドおよびbsortexコマンドの終了ステータス(終了コード) 状態 終了ステータス(終了コード) 正常終了 0 エラー終了 0以外
- Q. bsortexコマンドとbsortコマンドの機能差は何ですか?
-
bsortexコマンドは、bsortコマンドの機能を拡張したコマンドです。bsortexコマンドだけで使用できる機能は以下の通りです。
bsortexコマンドだけで使用できる機能 機能 機能説明 指定方法 ファイルの分割出力機能 出力するデータを複数のファイルへ分割して出力します。1つのファイルに出力する大きさは、ファイルサイズやレコード件数で指定できます。 -outputオプションのmaxfilesizeオペランドおよびmaxrecnumオペランド 出力レコード選択機能 出力ファイルごとに出力するレコードの条件を指定して、条件別にファイルを分けて出力します。 -outputオプションのincludeオペランド、omitオペランドおよびcaseオペランド 出力レコード再編成機能 出力ファイルごとにレコードのレイアウトを変更して出力します。 -outputオプションのreconstオペランド レコード集約機能およびサプレス機能における特定レコード出力機能 レコード集約機能またはサプレス機能の対象となったレコードの中から、どのレコードを出力するか指定できます。 -summaryオプションのfirstオペランドおよびlastオペランド EOF制御文字の扱いを指定する機能 入力ファイルがテキストファイルの場合、EOF制御文字をファイルの最後と認識するか否かを指定することができます。 -inputオプションのeofオペランド
参考
Windows PowerSORT(PowerSORT Server、PowerSORT Workstationを含む)のbsortコマンドでは、「処理定義ファイルオプション(-P)」の指定が可能です。この機能は、bsortexコマンドでは使用できません。
「処理定義ファイルオプション(-P)」は、PowerSORT GUIのメニューやダイアログボックスで指定した処理内容をファイルへ保存し、その内容にしたがって処理します。
ファイル
- Q. NetCOBOL(富士通COBOL)の行順ファイルを処理できますか?
-
NetCOBOLの行順ファイルは、PowerSORTではテキストファイルとして処理することができます。
ただし、NetCOBOLのファイルシステムがオープン処理で行っているファイルの共用・排他などの制御が行われないため、ファイルの指定には注意してください。
- Q. CSVファイルを処理できますか?
-
CSVファイルは、V6.0.0以降でサポートされています。
また、V5.0以前では、テキストファイル浮動フィールド指定で代替できます。ただし、テキストファイル浮動フィールド指定では、フィールドを囲むダブルクォーテーションもフィールドのデータとして扱います。このため、フィールドを囲むダブルクォーテーション内の2つ連続したダブルクォーテーションは、そのまま2つのダブルクォーテーションとして扱われます。また、フィールドを囲むダブルクォーテーション内の改行はレコードの区切りとして、フィールドを囲むダブルクォーテーション内のカンマはフィールドの区切りとして扱われます。
参考
CSVファイルを処理する場合の指定方法は以下の通りです。
[V6.0.0以降]
- bsortコマンドの場合
テキストファイルオプション(-T)に「csv」を指定します。
例) -T csv - bsortexコマンドの場合
入力レコード情報オプション(-record)のrecformオペランドに「txtcsv」を指定します。
例) -record recform=txtcsv
[V5.0以前(代替方法)]
- bsortコマンドの場合
テキストファイルオプション(-T)に「flt」、フィールド分離文字オプション(-t)に「,」を指定します。
例) -T flt -t , - bsortexコマンドの場合
入力レコード情報オプション(-record)のrecformオペランドに「txtflt」、fldsepオペランドに「,」を指定します。
例) -record recform=txtflt fldsep=,
- bsortコマンドの場合
- Q. 可変長のテキストファイルを処理できますか?
-
テキストファイルは、改行コードまでを1つのレコードとして扱います。このため、固定長レコード形式、可変長レコード形式などの区別はしていません。
参考
テキストファイルの指定は、フィールドの指定方法により以下の4種類があります。
-
テキストファイル固定フィールド指定
先頭からのバイト位置でフィールドを指定する形式です。フィールドの位置は全レコードで共通です。例) 先頭から6バイト目、長さ2バイトのASCIIコードのフィールドを昇順に並べる指定
キーフィールド:5.2asca

-
テキストファイル浮動フィールド指定
フィールド分離文字列で区切られたフィールドの番号でフィールドを指定する形式です。フィールド分離文字の位置によってフィールドの位置が決まります。例) フィールド分離文字列で区切られた2番目の長さ2バイトのASCIIコードのフィールドを昇順に並べる指定
キーフィールド:1.2asca

□はフィールド分離文字を表します。
フィールド分離文字は、任意の文字または文字列を指定できます。 -
テキストファイルCSV形式
カンマで区切られたフィールドの番号でフィールドを指定する形式です。カンマの位置によってフィールドの位置が決まります。例) カンマで区切られた2番目の長さ2バイトのASCIIコードのフィールドを昇順に並べる指定
キーフィールド:1.2asca

□はカンマを表します。 -
テキストファイルTSV形式
タブで区切られたフィールドの番号でフィールドを指定する形式です。タブの位置によってフィールドの位置が決まります。例) タブで区切られた2番目の長さ2バイトのASCIIコードのフィールドを昇順に並べる指定
キーフィールド:1.2asca

□はタブを表します。
-
- Q. 入力と出力に同じファイルを指定できますか?
-
ソート機能の場合、入力と出力に同じファイルを指定することができます。ただし、ソート処理中に異常が発生した場合またはソート処理を中断した場合、入力ファイルのデータは保証されない場合があります。重要なファイルの場合は、バックアップを取るなどの準備をするか、出力ファイルを新規に作成することをお勧めします。
マージ機能およびコピー機能では、入力と出力に同じファイルを指定することはできません。
- Q. 空白を含むファイル名を使用できますか?
-
使用できます。
ファイル名に空白が含まれる場合は、ファイル名全体をダブルクォーテーション(")で囲って指定してください。
- Q. 既存のファイルに追加書き(既存のファイルの最後に新たなレコードを追加)できますか?
-
PowerSORTの出力処理には、追加書きの機能はありません。
ただし、追加書きしたい既存ファイルも入力ファイルの1つとして指定することで、追加書きと同等の処理は可能です。
- Q. bsortコマンドにおいて、出力ファイルオプション(-o)と標準出力オプション(-w)を同時に指定した場合、どちらが有効となりますか?
-
出力ファイルオプション(-o)が有効となります。
- Q. bsortコマンドでNetCOBOL(富士通COBOL)の索引ファイルを処理したいのですが、どのように指定すればよいのですか?
-
NetCOBOL(富士通COBOL)の索引ファイルを処理する場合の例を以下に示します。
例1)
NetCOBOL(富士通COBOL)の索引ファイル「bsortin」のレコードをソートして、NetCOBOL(富士通COBOL)の順ファイル「bsortout」に出力します。レコード長は100バイト、キーフィールドはレコードの先頭から10バイトのASCIIコードとし、これを昇順に並べます。
bsort -s -z100 -Zf -0.20asca -Fcobseq,cobidx -obsortout bsortin
例2)
NetCOBOL(富士通COBOL)の順ファイル「bsortin」のレコードをソートして、NetCOBOL(富士通COBOL)の索引ファイル「bsortout」に出力します。レコード長は100バイト、キーフィールドはレコードの先頭から10バイトのASCIIコードとし、これを昇順に並べます。
出力する索引ファイルの主キーは、レコードの先頭から10バイトのASCIIコードとし、重複キーも指定します。bsort -s -z100 -Zf -0.20asca -Fcobidx,cobseq -X0.20ascade -obsortout bsortin
- Q. NetCOBOL(富士通COBOL)のファイルを処理する場合に注意事項はありますか?
-
可変長レコード形式の順ファイルおよび索引ファイルの場合、最大レコード長はファイル内の最大レコード長以上を指定してください。
また、可変長レコード形式の相対ファイルの場合、最大レコード長は実際のファイル内の最大レコード長を指定してください。可変長レコード形式の順ファイルおよび索引ファイルにおいて、指定した最大レコード長よりも長いレコードが存在する場合は、PowerSORTのバージョンによって以下のような動作となります。
[V6.0.0以降]
エラーとなります。[V5.0以前]
NetCOBOL(富士通COBOL)のファイルシステムの仕様により、指定した最大レコード長を超える部分が切り捨てられますが、PowerSORTは正常終了し、切り捨てられたことは通知されません(注1-7)。ただし、可変長レコード形式の順ファイルの場合に、先頭レコードが指定した最大レコード長よりも長いときはエラーとなります。注1-7
Solaris PowerSORTまたはLinux PowerSORTにおいて、富士通COBOL順ファイル対応のファイルアクセスライブラリとして「libbscblfast.so」または「libbscblfast64.so」を使用した場合は、PowerSORTの仕様により、指定した最大レコード長よりも長いレコードが存在するとエラーとなります。
- Q. ソート処理で作成される一時ファイルの大きさはどのくらいになりますか?
-
一時ファイルの大きさは、実行条件および入力ファイルの内容によって変わりますが、入力ファイルサイズの1.5倍から2倍程度になることがあります。
トラブルシューティング
- Q. PowerSORTのバージョンアップ前後でレコードの出力順序が異なっていますが、どのような原因が考えられますか?
-
先入力先出力(FIFO)機能を指定していなかった場合、キーフィールドの値が同一なレコードの出力順序は不定となります。このため、PowerSORTのバージョンアップ前後でキーフィールドの値が同一なレコードの出力順序が異なっていることが考えられます。PowerSORTのバージョンアップ前後で先入力先出力(FIFO)機能を指定することにより、同じ出力結果にすることができます。
参考
先入力先出力(FIFO)機能を指定していなかった場合にキーフィールドの値が同一なレコードの出力順序が不定となる仕様は、PowerSORTの全てのプラットフォーム、全てのバージョンで共通の仕様です。このため、同一製品、同一バージョンであっても、先入力先出力(FIFO)機能を指定していなかった場合、キーフィールドの値が同一なレコードの出力順序は異なる場合があります。
- Q. PowerSORTの情報メッセージが出力されないのですが、どのような原因が考えられますか?
-
メッセージファイルを指定している場合、情報メッセージは指定したメッセージファイルだけに出力されます。情報メッセージを標準エラー出力へ出力する必要がある場合は、メッセージファイルの指定を削除してください。
また、Windows PowerSORT(PowerSORT Server、PowerSORT Workstationを含む)では、環境変数BSORT_MSGOUTに「STDOUT」を指定した場合、情報メッセージは出力されません。情報メッセージを出力する場合は、環境変数BSORT_MSGOUTの指定を削除するか、「STDERR」を指定してください。
- Q. ASCIIコードの英字と半角カナのデータをEBCDIC順に並べたいのですが、キーフィールドのデータ形式にEBCDICコードを指定しても半角カナがEBCDIC順に並びません。どのような原因が考えられますか?
-
ASCIIコードのデータをEBCDIC順に並べる場合は、キーフィールドのデータ形式の指定の他、bsortコマンドでは文字コード系変換オプション(-Q)、bsortexコマンドではiconvオペランドを処理するデータに合わせて指定する必要があります。
たとえば、半角カナを含む場合は、bsortコマンドでは文字コード系変換オプション(-Q)、bsortexコマンドではiconvオペランドに「1」を指定する必要があります。
- Q. 漢字ソートマージ機能を指定すると「漢字コードの変換処理(※処理名)でエラー(※エラーコード)が発生しました.」というエラーメッセージが出力されます。どのような原因が考えられますか?
-
漢字ソートマージ機能は、Windows(x86) PowerSORT Server、Windows(x86) PowerSORT Workstation、Solaris PowerSORTで利用できます。
また、漢字ソートマージ機能を利用するためには関連製品が必要です。
- Q. レコード再編成機能を指定するとエラーとなることがありますが、どのような原因が考えられますか?
-
入力レコード再編成機能により、フィールドの位置が変更されたことが原因となる場合があります。
PowerSORTは、以下に示す順番で各機能の処理を行います。
- データ入力処理
- 入力レコード選択処理
- 入力レコード再編成処理
- ソート処理、マージ処理およびコピー処理
- レコード集約処理
- 出力レコード選択処理
- 出力レコード再編成処理
- データ出力処理
入力レコード再編成処理によりフィールドの位置が変更されると、以降に指定するフィールドの位置は、入力レコード内のフィールドの位置とは異なったものとなります。このため、フィールドの位置は、以下の規則に従って指定してください。
各フィールドの指定規則 フィールド フィールド指定規則 入力選択フィールド 常に入力レコードをもとにフィールドを指定します。 入力再編成フィールド キーフィールド 通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後のレコードをもとにフィールドを指定します。 集約フィールド 出力選択フィールド 出力再編成フィールド
- Q. bsortコマンドでレコード選択機能を指定しています。選択フィールドが1つのときは意図したレコードが選択されますが、選択フィールドを2つ指定すると意図したレコードが選択されません。どのような原因が考えられますか?
-
レコード選択機能で指定する選択フィールドオプション(-p)は、指定方法によって選択条件の論理積になる場合と論理和となる場合があります。
例1)
複数の選択条件が論理積となる場合は、選択条件をカンマで区切って指定します。
bsort -p10.4asc.eq.20.4asc,15.4asc.eq.25.4asc …
例2)
複数の選択条件が論理和となる場合は、選択条件ごとに選択フィールドオプション(-p)を指定します。
bsort -p10.4asc.eq.20.4asc -p15.4asc.eq.25.4asc …
- Q. bsortexコマンドで出力ファイルのレコード選択機能を使用していますが、出力ファイル情報オプション(-output)のcaseオペランドで選択フィールド(選択条件)を指定すると処理時間が遅くなってしまいます。対処方法はありますか?
-
caseオペランドは、そのcaseオペランドより前に指定した出力ファイル情報オプション(-output)のcaseオペランドで出力されたレコードを出力の対象から除外します。この処理のため、includeオペランドおよびomitオペランドよりも、処理時間は遅くなります。
なお、複数の選択フィールド(選択条件)に重複して成立するレコードが存在しない場合は、caseオペランドの代わりにincludeオペランドおよびomitオペランドを使用することで、処理時間を改善することができます。例)
caseオペランドをincludeオペランドおよびomitオペランドに置き換え可能なケース
caseオペランドを使用した処理-output file=out1 case="0.4asc.eq.'2007'"
-output file=out2 case="0.4asc.eq.'2008'"
-output file=out3 case=otherincludeオペランドおよびomitオペランドに置き換えた処理
-output file=out1 include="0.4asc.eq.'2007'"
-output file=out2 include="0.4asc.eq.'2008'"
-output file=out3 omit="0.4asc.eq.'2007'.or.0.4asc.eq.'2008'"
- Q. テキストファイル浮動フィールド指定におけるレコード集約機能で「集約処理でオーバーフローが発生しました.」というメッセージが出力されました。集約フィールドを加算してもオーバーフローは起きないはずですが、どのような原因が考えられますか?
-
テキストファイル浮動フィールド指定におけるレコード集約機能では、集約フィールドの長さが集約フィールドとして指定された長さより短かった場合、集約フィールドを指定された長さに拡張して出力します。集約フィールドの拡張により、レコード長が指定された最大レコード長を超えると「集約処理でオーバーフローが発生しました.」というメッセージを出力し、オーバーフローが発生したものとして処理されます。
テキストファイル浮動フィールド指定におけるレコード集約機能では、集約フィールドが集約フィールドとして指定された長さに拡張されることを考慮して、最大レコード長を指定してください。
また、集約フィールドの出力形式に「d」を指定した場合、集約フィールドの先頭から空白、タブ、および「0」が削除されますが、削除より先に拡張が行われるため、拡張の時点で最大レコード長を超えた場合も同じ現象が発生します。
- Q. レコード集約機能を指定した処理で「集約処理でオーバフローが発生しました.」「集約処理でn件のレコードを削除しました.」というメッセージが出力されました。処理は正しく行われたのでしょうか?
-
PowerSORTの仕様どおり、処理は正しく行われています。
「集約処理でオーバフローが発生しました.」のメッセージが出力された場合は、集約処理の結果が指定された集約フィールドの長さ(桁数)を超えたことを通知しています。この場合、一部のレコードが集約処理されず、同一のキーフィールドを持つレコードが複数出力されています。
「集約処理でn件のレコードを削除しました.」のメッセージは、レコード集約処理によって不要となった(出力されなかった)レコード件数を通知しています。
- Q. NetCOBOL(富士通COBOL)の行順ファイルを処理しようとしたところ、「ファイル(※入力ファイル名)のオープンでエラー(※エラーコード)が発生しました.」というエラーメッセージが出力されました。どのように対処すればよいでしょうか?
-
NetCOBOLの行順ファイルは、PowerSORTではテキストファイルとして処理することができます。以下のように指定してください。
NetCOBOLの行順ファイルを処理する場合の指定方法 項目 指定する値 レコード形式 テキストファイル固定フィールド指定 ファイルシステム システムの標準ファイルシステム(省略可能) なお、NetCOBOLのファイルシステムがオープン処理で行っているファイルの共用・排他などの制御が行われないため、ファイルの指定には注意してください。
- Q. 出力ファイルがNetCOBOL(富士通COBOL)の索引ファイルのとき、「ファイル(※出力ファイル名)へのレコード出力中にエラー(0x22)が発生しました.」というエラーメッセージが出力されました。どのように対処すればよいでしょうか?
-
インデックスフィールドのキーが重複していると考えられます。
インデックスフィールドは、bsortコマンドでは「インデックス指定オプション(-X)」、bsortexコマンドでは「idxkeyオペランド」で指定します。インデックスフィールドのキーが重複している場合、インデックスフィールドの操作(opt)に「d」(重複を許す)を指定する必要があります。
なお、Solaris PowerSORTおよびLinux PowerSORTでは、インデックスフィールドの操作(opt)の省略値は「d」(重複を許す)となっています。Windows PowerSORT(PowerSORT Server、PowerSORT Workstationを含む)では、インデックスフィールドの操作(opt)の省略値は、重複を許さない(注1-8)となっています。注1-8
Solaris PowerSORTおよびLinux PowerSORTでは、「d」(重複を許す)に対して「n」(重複を許さない)の指定がありますが、Windows PowerSORT(PowerSORT Server、PowerSORT Workstationを含む)では、「n」(重複を許さない)の指定はありません。「d」(重複を許す)を指定しなかった場合、重複を許さないという動作になります。
- Q. ソート結果をCOBOL索引ファイルへ出力したところ、キーフィールドの順にレコードが並んでいないようですが、どのような原因が考えられますか?
-
PowerSORTは、指定されたキーフィールドにしたがってレコードを並べます。
しかし、出力ファイルがCOBOL索引ファイルの場合、レコードはインデックスフィールドによって管理されます。このため、キーフィールドとインデックスフィールドが異なる場合、インデックスフィールド順でレコードを取り出すとソート結果とは異なる順にレコードが読み出されることになります。キーフィールドとインデックスフィールドの位置、長さ、形式、並びを合わせれば一致します。
- Q. 固定長レコード形式のテキストファイルは正常に処理されましたが、可変長レコード形式のテキストファイルでは「ファイル(※入力ファイル名)の属性に誤りがあります.」というエラーメッセージが出力されました。どのような原因が考えられますか?
-
ファイル種別の指定が不足していると考えられます。
ファイル種別(テキストファイル)の指定がない場合は、バイナリファイル(固定長レコード形式)として処理します。入力ファイルのサイズがレコード長の整数倍の場合に正常終了することがありますが、テキストファイルを処理する場合は、ファイル種別(テキストファイル)の指定をしてください。
参考
ファイル種別(テキストファイル)の指定方法は以下の通りです。なお、ファイル種別(テキストファイル)の指定と同時にフィールドの指定方法も指定します。
- bsortコマンドの場合
テキストファイルオプション(-T)を指定します。
例) -T fix - bsortexコマンドの場合
入力レコード情報オプション(-record)のrecformオペランドを指定します。
例) -record recform=txtfix
- bsortコマンドの場合
- Q. ディスクの空き容量は充分ありますが、ソート処理中に「一時ファイルの容量が足りません.」というエラーメッセージが出力されました。どのような原因が考えられますか?
-
ソート機能では、処理中に一時ファイルを作成します。一時ファイルを作成するディスクの容量が足りない場合、「一時ファイルの容量が足りません.」というエラーメッセージが出力されます。
参考
一時ファイルを作成するフォルダまたはディレクトリは、以下の優先順位で決定します。
[Windows]
- bsortexコマンドの場合、-optionオプションのtmpdirオペランドで指定されたフォルダ
- 環境変数BSORT_TMPDIRで指定されたフォルダ
- 環境変数TEMPで指定されたフォルダ
- 環境変数TMPで指定されたフォルダ
- Windowsシステムのフォルダ
[Solaris]
- スタートアップファイルのBSORT_TMPDIRで指定されたディレクトリ
- bsortexコマンドの場合、-optionオプションのtmpdirオペランドで指定されたディレクトリ
- 環境変数TMPDIRで指定されたディレクトリ
- システム標準のディレクトリ(/var/tmp)
[Linux]
- スタートアップファイルのBSORT_TMPDIRで指定されたディレクトリ
- bsortexコマンドの場合、-optionオプションのtmpdirオペランドで指定されたディレクトリ
- 環境変数TMPDIRで指定されたディレクトリ
- システム標準のディレクトリ(/tmp)

