JDBC Driver for Dynamics 365 Sales

Build 20.0.7587

メタデータのキャッシュ

このセクションでは、メタデータのキャッシュを有効にする方法とメタデータキャッシュを更新する方法について説明します。

データをクエリできるようになる前に、コネクタは関連するメタデータを取得する必要があります。デフォルトでは、メタデータはメモリにキャッシュされ、接続間で共有されます。しかし、プロセスにまたがって保持したい場合、またはメタデータ要求が高負荷の場合は、解決策はメタデータをディスクにキャッシュすることです。

メタデータキャッシュの有効化

メタデータのキャッシュを有効にするには、CacheMetadata をtrue に設定し、接続文字列の設定方法についてはキャッシュ接続の設定 を参照してください。本製品 は、メタデータが初めて必要になったときにメタデータをキャッシュし、それ以降のリクエストでは、そのメタデータを使用します。

メタデータキャッシュの更新

メタデータはキャッシュされるため、ライブソース上のメタデータに対する変更(カラムや属性の追加や削除など)は、メタデータキャッシュに自動的には反映されません。ライブメタデータを更新するには、キャッシュされたデータをdelete またはdrop する必要があります。

コードからのメタデータキャッシュ

以下のコードを使用して、メタデータキャッシュを構築できます。これは、オブジェクトリレーショナルマッピングフレームワーク(例えばHibernate)を使用する場合に特に役立ちます。

Connection conn = DriverManager.getConnection("jdbc:d365sales:Cache Location=C:\\cdata.d365sales.db;AutoCache=True;InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://myaccount.crm.dynamics.com/;");
DatabaseMetaData table_meta = conn.getMetaData();

ResultSet rs=table_meta.getTables(null, null, "%", null); 

while (rs.next()) {
  String tableName = rs.getString("TABLE_NAME");
  System.out.println("Cached metadata for table: "+tableName);
  ResultSet cols = table_meta.getColumns(null, null, tableName, null);
  while(rs.next()){
  }
}
System.out.println();
System.out.println("All tables cached.");
conn.close();

Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 20.0.7587