問題タブ [ibm-ifs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
character-encoding - IFSにコピーすると、Javaソースの句読点がアクセント付き文字に変更されました
Javaメソッドを使用するRPGLEプログラムを実行しようとしています。システム(Windows XP)からFTPを介してAS / 400 IFSディレクトリにJavaコード(xxxx.javaファイル)を転送しています。それをIFSに転送した後、ファイルCCSIDは819として表示されます。
QSHで.javaファイルをコンパイルしていますが、エラーは表示されません。ただし、2つのクラスファイルが生成されます。すなわち
Mailer.java
→Mailer.class
そしてMailer$1.class
しかし、RPGLEプログラムを呼び出すと、Java例外が表示されます...
Mailer.java
オプション5を押してIFSでファイルを表示すると、、、、、、、などの記号が{
他の記号に変更されます。}
[
]
!
/
\
したがって、plzは、このプログラムを実行できるように、これに対するいくつかの解決策を提案してくれます。文字を別の文字に変更せずに.javaファイルをIFSに転送するにはどうすればよいですか?
ここにいくつかの詳細があります.....
システムCCSID値-819
ジョブCCSID-273
IFSディレクトリのJavaソースコード:
RPGLEプログラムの実行中に示されるJava例外:
java - コードで JT400 を使用した IFS ファイルのコピー
IFS からローカル ドライブにファイルをコピーするこのコードがあります。そして、どうすればより良くなるかについて、いくつかの提案をしたいと思います。
どこ
- ソース = 完全な IFS パス + ファイル名および
- 宛先 = 完全なローカル パス + ファイル名
以下の点についてお聞きしたいです。
を。パフォーマンスに関する考慮事項
- これは、ホスト AS400 システムの CPU 使用率に大きな影響を与えますか?
- これは、使用されるJVMに大きな影響を与えますか(メモリ使用量の観点から)
- これをWebアプリに含めると、アプリサーバーのパフォーマンスに影響しますか(重いタスクになるかどうか)?
- これを使用して複数のファイルをコピーする (冗長に実行する) ことは、関連するすべてのリソースにとって大きな負担になりますか?
b. コード品質
- 私の IFSFileInputStream の実装で十分でしたか、それとも単純な FileInputStream オブジェクトで十分でしたか?
私の知る限り、参照されているソース ファイルが IFS のファイルであることを確認するために AS400 オブジェクトが必要でした。
私は AS400 と IFS の初心者です。経験者の率直な意見をお聞きしたいと思います。
c - iSeries上のCLからwrite()CAPIを呼び出す
それを使用するJavaユーティリティを呼び出す前に、IFSで構成ファイルを作成して設定するプログラムを制御言語で作成しようとしています。
open()およびclose()APIを呼び出してファイルを(再)作成することに成功しましたが、私の人生の間、ファイルに何かを入れるためのwrite()を取得できません。これまでのところ、すべて学習経験でしたが、write()呼び出しにエラーメッセージが表示されず、問題がどこにあるのかがわかりません。
それはほぼ間違いなく私が変数を処理する方法ですが、デバッグセッションはそれらが本来あるべきものであることを示唆しています。
&ERRNOおよび&ERRNO_PTRと同じ方法で&LINEおよび&LINE_PTR変数を宣言しようとしましたが、&LINEに値を割り当てようとすると、ポインターが設定されないというエラーが発生しました。これは、&ERRNO_PTRが最初にアクセスされるためだと思いますが、&LINE_PTRの場合はそうではありませんでした。とにかく、それは赤いニシンかもしれません。
RTVMSGコマンドは、末尾のブランクを除く文字列の長さを見つけるためのトリックです。
デバッグでコードを実行し、write()を呼び出す前に、&LINEには35である&LINELENと同様に、期待どおりの内容が含まれています。次に、write()が呼び出され、エラーは発生しませんが、ファイル。ファイルは空のままです。
最後のメモ。プログラムのすべてのパラメーターは現在使用されていませんが、何か馬鹿げたことをした場合に備えて、完全を期すために残しておきます。したがって、基本的に、宣言の最初の2つのブロックは無視できます。
助けていただければ幸いです。
ibm-midrange - ストリームファイルをプリンタファイルにコピーします
IBMiシステムを使用する必要があります。このタスクは、保存されているファイル(PCL FORMAT)をIFSに取得し、それを(完全にバイナリで)出力キューにコピーすることで構成されます。
そのために私は4つのステップに従います:
しかし、2番目のステップでは、ファイルはシステムによって切り捨てられているようです。
切り捨てられずにストリームファイルをコピーする方法を知っている人はいますか?
私が実行するコマンドは次のとおりです。
ありがとう!
ibm-midrange - IFS 内のファイルの CCSID をプログラムで判別するにはどうすればよいですか?
IFS にはさまざまな CCSID (0、37、819、1200、1252 など) を持つファイルが多数あり、ユーザーがこれらのファイルの内容。
私たちのシステム (V6R1) CCSID (DSPSYSVAL QCCSID) は 65535 [2] で、ジョブのデフォルト CCSID は 37 です。つまり、たとえば CCSID 819 (ASCII) を表示しようとすると、記号やランダムな色などのゴミが表示されます。
私はQtqIconvOpen APIを介してある CCSID から別の CCSID にデータを変換することに精通しているので、ファイルにデフォルトの CCSID とは異なる CCSID があることがわかっている場合は、それを変換できます。私はそれを行うために何年も前にコードを書きましたが、それはうまくいきます。
私の問題は、プログラムで IFS ファイルの CCSID を見つけることです。グーグルで検索した後、私が見つけた唯一の関連情報は、JamesA ( CPYFRMIMPF コマンドで使用される CCSID を決定する方法は? ) の Stackoverflow で、QSHELL で「ls -S」を実行して、CCSID を示すファイルのリストを取得できることを指摘していますとファイル名。
したがって、理論的には、 を実行しls -S filename
、出力を解析して CCSID を取得し、必要に応じてその CCSID を使用してデータの変換を実行できます。ただし、これは見苦しいハックであり、可能であれば IBM API を使用したいと考えています。
からリストを解析するよりも、そのようなAPIまたはよりエレガントなハックを知っている人はいますls -S filename
か?
[1] C API を使用open()
しread()
てclose()
、実際のデータの読み取りを行います。
[2] 65535 が悪い選択であることはわかっていますが、それについて私にできることは何もありません。
view - Crystal レポートが AS/400 IFS からのビューに接続しない
ここで奇妙なケースがあります。AS/400 でビューを作成しました。UNION ALL を実行する必要があるため、ビューを論理に結合しないようにする必要があります。ビューが作成され、IFS にアクセスしてすべてのアクセス許可を付与しました。しかし、Crystal Reports を開いて iSeries に接続し、View のそのライブラリに移動すると、表示されず、使用できません。
他に何かしなければならないことはありますか?
他のことを試しただけです。これはビューです:
現在、Crystal レポートには、データを取得するために使用する COMMAND もあります。同じクエリを作成できますが、時間を考慮して AS/400 で使用したいのですが、ユニオンが必要です。それ以外の場合は、すべて CL 経由でクエリを実行する必要があります。日。SO SELECT ポイントから上記のコードを取得したところ、次のエラーが発生しました。
データベースからデータを取得できませんでした。詳細: HY000 IBM ISeries ACCESS ODBC DRIVER (DB2 UDB) sql 5016 - 修飾オブジェクト名 ICLOCMLM が無効です。ベンダーコード 5016。
それが何を意味するのかわかりません。
shell - 巨大なディレクトリでファイルを見つける - 非常に遅い
ファイルを含むディレクトリがあります。アーカイブは非常に大きく、150 万の pdf ファイルが含まれています。
ディレクトリーは OS V7R1 を搭載した IBM i サーバーに保管されており、マシンは新しく、非常に高速です。
ファイルの名前は次のようになります。
いいえ、シェルを使用して find コマンドでファイルを検索しようとしています。
コマンドに時間がかかったため、操作を中止しましたが、結果はありませんでした。
小さいディレクトリで試してみると、すべて正常に動作します。
後で、毎日実行され、過去 24 時間に作成されたファイルを見つけるジョブが必要ですが、実行速度が遅すぎて忘れてしまいます。
xml - DB2 は CLOB (>16Mb) を IFS に保存します
フィールド (CLOB) の内容を IFS (iSeries) 上のファイルに保存しようとしています。
コンテンツを保存する前にファイルは存在せず、ファイルは完璧に作成されますが、ファイルの最初 (常に位置 1 と 2) に 2 つの奇妙な文字が含まれている理由がわかりません。このキャラクターは常に同じではありません。
clob フィールドとファイル (ifs - smtf) の間の変換に問題があると思います。この問題を解決する方法はありますか?
前もって感謝します!!
PD .:申し訳ありませんが、画像を投稿するには少なくとも 10 の評判が必要なため、画像を添付できませんでした。
RPGLE での変数定義
ibm-midrange - AS/400 IFS 権限の問題
AS/400 IFS オーソリティの管理で頭が痛くなりました。IFS ファイルは、CPYTOIMPF への呼び出しを介して CLE または ILE-COBOL を使用して作成されました。デフォルトでは、IFS でのパーミッション設定は 700 になります。問題は、ファイルを作成したときに使用した ID (A) と、それを使用するユーザーが別の ID (B) になることです。したがって、A と B が同じグループ GP01 に属していても、B はファイルを読み取ることができません。
IFS ルート /RootDir/MyDir を同じグループ、たとえば GP01 に CHGPGP しようとしました。さらに、CHGAUT OBJ('/RootDir/MyDir') USER(*PUBLIC) DTAAUT(*RW) OBJAUT(*NONE) も行いました。ただし、ID B を介してファイルにアクセスすることはまだできません。
助けてください!前もって感謝します。