*

[jt400, Java]AS400のファイルを更新するためにREADした時にRecord Lockをかける

公開日: : 最終更新日:2015/04/17 AS400, java

RPG3なんかだと更新用のファイルはREADの瞬間に自動でレコードロックがかかります。
で、それをjt400のAS400Fileクラスを使った場合のレコードロックの掛け方を残しておきます。
こんな情報を必要とする人はいないと思いますが……。

ちなみにjt400はデフォルトだとREADした後にレコードロックがかからないので注意してください。

    public static void main(String[] args){
        AS400 sys = new AS400();
        QSYSObjectPathName path = new QSYSObjectPathName("HOGEDLIB", "HOGEFILE", "HOGEFILE", "MBR");
        SequentialFile file = new SequentialFile(sys, path.getPath());
        RecordFormat recFmt = new RecordFormat("HOGEFILER");    // 文字列はHOGEFILEのレコード様式名を指定します。
        recFmt.addFieldDescription(new CharacterFieldDescription(new AS400Text(10, 5026), "FILER"));    // 最初桁は10桁の文字フィールド(FILERという名前)を定義しています。
        try {
            file.setRecordFormat(recFmt);
            file.open();
            file.startCommitmentControl(AS400File.COMMIT_LOCK_LEVEL_CHANGE);
            file.commit();
            Record rec;
            if((rec = file.read(1)) != null){
                System.out.println("このタイミングではレコードロックがかかっています。");
                file.update(rec);
                System.out.println("このタイミングでレコードロックが解除されます。");
            }
            file.close();
        } catch (Exception ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }

file.commit(); を実行するまで、startCommitmentControlの変更が反映されないみたいです。
ちなみに今回はファイルのDDSを定義しないで、内部定義チックに記述してます。
XMLで定義できるのでそっちのがお勧めです。

ad

関連記事

logo

AS400のインターフェースファイル

AS400にODBC接続するときに、ライブラリ名一覧が欲しい場合があります。 さて、それでは、

記事を読む

NetBeans

[Java, NetBeans]NetBeansをインストールしてHelloWorldまで。

JavaのIDEは? よく挙げられるのがEclipseとNetBeans。 前はExclipse

記事を読む

logo

[Java]DbUtilsでORA-12519エラー

DbUtilsを使ってたんですが、Oracleに対して処理するとORA-12519というエラーコード

記事を読む

logo

[SQL, DB2]FETCH FIRSTで指定した行数データを取得する(営業日計算)

営業日計算 営業日を計算するのは結構面倒です。 特に独自のテーブルだと非常に厄介です。 例

記事を読む

logo

[C#, AS400]列挙体の文字列化&DB2/400にODBC接続

定数をなるべく書きたくないんです。 あとからメンテをするときに複数箇所変更しなくてはいけないから。

記事を読む

wannabenote

[java, NetBeans, AS400]NETBEANSで作成したjavaプロジェクトをAS400上で実行する。

概要 NetBeansでコンパイルしたものをそのままAS400に実行させます。 また、NetBe

記事を読む

logo

[C#]AS400をDBに見立ててPCのPGMからODBC接続する

◆前提条件◆ PCにClient Accessがインストールされている。 PCに.NET Fra

記事を読む

logo

[java, NETBEANS]出来上がったclassファイルをコマンドラインで実行する。

コマンドラインから実行 以前作成したJavaのHelloWorldをコマンドラインから実行してみま

記事を読む

logo

[jt400, Java]レコードレベルアクセスの実現

到着順 AS400のファイルシステムですと、レコードを読み込んで、処理して、出力して、次のレコード

記事を読む

AS400_1

PCを新しくしました〜5250エミュレータの受難編〜

会社のPCを新しくしました。 CPUがi5でメモリは8GBで、とアホみたいな顔しながら注文して

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