Composer での ThingWorx モデルの定義 > データストレージ > 永続化プロバイダ > 永続化プロバイダとしての PostgreSQL の使用
永続化プロバイダとしての PostgreSQL の使用
PostgreSQL はオープンソースのオブジェクトリレーショナルデータベースシステムです。PostgreSQL 永続化プロバイダはモデルプロバイダとデータプロバイダの両方をサポートします。
* 
PostgreSQL を使用するには登録、インストール、コンフィギュレーションが必要です。このプロセスのほとんどは ThingWorx から独立して実行し、これについては 「ThingWorx のインストール」に説明があります。
PostgreSQL HA
PostgreSQL High Availability (HA) をデータソリューションの一部として使用することもできます。HA により、プライマリデータベースサーバーで障害が発生した場合にデータの読み取りと書き込みを取り込む別々のサーバーを設定できます。HA が PostgreSQL の実装に含まれている場合、推奨されるインストールと展開の詳細について、ガイドの該当するセクションを参照してください。
PostgreSQL の実装プロセスの概要
1. PostgreSQL が自分のデータに適したソリューションであるかどうかを判断します。詳細については、サイジングとプランニングのセクションを参照してください。
2. PostgreSQL をダウンロードしてインストールします。このプロセスは ThingWorx から独立して実行します。前述のガイドに展開例が掲載されています。
* 
PostgreSQL の標準の実装には永続化プロバイダが含まれ、これを ThingWorx 内で編集することはできません。ただし、platform-settings.json またはサービスを介してこれを編集することは可能です。
3. ThingWorx で PostgreSQL データストアに接続する追加の永続化プロバイダインスタンスを作成する場合、「データストレージ」 > 「永続化プロバイダ」に移動し、緑色のプラス記号 (「+」) をクリックします。
4. 「一般情報」画面で、永続化プロバイダの名前を入力します。
5. 「永続化プロバイダパッケージ」フィールドで、マジックピッカーを使用して、PostgreSQL 永続化プロバイダパッケージを選択します。
6. 「コンフィギュレーション」をクリックし、以下の設定を行います。
すべてのストリームと値ストリームに適用される、以下のストリームおよび値ストリームキューの設定を編集できます。特定のストリームまたは値ストリームについてこれらの設定を変更することはできません。
ストリームプロセッサの設定
ベースタイプ
デフォルト
注記
最大キューサイズ
Number
250000
キューに入るストリームエントリの最大数。指定された値に達すると、それ以降のエントリが却下されます。
ストリームバッファをフラッシュする前の最大待機時間 (ミリ秒)
Number
2000
ストリームバッファをフラッシュするまでシステムが待機するミリ秒数
処理スレッド数
Number
5
ストリームに割り当てられる処理スレッドの数
ストリームバッファをフラッシュする前の最大アイテム数
Number
500
ストリームバッファをフラッシュするまで累積されるアイテムの最大数
プロセスブロックのストリーム書き込み最大数
Number
2500
1 つのブロックで処理されるストリーム書き込みの最大数
バッファステータスのスキャン速度 (ミリ秒)
Number
5
指定した間隔の値 (ミリ秒) でバッファステータスがチェックされます。
値ストリームプロセッサの設定
ベースタイプ
デフォルト
注記
最大キューサイズ
Number
250000
キューに入る値ストリームエントリの最大数。指定された値に達すると、それ以降のエントリが却下されます。
値ストリームバッファをフラッシュする前の最大待機時間 (ミリ秒)
Number
2000
値ストリームバッファをフラッシュするまでシステムが待機するミリ秒数
処理スレッド数
Number
5
値ストリームに割り当てられる処理スレッドの数
値バッファをフラッシュする前の最大アイテム数
Number
500
値ストリームバッファをフラッシュするまで累積されるアイテムの最大数
プロセスブロックの値ストリーム書き込み最大数
Number
2500
1 つのブロックで処理される値ストリーム書き込みの最大数
バッファステータスのスキャン速度 (ミリ秒)
Number
5
指定した間隔の値 (ミリ秒) でバッファステータスがチェックされます。
PostgreSQL への接続に必要な接続情報
名前
デフォルト値
注記
JDBC URL
jdbc:postgresql://localhost:5432/thingworx
接続の取得元となるデータベースの JDBC URL。この URL で複数のスキーマを指定できます。
ユーザー名
thingworx
データベース接続を取得する際に使用されるユーザー名
パスワード
該当なし
データベース接続を取得する際に使用されるパスワード
初期接続プールサイズ
5
起動時にプールが取得を試みる接続の数
接続取得の増分
5
プールが使い果たされた場合に取得される接続の数を指定します。
最大接続プールサイズ
100
プールが常に維持する接続の最大数
最小接続プールサイズ
5
プールが常に維持する接続の最小数
最大キャッシュ文
100
グローバル PreparedStatement キャッシュのサイズ
ドライバークラス
org.postgresql.Driver
データベースの JDBC ドライバークラス
再試行の回数を取得
3
接続プールが新規接続の取得を試みる回数を定義します
取得再試行の遅延
10000
接続プールが取得を再試行するまで待つ時間 (ミリ秒)
チェックアウト再試行タイムアウト
1000000
プールが使い果たされた場合に getConnection の呼び出しを行うクライアントが接続がチェックインされるか取得されるまで待つミリ秒数
最大アイドル時間
0
接続が未使用のままプールされている秒数。この時間を経過すると接続が破棄されます。ゼロはアイドル接続が失効しないことを意味します。
最大接続期間
0
この時間 (秒数) より古い接続は破棄されてプールからパージされます。ゼロは最大期間が適用されないことを意味します。
ヘルパースレッド数
8
一般的に、低速な JDBC オペレーションは競合ロックを獲得しないヘルパースレッドによって実行されます。このようなオペレーションを複数のスレッドに分散させると、複数のオペレーションを同時に実行可能になり、パフォーマンスが大幅に向上します。
返されていない接続タイムアウト
0
アプリケーションが接続を取得したが、所定の期間内に接続を閉じることに失敗した場合、プールでその接続が破棄されます。ゼロはタイムアウトしないことを意味し、アプリケーション自らが接続を閉じることが求められます。
過剰接続の最大アイドル時間
300
最小プールサイズを超えた接続がプール内でアイドル状態を維持できる秒数。この時間を経過すると接続は破棄されます。ゼロはこれが適用されないことを意味し、過剰接続は破棄されません。
7. 必要な場合、エンティティとデータをマイグレーションします。
8. PostgreSQL の実装を監視および保守管理します。適切なメンテナンス計画を作成するための最良事例については前述のガイドに説明があります。