メモリ
- -XX:MaxRAM
- -XX:MaxRAMPercentage
設定された値の確認
- -XshowSettings:vm
- -XX:+PrintFlagsFinal
JBoss EAP 7.4 に PostgreSQL のデータソースを作る流れのメモです。 今回は、Webコンソールではなく、CLI を使用します。 必要最低限の設定しかしないので、本番では参考資料をご確認のうえ、適切に設定しましょう。
参考資料はこちら 第12章 データソース管理 Red Hat JBoss Enterprise Application Platform 7.4-beta | Red Hat Customer Portal
データソースの作成には、JDBCドライバが必要です。
まずは必要なドライバをダウンロードしましょう。
この例は、JDBCドライバとしてpostgresql-42.7.3.jar
を使用しています。
JBoss EAP の CLI ツールを実行します。
${JBOSS_HOME}\bin\jboss-cli.bat
まずは、APサーバに接続します。 次に、JDBCドライバのJARファイルを登録します。 その後、JDBCドライバの設定をします。 最後にデータソースを作成します。
connect module add --name=org.postgres --resources=postgresql-42.7.3.jar --dependencies=javax.api,javax.transaction.api /subsystem=datasources/jdbc-driver=postgres:add(driver-name=postgres,driver-module-name=org.postgres,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource, driver-class-name=org.postgresql.Driver) data-source add --name=PostgresDS --jndi-name=java:/PostgresDS --driver-name=postgres --connection-url=jdbc:postgresql://localhost:5432/user
データソースが作成できたら、接続確認をしましょう。これも CLI でできます。
/subsystem=datasources/data-source=PostgresDS:test-connection-in-pool
以下のように success と返ってくれば接続できています。
{ "outcome" => "success", "result" => [true] }
私は仕事上、OpenJDK, Quarkus, Wildflyなど大規模なJavaのOSSをビルドして検証・バグ修正・不足機能を開発することがよくあります。 これらは大規模すぎるため、全体をビルドすると何時間もかかります。 このビルド時間は、使用しないモジュールのビルドや各モジュールでのテストも含んでいます。
時短の方法はいろいろあります。 その方法を自分のメモにしか記録していなかったため、バックアップも兼ねてここに残しておきます。 それぞれの要素は組み合わせもできます。
「他にもあるよ」という方がいらっしゃれば今後のために教えて頂けると助かります。
ここにあるものを試しても遅い場合は、速くてコアの多いCPU、高速なインターネット、IOPSの高いSSDを導入してください・・・
Lifecycleはinstall
にしていますが他でも大丈夫です。
まずは、自分が使いたいモジュールと、そのモジュールが依存しているモジュールだけをビルドしてローカルのリポジトリへインストールします。
mvn install -pl <使いたいモジュールまでのパス> -am
自分が使いたいモジュールは-pl
で指定します。
-pl
は--projects
の短縮形です。
自分が使いたいモジュールが依存しているモジュールを含めてビルドするには-am
を使用します。
-am
は--also-make
の短縮形です。
ビルドを実行すると、だいたいどこかで失敗します。 失敗しても、これまでコンパイルしたクラスやダウンロードしたものがあります。 失敗したときに、また最初からビルドすればそれらを活用できるため、1度目よりは早く失敗した箇所へ戻れるでしょう。 しかしながら、それでも時間はかかるので、失敗したところから再開します。
mvn install -rf :ビルドを再開したいモジュール
再開するときに使うのが-rf
です。
-rf
は--resume-from
の短縮形です。
テストは重要です。 しかしながら、検証するときはテストをしたい訳ではありません。 特に、最初に検証するときにはテストをスキップしたいでしょう。
mvn install -DskipTests
テストをスキップする時に使うのは-DskipTests
です。
ただし、test
ライフサイクルと一緒に使うとテストが実行されないので注意してください。
私がよく触っているQuarkusですと、できるだけ高速にビルドするオプションが用意されています。
mvn install -Dquickly
なるべく高速にビルドしたいときに使うのは-Dquickly
です。
これはテストの実行やコンパイルなどいろんなものを省いてくれます。
これも、test
ライフサイクルと一緒に使うとテストが実行されないので注意してください。
一度全体のビルドが済むと、いくつかの特定のモジュールだけを修正することになります。
毎回ディレクトリを移動していると自分がどこにいるのか把握するのは難しいです。
ビルドしたと思ったら別のモジュールだったということが良くあり、時間の無駄になります。
カレントディレクトリはgit clone
した直下にしたまま、それぞれのモジュールをビルドしましょう。
mvn -f <モジュールまでのパス> clean install
ここではclean
も付けています。
モジュールを修正すると、.java
ファイルを削除することがあります。
しかしながら、コンパイル済みの.class
ファイルは残っています。
これによって消したはずのクラスが読み込まれます。
それを避けるため、clean
を付けましょう。
clean し忘れてて、既に存在しないクラスの残骸が読み込まれていた・・・
— Chihiro Ito (@chiroito) 2023年12月13日