OpenDolphin

2023年2月 4日 (土)

Java 17 への移行(7) - OpenDolphin client の対応

  • Java 8 では JavaFX が同梱されていたが、Java 17 では openjfx を maven で導入する必要がある
  • JavaFX8 の com.sun.javafx パッケージが全て javafx パッケージに統一されていた。
  • com.apple.eawt パッケージが使えなくなったが、これは大分前に open.dolphin.ui.desktop パッケージにまとめてあったので、java.awt.desktop に切り替えて対応できた。
  • com.apple.laf を extends できなくなったので、使わなくてもいいようにコードを書き直した。
  • トラックパッドを触っている状態を検出するのに jnilib を使っていた。この機会に jni を使わなくても動作するように、コードを工夫して書き直した。
  • monsiaj-pns と同じく、pom.xml でアプリを作れるようにした。monsiaj、opendolphin それぞれのアプリ内部で専用の jre が走っている状態で、贅沢な時代になったものだと思う。
  • apple.awt.brushMetalLookapple.awt.transparentTitleBar として復活していた。とてもうれしい。さらに、apple.awt.fullWindowContentapple.awt.windowTitleVisible なるプロパティもできて、java 1.8 では作れなかった素敵なタイトルバーが作れるようになってた。
Login Stampbox

Java 17 への完全移行が完了し、これで来るべき apple silicon 時代にも対応できるようになったと思う。


WildFly アップデート記録

  • 2008年 JBossAS 4.0.5
  • 2009年 JBossAS 4.2.3
  • 2010年 JBossAS 5.1.0
  • 2013年 JBossAS 7.1.4
  • 2015年 WildFly 8.2.1
  • 2017年 WildFly 10.2.0
  • 2019年 WildFly 18.0.1
  • 2021年 WildFly 25.0.2
  • 2023年 WildFly 27.0.2

2023年2月 3日 (金)

Java 17 への移行(6) - Hibernate 6 でやらかす

Hibernate 6 でデフォルトのプライマリキー採番方法が変更になって、hibernate_sequence からではなく、テーブル名_seq から採番するようになった。これまでの採番方式を維持するためには、persistent.xml に以下のように記載しなくてはならない。

<property name="hibernate.id.db_structure_naming_strategy" value="single" />

今回、これに気付かずに運用開始してやらかしてしまった。Hibernate 5 の時はテスト段階で警告が出てくれたので、hibernate.model.generator_name_as_sequence_name=false をセットして事なきを得たが、今回は警告も出ないし、テストでエラーも出なかったので、完全に油断していた。

木曜日から運用開始して、金曜日まで問題なし。そして土曜日、診療開始してしばらくしてからエラーが出るようになった。

2023-01-28 09:04:22,093 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-80) SQL Error: 0, SQLState: 23505
2023-01-28 09:04:22,093 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-80) ERROR: duplicate key value violates unique constraint "d_module_pkey"
  詳細: Key (id)=(1070) already exists.

土曜日は患者さん多く、すぐに対応するのは不可能。全身から血の気が引いたが、何回か再送すると動くので、頑張って運用を続けた。再送2−3回で送らさったのが多かったが、最高10回再送でやっと通ったのもあった。そして、幸運にも何とか外来終了することができて、最後のカルテが保存できた時は、本当にほっとして力が抜けた。

トラブルの原因となったプライマリーキーの件は、土曜外来終了後に web 検索して判明した。多分、プライマリーキーの若い番号は ModuleModel には割当たってなかったので、最初の1000番くらいは空きがあったのだろう。それを食い尽くして、何とか隙間にねじ込むしかなくなったのが土曜日だったのだと思われる。次回はちゃんとマイグレーションマニュアル読もうと誓った週末であった。

ちなみに、Hibernate 6 の新しいデフォルトの採番は、テーブルごとにインクリメントしていくので、効率的に採番できてよい方法だと思う。当院のように hibernate_sequence を single で使ってしまっていると、bigint なので最大 9,223,372,036,854,775,807 までしか使えない。当院の hibernate_sequence は 15年で既に 2,725,392 に達しており、このままのペースで行くと 50,763,552,748,661年後には使い果たしてしまうことになる。

2023年2月 2日 (木)

Java 17 への移行(5) - OpenDolphin server の対応

