($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
IBM iへのデータ転送が未完了のまま次のステップにいってしまう YA さん [ 6月23日(木) 14時7分 ]
お世話になります。

CLにてIBM iへのデータ転送を実行し、プログラムをCALLしています。
しかしながら、データ転送が未完了のまま次のステップにいきプログラムがCALLされてしまいま
す。しかも、この現象は一部のパソコンを使用している人達に起こる現象です。何か設定があるので
しょうか?

ちなみにCLプログラムでは、
 STRPCCMD   PCCMD('RFROMPCB.EXE +                       
              C:\TEST.DTT /I') PAUSE(*YES)  のように記載してあります。
アドバイスをお願いします。
                                                        
RE:IBM iへのデータ転送が未完了のまま次のステップにいってしまう IKD さん [ 6月23日(木) 16時48分 ]
IBM i では CALL 命令は CALL したプログラムが実行されて終了まで
待って次のステップへと進みます。
これは周知の事実で当然なことです。

しかし Windows では CALL に相当する命令はありません。

Windows では別のプロセスに投入することになります。
投入したジョブの完了を待つことはしません。
ただ投入するだけです。
これが普通のやり方です。
つまり IBM i で言うところの SBMJOB です。
( Windows でも投入したプロセスが終了するまで待機する、という
処理はありますが利用されている頻度は少ないです。
   CreateProcess + WaitForSingleObject でしたっけ? )

SBMJOB であれば別のプロセスに「投入」すればそれは完了したことになって
次のステップに進みます。
従って STRPCCMD PAUSE(*YES) で RFROMPCB.EXE のプロセスの完了を
待機はしますが RFROMPCB.EXE の内部の処理で実際のダウンロードを別のプロセスに
投入しているのであれば、その投入が完了すれば RFROMPCB.EXE は完了したことに
なるので STRPCCMD も完了したと見なされてしまいます。

従って RFROMPCB.EXE の動作内容がわからないとどうにもしようがありません。
PC による設定で回避できる問題ではありません。
RFROMPCB.EXE で落としたファイルの存在をチェックするなりの
別の手段が必要です。
特定のPCの設定などに依存する問題ではありません。
STRPCCMDは別セッション となりのSE さん [ 6月23日(木) 19時58分 ]
PCは別セッションでASに接続します。
  悪い言葉で言えば たれながし。
  応答はありません。

STRPCCMD の PAUSE(*YES) も 動作不安定です。
 
相当な工夫が必要です。     
RE:STRPCCMDは別セッション YA さん [ 6月24日(金) 9時21分 ]
> お世話になります。
> 
> CLにてIBM iへのデータ転送を実行し、プログラムをCALLしています。
> しかしながら、データ転送が未完了のまま次のステップにいきプログラムがCALLされてしまいま
> す。しかも、この現象は一部のパソコンを使用している人達に起こる現象です。何か設定があるの

> しょうか?
> 
> ちなみにCLプログラムでは、
>  STRPCCMD   PCCMD('RFROMPCB.EXE +                      
 
>               C:\TEST.DTT /I') PAUSE(*YES)  のように記載してあり
ます。
> アドバイスをお願いします。
>                                             
            
RE:STRPCCMDは別セッション YA さん [ 6月24日(金) 9時24分 ]
回答ありがとうございます。

そうなんですね。参考になりました。別方法を検討してきます。

> お世話になります。
> 
> CLにてIBM iへのデータ転送を実行し、プログラムをCALLしています。
> しかしながら、データ転送が未完了のまま次のステップにいきプログラムがCALLされてしまいま
> す。しかも、この現象は一部のパソコンを使用している人達に起こる現象です。何か設定があるの

> しょうか?
> 
> ちなみにCLプログラムでは、
>  STRPCCMD   PCCMD('RFROMPCB.EXE +                      
 
>               C:\TEST.DTT /I') PAUSE(*YES)  のように記載してあり
ます。
> アドバイスをお願いします。
>                                             
            

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目