2024-01-01から1年間の記事一覧

Java ZGC の変遷と設定オプション

ZGC の変遷 ZGC オプション ZGC の変遷 JDK JEP 備考 JDK 11 JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental) Linux/x64 向け JDK 13 JEP 351: ZGC: Uncommit Unused Memory (Experimental) 未使用ヒープをOSに返却 JDK 14 JEP 364:…

Aurora PostgreSQL pg_hint_plan エクステンション

pg_hint_plan の有効化 ヒント句の指定 ヒントテーブル pg_hint_plan は SQL 文にヒント句を指定するエクステンション。 SQL 文に /*+ HashJoin(a b) */ のようなヒントを指定する方法と、hint_plan.hints テーブルに予めヒント定義する方法の2つがあり、実…

Aurora PostgreSQL の shared_buffers パラメータ

shared_buffers Aurora PostgreSQL の shared_buffers DBInstanceClassMemory shared_buffers shared_buffers は 共有メモリバッファ のメモリ量を設定するPostgreSQL のパラメータ。 PostgreSQL 15 からのデフォルト値は 16,384(それ以前は1,024)。 BLCKSZ …

Java 24 で導入 JEP 493 Linking Run-Time Images without JMODs

JEP 493 Linking Run-Time Images without JMODs まとめ Summary Goals Motivation Description Not enabled by default Restrictions Alternatives blog1.mammb.com JEP 493 Linking Run-Time Images without JMODs まとめ JDKベンダがJDKをビルドする際に…

PostgreSQL random_page_cost パラメータについて

random_page_cost パラメータ random_page_cost の意味合い random_page_cost の設定値 random_page_cost パラメータ random_page_cost はディスクからのランダムページアクセスのコストを制御するパラメータでクエリプランナのにコスト計算に影響する。 現…

💩Windows Server 2016(メモリ4G) の Windows Update は一生終わらない

一生終わらない Windows Update このところ Windows Server 2016 の Windows Update がほとんど機能しない。 「更新プログラムを確認しています...」が一生終わらなかったり、メモリ不足エラーで突然死したり。 スタンドアロンインストーラで凌いでいたけど…

Eclipse GlassFish 7.0.18 は glassfish-embedded から直接アプリケーションを起動できます

はじめに glassfish-embedded の設定 glassfish.properties ファイル glassfish-embedded のオプション詳細 コマンド例 はじめに 2024年10月2日リリースの Eclipse GlassFish 7.0.18 では、glassfish-embedded が実行可能JARになり、直接Webアプリケーション…

Playwright for Java でインストール済みのブラウザを利用する

PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD オプション BrowserType.LaunchOptions() まとめ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD オプション Playwright で利用するブラウザは、自動的にダウンロードされる。 ブラウザのダウンロードを抑止する場合は、PLAYWRIGHT_SKI…

Java 24 で正式公開される クラスファイルAPI(JEP 484: Class-File API)

はじめに クラスファイルの読み込み クラスファイルの書き込み クラスファイルの変換 まとめ openjdk.org はじめに Class-File API は以下のプレビューを経て JDK24 で正式公開される予定です。 JDK22 JEP 457: Class-File API (Preview) JDK23 JEP 466: Cla…

Windows Server で圧縮した4G超のファイルが Linux で unzip できない