OpenSearch 関連設定

  • kuromoji を使用する JapaneseAnalysisConfigurer.java を作成する
    public class JapaneseAnalysisConfigurer implements ElasticsearchAnalysisConfigurer {
        @Override
        public void configure(ElasticsearchAnalysisConfigurationContext context) {
            context.analyzer("japanese").custom()
                .tokenizer("kuromoji_tokenizer")
                .charFilters("icu_normalizer", "kuromoji_iteration_mark")
                .tokenFilters("kuromoji_baseform", "kuromoji_part_of_speech", "ja_stop", "kuromoji_number", "kuromoji_stemmer");
        }
    }
    
  • ModuleModelBridge.java の代替手段
    masuda 先生の ModuleModelBridge.java をずっと使わせてもらっていたのであるが、アップデートで byte[] が byte と判定されるようになってしまい、動かなくなってしまった。そこで、シロウト丸出しな代替案として、fullText なる String フィールドをでっち上げて、setBeanBytes をフックして文字列を書き込ませて、それをインデックスさせるという手を使った。
    @Transient
    @FullTextField(analyzer = "japanese")  // hibernate search
    private String fullText;
    
    public void setBeanBytes(byte[] beanBytes) {
      this.beanBytes = beanBytes;
      // FullTextField を Index させるためのでっちあげ
      if (Objects.nonNull(beanBytes)) { setFullText(beanBytesToString(beanBytes)); }
    }
    
  • persistence.xml に JapaneseAnalysisConfigurer を認識させる
    <property name="hibernate.search.backend.type" value="elasticsearch"/>
    <property name="hibernate.search.backend.hosts" value="localhost:9200"/>
    <property name="hibernate.search.backend.protocol" value="http"/>
    <property name="hibernate.search.backend.analysis.configurer" value="class:open.dolphin.JapaneseAnalysisConfigurer" />
    

