PSM を使用したデータベースパフォーマンスの監視
PSM は ThingWorx アプリケーションによって開始されたデータベースクエリーの大部分を取り込みます。そのダッシュボードで、データベースレベルでの実行速度が遅い文や接続プールの使用状況がハイライトされ、データベースに送信されたバインド変数が取り込まれます。
PSM はユーザーによって開始されたトランザクションを監視します。このため、PSM はユーザー向けのデータベーストランザクションのみを追跡します。スケジューラ、タイマー、または非同期プロセスでデータベースパフォーマンスの問題が発生した場合、対応するクエリーは PSM によって収集されません。
パフォーマンスが低い時間について、対応するデータベーストランザクションを追跡できます。任意のチャートまたはダッシュボードを右クリックしてクエリービューを開きます。たとえば、CPU スパイクや遅い PurePath を特定する場合、その時間中に発生した対応するデータベースクエリーにドリルダウンできます。
次の例では、遅いデータテーブルクエリーとそれに対応するデータベースクエリーを特定した後で、アプリケーション内の QueryDataTableEntries API を実行するコードを最適化します。
PMS では、アプリケーション内の接続プールの詳細が表示されます。次の例に示すように、データベースダッシュボードに接続プールの全体的な使用状況が表示されます。
ThingWorx では接続のプールが使用されます。プール接続のデフォルト値は 100 に設定されています。プール内のすべての接続が同時に使用されている場合、アプリケーションは応答不能になることがあります。この問題を解決するには、必要以上に長く接続を保持している遅いトランザクションがないかチェックしてから、追加の接続を割り当てます。
ThingWorx では次の接続プールが使用されます。
C3P0 ライブラリによって管理される、組み込みの永続化プロバイダ接続。
データベース Thing から作成された、Apache ライブラリを使用して追跡される、その他のセカンダリ JDBC 接続。
PSM データベース概要のダッシュボードでは、接続プールが飽和状態になっている時間を切り分けることができます。その時間に実行されているクエリーをチェックできます。これによって接続プールの問題を診断できます。ThingWorx アプリケーション内で長時間接続を保持している、根底にあるクエリーを解決する必要があります。