以下のエラーとなる $ unzip XXX.zip Archive: XXX.zip warning [XXX.zip]: 1234567890 extra bytes at beginning or within zipfile (attempting to process anyway) error [XXX.zip]: start of central directory not found; zipfile corrupt. (please che…

Amazon Linux 2023 上で Ora2Pg 環境を構築する手順

はじめに oracle-instantclient のインストール perl CPAN と必要モジュールのインストール Ora2Pg インストール Ora2Pg の設定 Ora2Pg によるエクスポート はじめに 環境構築がひどく面倒な Ora2Pg を Amazon Linux 2023 で利用するための手順です。 Window…

古いWindowsで DBeaver のドライバダウンロードが失敗する場合の対処法

古いWindows 環境で DBeaver を使った場合に、ドライバのダウンロードが失敗する場合がある。 以下のような IOException が発生するケース Network unavailable java.io.IOException:Exception during a connection to https://repo1.maven.org Error resolv…

jpackage で Windows アプリケーションのインストーラを作成する

はじめに Windows で jpackage によるアプリケーションのインストーラ作成の手順をまとめておきます。 jpackage については以下を参照してください。 blog1.mammb.com Gradle プロジェクト org.beryx.jlink プラグインを使うのが簡単。 build.gradle.kts は…

PostgreSQL クライアントをWindows でインストールなしで使う

psql コマンドだけちょこっと使いたい。 ただそれだけなのだが、クライアントのみのバイナリは配布されていない。 そんな時は、zip archive 版から不要ファイルを削除すれば良い。 PostgreSQL ダウンロードサイトから zip archive のリンクを辿れば postgres…

Windows で jpackage コンソールアプリケーションを作る時は --win-console オプションが必要

少しはまったのでメモ。 Gradle org.beryx.jlink プラグインで、ランタイムがバンドルされたアプリケーションを作成する場合、以下のような build.gradle.kts を作成する。 plugins { application id("org.beryx.jlink") version "3.0.1" } repositories { m…

なぜか Windows 環境で Ora2Pg を使わなければならなくなった場合の環境構築方法

はじめに ショート・バージョン Perl 環境の作成 Oracle instantclient Ora2Pg DBD::Oracle 起動用のバッチファイル作成 Ora2Pg の実行 はじめに Ora2Pg は Oracle から PostgreSQL へのデータベース移行を行うオープンなツールです。 Ora2Pg を使うには Per…

【Rust】 Default トレイト

blog1.mammb.com Default トレイト std::default::Default トレイトの実装により、型に応じた自明なデフォルト値を提供できる。 std::default::Default トレイトは以下のような定義となっている。 pub trait Default: Sized { fn default() -> Self; } 例え…

【Rust】Drop トレイト

blog1.mammb.com Drop トレイト 値がスコープから外れたなどで、値が不要になった場合、Rustはその値に対してデストラクタを実行する。 デストラクタにより、メモリ/ファイルディスクリプタ/ネットワークソケットなどのリソースが解放される(その値の持つ全…

【Rust】Copy マーカートレイト

blog1.mammb.com Rust では、型に対する代入操作は移動となり、資源の所有権が移動する。 Copy 型は、代入操作時にコピーが行われる型を表すマーカートレイト std::marker::Copy を実装する。 pub trait Copy: Clone { // Empty. } Copy トレイトは Clone ト…

【Rust】Clone トレイト

std::clone::Cloneトレイト clone() メソッド clone_from() メソッド blog1.mammb.com std::clone::Cloneトレイト std::clone::Clone トレイトを実装した値は、自身のクローンをメモリ上に新たに作ることができる。 以下のような定義となっている。 pub trai…

Maven Central Repository 公開時の認証をユーザートークンに変更する手順

はじめに ユーザートークンの発行 ユーザートークンの設定 publish 実行 はじめに 2024年6月に Sonatype における認証システムが変更され、ユーザートークンでの認証が必要になったようです。 従来のユーザ名とパスワードで Publish しようとした場合、以下…

Rust のユーティリティトレイトまとめ

名前 説明 Sized コンパイル時にサイズが定まる型に対するマーカトレイト(詳細) Copy 値の置かれたメモリをバイト単位でコピーすることでクローン可能であることを示す マーカトレイト(詳細) Drop 値がドロップされる直前に自動的に実行されるコードを定義(…

【Rust】遅延初期化を行う LazyCell と LazyLock

LazyCell LazyLock LazyCell と LazyLock は遅延初期化を提供する構造体で、Rust 1.80.0 で安定版となった。 LazyLock はスレッドセーフであり、static 変数を遅延初期化できる。 LazyCell LazyCell は初回アクセス時に指定された関数 F で値を初期化し、そ…

DDD モデルの型定義 - jmolecules -

はじめに 集約ルートの指定と型制約 リポジトリに対する制約 外部の集約ルート参照に対する制約 はじめに この記事は、以下の記事の補足説明です。 blog1.mammb.com 集約ルートの指定と型制約 エンティティが、別の集約ルートに属するエンティティとコンポジ…

外部集約ルート参照の関連を表現する Association オブジェクト

はじめに この記事は、以下の記事の補足説明です。 blog1.mammb.com 識別子による外部の集約の参照 集約ルートである以下のような Order がある。 @Entity public class Order { @Id private Long id; @OneToMany private List<LineItem> lineItems; @ManyToOne privat</lineitem>…

DDDの概念表現を提供する jmolecules

DDD コンセプト表現 アーキテクチャ コンセプト表現 CQRS・アーキテクチャ ヘキサゴナル・アーキテクチャ レイヤード・アーキテクチャ オニオン・アーキテクチャ オニオン・アーキテクチャ(ドメインモデルとサービスを分離しない) インターフェース型に基づ…

【Rust】Sized マーカートレイト

sized 型 std::marker::Sized トレイト sized 型 Rust のほとんどの型は、値のメモリ上におけるサイズが既知であり、このような型を sized型 と呼ぶ。 u64は 8 バイトであり、(f32, f32, f32)型のタプルは 12 バイトであり、sized型 である。 さらに、列挙型…

【Rust】OsStr と OsString

OsStr と OsString &OsStr の生成 OsString の生成 &OsStr と OsString の相互変換 OsStr と str の相互変換 OsString と String の相互変換 std::env::Args の例 std::fs::DirEntry の例 OsStr と OsString Rust の文字列は常に有効な Unicode であることが…

ByteBuffer.allocateDirect() はどの程度遅いのか

はじめに ベンチマーク環境 JMH Gradle プラグイン ByteBuffer.allocateDirect のスループット アロケートサイズによるベンチマーク はじめに Java NIO では、java.nio.ByteBuffer を介してチャネルとのデータの受け渡しを行います。 java.nio.ByteBuffer は…

Maven 依存関係の調査で良く使うコマンド

依存関係ツリーの表示 依存ライブラリを最新化する 依存関係の解析 依存関係ツリーの表示 プロジェクトの依存関係階層を表示するには dependency:tree を使う。 mvn dependency:tree 依存関係の階層は、ビルドプロセスが実際に使用する依存関係の解決された…