検索方法の種類

  • 新しい hibernate search では、検索方法も詳しく選べるようになっていて、通常の検索では phrase() サーチを採用し、simpleQueryString() サーチ、regexp() サーチもオプションできるようにプログラムした。

    List hits = searchSession.search(DocumentModel.class)
      .where(f -> f.bool(b -> {
        b.must(switch (spec.getType()) {
          case QUERY -> f.simpleQueryString().field("modules.fullText").matching(searchText);
          case REGEXP -> f.regexp().field("modules.fullText").matching(searchText);
          default -> f.phrase().field("modules.fullText").matching(searchText);
        });
        :
    

MassIndexer 関連

  • MassIndexer でインデックス条件を指定できるようになったので、STATUS_FINAL の DocumentModel だけインデックスするようにした。インデックス件数が 313,845件から 203,149件に減った。というか、今までは MassIndexer した分は、更新元の古いカルテも全部インデックスされてたということになる。

    MassIndexer massIndexer = searchSession.massIndexer();
    massIndexer.type(DocumentModel.class).reindexOnly("e.status = :status").param("status", IInfoModel.STATUS_FINAL);
    

    なお、ここの e.status ... の前のハードコードされてる sql が jpa compliance に反しているらしく exception を吐く。persistent.xml で hibernate.jpa.compliance.query = false の設定が必要。

MassIndexer のインデックススピードを比較してみたところ、現在使用中の i9-9900 の dolphin サーバで 14.5 doc/sec だったのに対して、こないだ購入した m1 max の mac studio では 41.3 doc/sec だった。例えば OpenSearch を強いマシンで動かして、それを dolphin サーバから利用するようにすると、インデックススピードの改善が期待できる。しないけど。

OpenDolphin サーバ起動

OpenSearch が立ち上がってから WildFly を立ち上げる必要がある。お前が使っているのは Elasticsearch じゃないぞと怒られるが気にしない。

  • OpenSearch が立ち上がった時のメッセージ

    [INFO ][o.o.c.m.MetadataCreateIndexService] [dolphin.local] [document-000001] creating index, cause [api], templates [], shards [1]/[1]
    
  • WildFly に怒られるところ

    WARN  [org.hibernate.search.backend.elasticsearch.dialect.impl.ElasticsearchDialectFactory] (MSC service thread 1-7) HSEARCH400085: Unknown Elast icsearch version running on the cluster: 'opensearch:2.4.1'. Hibernate Search may not work correctly. Consider updating to a newer version of Hibernate Search, if any.
    

ターミナルでの OpenSearch 動作確認

  • インデックス一覧
    $ curl 'http://localhost:9200/_aliases?pretty'
    {
      "document-000001" : {
        "aliases" : {
          "document-read" : {
            "is_write_index" : false
          },
          "document-write" : {
            "is_write_index" : true
          }
        }
      }
    }
    
  • アナライザの動作確認
    $ curl -X POST 'localhost:9200/document-000001/_analyze?pretty' -H "Content-type: application/json" -d '{"analyzer": "kuromoji", "text": "カルテ記載のテスト"}'
    {
      "tokens" : [
        {
          "token" : "カルテ",
          "start_offset" : 0,
          "end_offset" : 3,
          "type" : "word",
          "position" : 0
        },
        {
          "token" : "記載",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "word",
          "position" : 1
        },
        {
          "token" : "テスト",
          "start_offset" : 6,
          "end_offset" : 9,
          "type" : "word",
          "position" : 3
        }
      ]
    }
    
  • 取得データ確認
    $ curl 'http://localhost:9200/document-000001/_search?pretty'
    
  • インデックス削除
    $ curl -X DELETE 'http://localhost:9200/document-000001?pretty'
    {
      "acknowledged" : true
    }
    

その他の WildFly 27 関連修正

  • javaee が jakartaee になっており、大量の javax を jakarta に書き換える必要があった。
  • RestEasy がバージョン 6 になって、RestEasyClient の作り方が変わった。
  • Hibernate Search 6 では、FullTextEntityManger ではなく、SearchSession で操作するようになった。
  • jackson はバージョン 2.13.4 になっており、jackson-databind が jackson.databind となる微妙な変化もあった。

2023年2月 1日 (水)

Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編]

Ubuntu での OpenSearch のインストール

  1. ubuntu で java 17 をインストール
    $ sudo aptitude install openjdk-17-jre
    $ sudo update-alternatives --config java
    alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。
    
      選択肢    パス                                          優先度  状態
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      自動モード
      1            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      手動モード
    * 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手動モード
      3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      手動モード
    
    現在の選択 [*] を保持するには 、さもなければ選択肢の番号のキーを押してください: 0
    update-alternatives: /usr/bin/java (java) を提供するために自動モードで /usr/lib/jvm/java-17-openjdk-amd64/bin/java を使います
    $ java -version
    openjdk version "17.0.5" 2022-10-18
    OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu118.04)
    OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu118.04, mixed mode, sharing)
    
  2. curl のインストール。curl を使うと、OpenSearch と http で通信できる。
  3. vm.max_map_count を最低でも 262,144 に設定するように書かれている
    $ cat /proc/sys/vm/max_map_count
    65530
    $ sudo vi /etc/sysctl.conf
    vm.max_map_count=262144
    $ sudo sysctl -p
    vm.max_map_count = 262144
    
  4. まだ ubuntu にレポジトリがないので、直接ダウンロードサイトから tarball を取ってくる
    $ tar xvzf opensearch-2.4.1-linux-x64.tar.gz
    opensearch-2.4.1/
    opensearch-2.4.1/LICENSE.txt
    opensearch-2.4.1/NOTICE.txt
     :
    $ ln -s opensearch-2.4.1 opensearch
    
  5. 初期インストールのプラグインは全部消す
    $ cd opensearch
    $ rm -rf plugins/*
    
  6. config/opensearch.yml を設定して起動してみる
    $ vi ./config/opensearch.yml
    cluster.name: opensearch_dolphin
    path.data: /home/dolphin/opensearch/var/lib/opensearch
    path.log: /home/dolphin/opensearch/var/log/opensearch
    $ ./bin/opensearch
    WARNING: A terminally deprecated method in java.lang.System has been called
    WARNING: System::setSecurityManager has been called by org.opensearch.bootstrap.OpenSearch (file:/home/dolphin/opensearch-2.4.1/lib/opensearch-2.4.1.jar)
     :
    
  7. プラグインインストール
    $ ./bin/opensearch-plugin install analysis-kuromoji
    $ ./bin/opensearch-plugin install analysis-icu
    
  8. インデックスのバックアップは ./var/lib/opensearch/nodes を保存しておく
    $ cd ./opensearch/var/lib/opensearch
    $ tar cvzf opensearch-nodes.tgz nodes
    

2023年1月31日 (火)

Java 17 への移行(3) - OpenSearch の準備 [mac 編]

WildFly 27 では、hibernate search がバージョン 6 になっており、検索インデックス作成で、従来の lucene の他に Elasticsearch というのが選べるようになっていた。Elasticsearch は独立したシステムで、別のサーバで動かしたりもできるらしい。おもしろそうなので、これを採用することにした。

しかし、なんか大人の事情で、Elasticsearch は無料で使っていいのかどうか微妙なライセンスに変更されたらしく、無料で使いたい場合は、ライセンス変更前の Elasticsearch からフォークされた OpenSearch を使うことになっているらしかった。実際、mac の brew では Elasticsearch がインストールできず、OpenSearch をインストールするように促される。

Error: elasticsearch has been disabled because it is switching to an incompatible license. Check out `opensearch` instead!

OpenSearch のインストール

MacOS

OpenSearch をいろいろ試すために、まずは mac にインストールしてみた。プラグインとして、analysis-kuromoji という日本語形態素解析プラグインと、analysis-icu という Unicode サポートのプラグインをインストールした。

brew で opensearch と analysis-kuromoji、analysis-icu プラグインをインストールする

$ brew install opensearch
$ vi /opt/homebrew/etc/opensearch/opensearch.yml
cluster.name: opensearch_dolphin
$ opensearch
warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release
WARNING: A terminally deprecated method in java.lang.System has been called
 :
[2023-01-01T15:47:57,232][INFO ][o.o.n.Node               ] [dolphin] started
[2023-01-01T15:47:57,250][INFO ][o.o.g.GatewayService     ] [dolphin] recovered [0] indices into cluster_state
$ opensearch-plugin install analysis-kuromoji
$ opensearch-plugin install analysis-icu
$ opensearch-plugin list
warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release
analysis-icu
analysis-kuromoji

ちなみに、OpenSearch は、今後専用の jdk とバンドルされて配布されるようになる予定らしく、no-jdk distribution の warning が毎回出る。

2023年1月30日 (月)

Java 17 への移行(2) - WildFly 27.0.2 の準備

Java 17 への移行にあたって、どうせなら wildfly も最新にしておこうと思って wildfly 27.0.2 を準備した。なんと、最新の wildfly では、もはや java 1.8 はサポートから外れていた。mac でのビルドとインストールはいつも通り問題なく終了した。

WildFly 27.0.2 の準備

WildFly の GitHub から branch 27.x を選択,"Download Zip" して解凍する。作業時点ではこれで 27.0.2.Final がダウンロードされた。

mac で WildFly 27.0.2 のビルド

brew をアップデートして mvn と ant を最新にしておいてからビルド

$ brew update ; brew upgrade
$ mvn install
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/jboss/jboss-parent/39/jboss-parent-39.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/jboss/jboss-parent/39/jboss-parent-39.pom (68 kB at 68 kB/s)
Downloading from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/wildfly/core/wildfly-core-parent/19.0.1.Final/wildfly-core-parent-19.0.1.Final.pom
Downloaded from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/wildfly/core/wildfly-core-parent/19.0.1.Final/wildfly-core-parent-19.0.1.Final.pom (127 kB at 81 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
 :
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  54:08 min
[INFO] Finished at: 2023-01-16T12:31:00+09:00

これで wildfly-27.0.2.Final-SNAPSHOT ができる。WildFly 25.0.2 と同じく,full distributable build が欲しい場合は,build/target ではなく,dist/target の方を使う必要がある。

WildFly 27.0.2 のセットアップ

  • ./standalone.sh -b 0.0.0.0 で立ち上げて,./add-user.sh で管理ユーザ登録
  • JDBC の登録(ドライバは postgresql-42.5.1.jar),data-source の作成,パスワード登録。
    $ ./jboss-cli.sh --connect
    [standalone@localhost:9990 /] module add --name=org.postgres --resources=~/Downloads/postgresql-42.5.1.jar --dependencies=javax.api,javax.transaction.api
    [standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
    [standalone@localhost:9990 /] data-source add --jndi-name=java:jboss/datasouces/DolphinDS --name=DolphinDS --connection-url=jdbc:postgresql://localhost/dolphin --driver-name=postgres --user-name=dolphin
    [standalone@localhost:9990 /] /subsystem=datasources/data-source=DolphinDS:write-attribute(name=password, value=dolphin)
    [standalone@localhost:9990 /] quit
    

2023年1月28日 (土)

Java 17 への移行(1) - monsiaj

Java 1.8 (java 8) の Extended Support 終了期限は 2030年12月に設定されている。思い返せば、15年前に OpenDolphin を初めて動かしたのが java 1.5 で、それから 1.8 までバージョンアップしてきた。そして、1.8 サポート終了の 2030年といえば、自分はもう結構な年になっているし、まだ仕事をしているかどうかも怪しい。もしかしたら java 1.8 が人生最後の java かもしれないと思っていた。

しかし、apple silicon の登場により状況が変わった。当院の OpenDolphin は java 1.8 + javafx8 なのだが、このままでは apple silicon にネイティブ対応できない。Rosetta エミュレーションで動くことは動くが、rosetta もいつまでサポートされるか分からない。Apple silicon ネイティブ対応の java を検討したところ、javafx を含めてネイティブ対応しているのは java 17 からであることが判明した。というわけで、壮大な java 17 移行計画がスタートしたのであった。

まずは、自院向けにカスタマイズした monsiaj-pns を java 17 で動かすことから始めてみた。Java 17 では jre がなくなっており、jre に当たる環境を自分で jlink で作って、jpackage でそれを取り込んだ mac 用のアプリを作るというシステムになっている。つまり、java がインストールされていなくても、普通のアプリのように単体で動くアプリが作れる。さらに、作成される jre は jar が動く最小限の環境でいいため、jre を組み込んでも、アプリの容量はそれほど大きくならない。進化している、おそるべし java 17。

monsiaj のコードはそのままコンパイラが通ったので、pom.xml に jlink, jpackage の処理を書き加えて、無事 mac 用のアプリを作ることができた。ついでに、maven の profile で mac と windows を切り替えて、windows 用の msi インストーラも作れるようにしてみた。(wix toolset が必要)

1_orca_update_apple

ソース

2022年12月10日 (土)

オン資薬剤情報読み込み機能 (2)

いつの間にか orca の tbl_onshi_yakuzai_main が拡張されて、処方された施設名 (hospname, chozainame) が項目に加わっていた。

               Table "public.tbl_onshi_yakuzai_main"
    Column     |         Type          | Collation | Nullable | Default
---------------+-----------------------+-----------+----------+---------
 hospnum       | smallint              |           | not null | 0
 tbl_uuid      | character varying(36) |           | not null |
 ptid          | bigint                |           | not null | 0
 sryym         | character varying(6)  |           | not null |
 nyugaikbn     | character varying(1)  |           | not null |
 hknjanum      | character varying(8)  |           |          |
 kigo          | character varying(80) |           |          |
 num           | character varying(80) |           |          |
 edaban        | character varying(2)  |           |          |
 hospcd        | character varying(10) |           |          |
 hospname      | character varying(80) |           |          |
 chozaicd      | character varying(10) |           |          |
 chozainame    | character varying(80) |           |          |
 chozai_seqnum | smallint              |           |          | 0
 chozai_kbn    | character varying(1)  |           |          |
 shoho_seqnum  | smallint              |           |          | 0
 shoho_kbn     | character varying(1)  |           |          |
 :
 :

これを利用して、OpenDolphin のオン資 ChartDocument に施設名が出るようにしてみた。

Screen

2022年8月17日 (水)

オン資薬剤情報読み込み機能

来年からオンライン資格確認(オン資)が義務化されるとのことで、ぼちぼち準備を進めている。オン資では、患者さんが同意すると、他医処方内容を ORCA に読み込むことができる。これを、OpenDolphin で使えるようにしてみた。

オン資 ChartDocument (Onshi.java) を作り、ボタンで処方情報をJTextPane に読み込むようにした。シロウト丸出しな仕組みであるが、必要箇所をコピーしてカルテにペーストして使えるので、自分で使う分にはこんなもんで十分だと思う。処方は、処方日ごとだけでなく、薬剤単位でもまとめるようにした。どの薬剤がいつから投与されたかがわかりやすくなり、薬疹の診断に役立つと思う。

Onshi

2021年12月21日 (火)

WildFly 25 へのアップデート

世間では log4j の脆弱性が見つかって大騒ぎとなっていたが、当院のクライアントは logback、サーバは jboss logging なので、影響はないと考えられた。ただ、今回の騒動で、サーバを WildFly 18 で放置したままだったことを思い出してしまった。そろそろやばいかもしれないと思い立ち、よい機会なのでアップデートすることにした。

WildFly 25.0.2 の準備

WildFly の GitHub から branch 25.x を選択,"Download Zip" して解凍する。作業時点ではこれで 25.0.2.Final がダウンロードされた。

mac で WildFly 25.0.2 のビルド

brew をアップデートして mvn と ant を最新にしておく。

$ brew update ; brew upgrade

しかる後に build。JAVA_HOME を指定しないと jre を使ってしまうため、 tool.jar が見つからないと怒られる。ちなみに,java はまだ 1.8.0 のままである。

$ JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home mvn install
[INFO] Scanning for projects...
Downloading from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/wildfly/core/wildfly-core-parent/17.0.3.Final/wildfly-core-parent-17.0.3.Final.pom
Downloaded from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/wildfly/core/wildfly-core-parent/17.0.3.Final/wildfly-core-parent-17.0.3.Final.pom (123 kB at 61 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
 :
BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  26:20 min
[INFO] Finished at: 2021-12-15T08:22:04+09:00
[INFO] ------------------------------------------------------------------------

これで wildfly-25.0.2.Final-SNAPSHOT ができる。WildFly 18.0.1 と同じく,full distributable build が欲しい場合は,build/target ではなく,dist/target の方を使う必要がある。

WildFly 25.0.2 のセットアップ

  • ./standalone.sh -b 0.0.0.0 で立ち上げて,./add-user.sh で管理ユーザ登録
  • JDBC の登録(ドライバは postgresql-42.3.1.jar),data-source の作成,パスワード登録。
    $ ./jboss-cli.sh --connect
    [standalone@localhost:9990 /] module add --name=org.postgres --resources=~/Downloads/postgresql-42.3.1.jar --dependencies=javax.api,javax.transaction.api
    [standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
    [standalone@localhost:9990 /] data-source add --jndi-name=java:jboss/datasouces/DolphinDS --name=DolphinDS --connection-url=jdbc:postgresql://localhost/dolphin --driver-name=postgres --user-name=dolphin
    [standalone@localhost:9990 /] /subsystem=datasources/data-source=DolphinDS:write-attribute(name=password, value=dolphin)
    [standalone@localhost:9990 /] quit
    

OpenDolphin の修正

  1. WildFly 25 の pom.xml に合わせて,OpenDolphin クライアント・サーバの pom.xml のバージョンを変更する。RestEasy は 4.7.2、Jackson は 2.12.3 になっていた。
  2. Resteasy 3 から 4 になって、ResteasyClient の作成方法が変更になった。
  3. Jackson は 2.10 以降セキュリティチェックが厳しくなったようで、StampModel と ModuleModel でいろいろなクラスで使い回していた model フィールドを、実際にどのクラスが使っているのかの指定が必要になった。

起動時に dolphin サーバを立ち上げる

crontab を更新

$ crontab -l
@reboot /home/dolphin/wildfly-25.0.2.Final-SNAPSHOT/bin/standalone.sh -b addr.of.dolphin.server > /dev/null 2>&1

lucene index

hibernate search のバージョンは変わっていないので、インデックスはそのまま使えた。エントリー数は WildFly 18 に移行した 2019年 の 259,968 件から 295,603 件に増加していた。


WildFly アップデート記録
  • 2008年 JBossAS 4.0.5
  • 2009年 JBossAS 4.2.3
  • 2010年 JBossAS 5.1.0
  • 2013年 JBossAS 7.1.4
  • 2015年 WildFly 8.2.1
  • 2017年 WildFly 10.2.0
  • 2019年 WildFly 18.0.1
  • 2021年 WildFly 25.0.2

より以前の記事一覧