Jetty の接続プールから Dynamics CRM のデータ に接続
CData JDBC Driver for Dynamics CRM は、Java Web アプリケーションへの統合が簡単です。この記事では、接続プールを設定することで Jetty から Dynamics CRM のデータ に効率的に接続する方法を説明します。Jetty で Dynamics CRM 用の JNDI リソースを設定していきましょう。
Dynamics CRM データ連携について
CData は、Microsoft Dynamics CRM のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:
- Dynamics CRM 2011+ サービスおよび Dynamics CRM Online のデータの読み取りと書き込みができます。
- カスタマイズ可能なキャッシュと、インテリジェントなクエリ集約・分離により、Dynamics CRM のネイティブ機能を拡張できます。
- Azure Active Directory、Azure マネージド サービス ID 認証情報、クライアントシークレットまたは証明書を使用した Azure サービスプリンシパルなど、さまざまな方法で Dynamics CRM に安全に認証できます。
CData のお客様は、データをデータウェアハウスにレプリケートしたい場合(他のデータソースと併せて)や、Microsoft エコシステム内のお気に入りのデータツール(Power BI、Excel など)または外部ツール(Tableau、Looker など)からライブ Dynamics CRM データを分析したい場合など、さまざまな理由で当社の Dynamics CRM 接続ソリューションを使用しています。
はじめに
Salesforce 用の JDBC Driver を JNDI データソースとして設定
以下のステップで Jetty から Salesforce に接続します。
Jetty ベースで JNDI モジュールを有効にします。次のコマンドは、コマンドラインから JNDI を有効にします。
java -jar ../start.jar --add-to-startd=jndi
- インストールディレクトリの lib サブフォルダにある CData およびライセンスファイルを、コンテキストパスの lib サブフォルダに追加します。
-
リソースとそのスコープを宣言します。リソース宣言に必要な接続プロパティを入力します。次の例では、WEB-INF\jetty-env.xml に Web アプリレベルで Dynamics CRM データソースを宣言しています。
<Configure id='dynamicscrmdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="dynamicscrmdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="dynamicscrmdemo"/></Arg> <Arg>jdbc/dynamicscrmdb</Arg> <Arg> <New class="cdata.jdbc.dynamicscrm.DynamicsCRMDriver"> <Set name="url">jdbc:dynamicscrm:</Set> <Set name="User">myuseraccount</Set> <Set name="Password">mypassword</Set> <Set name="URL">https://myOrg.crm.dynamics.com/</Set> <Set name="CRM Version">CRM Online</Set> </New> </Arg> </New> </Configure>Dynamics CRM 接続プロパティの取得・設定方法
Dynamics CRM では、インスタンスごとに接続文字列の設定が必要です。 Authentication セクションでは、有効なDynamics CRM のUser、Password の入力、およびDynamics CRM Server Organization root のURL を設定します。さらに、CRMVersion プロパティに、'CRM2011+' もしくは'CRMOnline' を設定します。IFD コンフィグレーションもサポートされていますので、InternetFacingDeployment をTRUE に設定してください。
また、Security Token Service(STS)、もしくはAD FS エンドポイントをSTSURL プロパティに設定することもできます。 この値はGetSTSUrl ストアドプロシージャで取得できます。 Office 365 ユーザーはデフォルトSTS URL にCRMVersion の設定だけで接続することができます。
-
Web.xml でリソースを設定します。
jdbc/dynamicscrmdb javax.sql.DataSource Container
-
これで、java:comp/env/jdbc/dynamicscrmdb をルックアップして Dynamics CRM にアクセスできます。
InitialContext ctx = new InitialContext(); DataSource mydynamicscrm = (DataSource)ctx.lookup("java:comp/env/jdbc/dynamicscrmdb");
Jetty 統合の詳細
上記のステップでは、シンプルな接続プールのシナリオでドライバーを設定する方法を説明しました。その他のユースケースや詳細については、Jetty ドキュメントのWorking with Jetty JNDI の章を参照してください。