具体的に何をモニタリングする必要があるかによって、デフォルトのJDBC構成を変更したい場合があります。同一の物理的なデータベースが複数の JDBC データベースとして表示される場合、自動検出ルールを変更する必要がある場合があります。こうすることで、最も大切な主要業績評価指標(KPI)をより効果的にモニタリングすることが可能になります。

同一のベンダーからの複数のデータベース

同一の物理的なOracleデータベース(同じURIを持つ)に対するJDBC接続が、複数のバックエンドとして表示される場合があります。状況によっては、このデータベースに対して取得されたベンダープロパティが異なります。これは、複数の異なるドライバを使用してデータベースにアクセスした時に発生する可能性があります。例えば、以下のベンダー名を持つJDBCバックエンドが表示される可能性があります。

  • Oracle DB
  • Oracle

データベースドライバパッケージ名が標準のOracleデータベースドライバとマッチする場合、使用されるベンダー名は「Oracle DB」です。マッチしない場合、データベースメタデータからの製品名(java.sql.DatabaseMetaDataクラスを使用)がベンダー名として使われます。このため、データベースコールが同じ物理的なデータベースに到達するために異なるドライバを使う場合、それぞれ独立したデータベースとして検出される場合があります。これは、検出ルールのベンダープロパティの使用を無効にすることで修正できます。

複雑なURLを持つJDBC

この例では、データベースの URL は高可用性に対応するように構成されているため、非常に長く複雑です。この場合は、[Run a regular expression on it] URL オプションを選択することをお勧めします。JDBC 自動検出用のホストおよびポートのプロパティの使用を無効にします。代わりに、JDBC コールに表示される URL の使用を有効にし、正しいデータベースの命名と検出を行うために正規表現を使用します。

例えば、以下のURLから全てのホストと全てのポートを取得するには:

jdbc:oracle:thin:@(DESCRIPTION_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=titanpfmcl01)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=trafrefpfm01.global.trafigura.com)))(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=titanpfmcl02)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=trafrefpfm01.global.trafigura.com))))
CODE

この例は、ホストとサービス名を2回含む文字列に対するものです。必要に応じて正規表現でポートを使うこともできます。

先ほどの可用性の高いURLに以下の正規表現を適用すると、次のようなバックエンド名になります:titanpfmcl01-trafrefpfm01.global.trafigura.com-titanpfmcl02-trafrefpfm01.global.trafigura.com

.*HOST=([^\)]*).*SERVICE_NAME=([^\)]*).*HOST=([^\)]*).*SERVICE_NAME=([^\)]*).*
CODE

注:式の最初と最後が「.」になります。[ Regular Expression Groups] を [1,2,3,4] に設定します。
[Merge Delimiter] は「-」に設定します。
この設定は、次のように UI に表示されます。

Backend Naming Configuration


EC2ホストデータベース

AppDynamics は、ホスト、ポート、URL、データベース、バージョン、およびベンダーの値に基づいて、JDBC バックエンドを自動的に検出します。ホスト名に "EC2" が含まれるすべての JDBC データベースを単一のデータベースとしてモニタするには、JDBC カスタム検出ルールを作成し、以下のスクリーンショットのようにマッチ条件を "Host Contains EC2" とします。

Match Conditions

ホスト名のフォーマットが「EC2-segment2-segment3」の場合、命名構成を以下のようにします。


Backend Naming Configuration

この構成の場合、フローマップに単一のデータベースアイコンが「EC2」という名前で表示されます。