問題タブ [jtopen]
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.
ibm-midrange - IBM i RPG プログラムは、JT400 接続プールを使用して呼び出した後、間違ったライブラリーを参照しています
CL プログラムを呼び出す Java アプリケーションがあります。CL プログラムは、JT400 ライブラリーを使用して、IBM i システム上でいくつかの RPG プログラムを実行します。
最初は、このように毎回新しい接続を開き、完了したら閉じました。
ただし、接続の量が増加しているため、最近接続プールの使用を開始しました。
各接続は、閉じられるのではなく、使用後にプールに返されるようになりました。
残念ながら、以前は完全に実行されていたのと同じジョブが見られるようになり、IBM i でステータス MSGW になることもありました。(メッセージ待ち)
ジョブ ログを分析しているときに、最後に次のタイプのエラーがあることに気付きました。
ファイルの OPEN 中に CPF4131 が表示された
2 つの異なるライブラリから同時にジョブを実行すると発生するようです。プログラムは通常、IBM i に対して約 10 の接続を同時に開いており、多くの異なるジョブが同時に実行されている可能性があります。ほとんどは同じ 1 つのライブラリーからのもので、別のライブラリーにあるものはわずかです。後で同じ呼び出しを実行すると、問題なく実行されます。
プログラム呼び出しを実行しているライブラリは、このプログラムで参照されていない他のライブラリのファイルを探しているようです。
たとえば、次の CL 呼び出し:
CALL PGM(ADDPRGXX/TESTCL)
最終的に、後続の RPG 呼び出しで次のようなエラーが発生します。
TESTRPG *INIT ADDPRGXX OPEN SOMEFILE CPF4131 メンバー SOMEFILE を持つライブラリー ADDFILXS 内のファイル SOMEFILE のレベル検査。
&N 原因 . . . . . : ライブラリ ADDPRGXX 内の RPG プログラム TESTRPG は、ファイル SOMEFILE に対して暗黙の OPEN を実行中に、メッセージ CPF4131 を受け取りました。メッセージ CPF4131 の完全な説明については、ジョブ・ログを参照してください。ファイルの装置タイプが SPECIAL の場合、ジョブ・ログにメッセージがない場合があります。&N 回復。. . : キャンセルするには C、システム ストレージの印刷出力を取得するには S、システム ストレージの RPG 形式の印刷出力を取得するには D、またはシステム ストレージの完全な形式の印刷出力を取得するには F を入力します。&N message に返信するための可能な選択肢。. . . . . . . . . . . . . . : &B D -- システム ストレージの RPG 形式の印刷出力を取得します。&B S -- システム ストレージの出力を取得します。&B F -- システム ストレージの完全にフォーマットされたプリントアウトを取得します。&B C -- キャンセル。
例の SOMEFILE は ADDFILXS には存在しませんが、ADDFILXX にのみ存在し、ADDFILXS はプログラム呼び出しで参照されることはありません。
CL プログラムは、必要なライブラリーを追加することから始めて、次に RPG を呼び出します。
後続の RPG 呼び出しで使用するライブラリーへの参照が必要ですか? あるいは、これを防ぐために接続プールで何か他のことをする必要がありますか?
ライブラリごとに 2 つの個別のプールを使用し始めましたが、これは機能しているようです。しかし、根本的な原因を見つけて修正することをお勧めします。
ibm-midrange - RPG プログラムから任意のバイナリ データを返す
私がこのプログラムインターフェースを持っているとしましょう
を介して呼び出すとJTOpen
、入力/出力パラメータに割り当てられたデータが読み取られますoutInfo
。問題は、%alloc
-ated データが の最大次元を超えていることですoutInfo
。
それで、私は何をすべきですか?たとえば、AS400ByteArray
asを渡すことはできProgramParameter.PASS_BY_REFERENCE
ますが、RPG コードで何をすればよいでしょうか?
注意: V5R1 と互換性がある必要があります。
java - SSL/SSH を使用して SecureAS400 に接続する方法の動作例
私はいくつかの IBM i システムを扱っています。そのうちの 1 つは、5250 セッションを開く前に SSH 接続を設定する必要があります。私は次のコマンドを使用します: ssh -i Keys_rsa L 50023:localhost:23 USER@HOST IP 127.0.0.1 を指す 5250 セッションを開いた後、それは機能します...しかし、サーバーからデータを取得する Java プログラムがあります。接続できません。ポートの接続と設定の例が必要です。JTOpen/JT400 AS400オブジェクトを使用していますが、SecureAS400オブジェクトに移行する必要があると思います...誰か助けてくれますか?