Tomcat のコネクションプールで CData JDBC Driver for Talkdesk を構成
CData JDBC Driver は、JVM 上で動作するWeb アプリケーションと連携するための標準JDBC インターフェースをサポートしています。ここでは、Tomcat のコネクションプールから Talkdesk のデータ に接続する方法を説明します。
Tomcat のコネクションプールから Talkdesk のデータ に接続
- CData JAR ファイルと CData .lic ファイルを $CATALINA_HOME/lib にコピーします。CData JAR ファイルは、インストールディレクトリの lib サブフォルダにあります。
- コンテキストにリソースの定義を追加します。ここでJDBC URL を指定します。
Talkdesk では OAuth 2.0 の Client Credentials グラントを使用します。ブラウザでの認可ステップやコールバック URL は必要ありません。
以下の接続プロパティを設定します。
- AccountName:Talkdesk アカウントの名前。
- Region:Talkdesk インスタンスがデプロイされているリージョン。指定できる値は US(デフォルト)、EU、CA、AU、UK、FedRamp です。
- OAuthClientId:カスタム OAuth アプリケーションの登録時に割り当てられた Client Id。
- OAuthClientSecret:カスタム OAuth アプリケーションに割り当てられた Client Secret。
カスタム OAuth アプリケーションの作成
- Talkdesk アカウントにログインし、ナビゲーションメニューから OAuth Clients を選択します。
- Create OAuth Client をクリックし、クライアントにわかりやすい名前を付けます。
- Grant Type を Client Credentials に設定します。
- Add scopes をクリックし、アクセスしたいデータに応じたスコープを選択します。
- Create をクリックし、Client Id と Client Secret をコピーします。
接続時、ドライバーは Talkdesk にアクセストークンを自動でリクエストしてキャッシュし、有効期限が切れると更新します。アプリケーションで選択したスコープが、クエリ予定のビューに対応していることを確認してください。対応していない場合、トークンのリクエストが失敗することがあります。
組み込みの接続文字列デザイナー
JDBC URL の構成については、Talkdesk JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.talkdesk.jar接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下のリソース定義で指定されたJDBC URL を確認できます。
<Resource name="jdbc/talkdesk" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.talkdesk.TalkdeskDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" url="jdbc:talkdesk:AccountName=myAccount;Region=US;OAuthClientId=myClientId;OAuthClientSecret=myClientSecret;" maxActive="20" maxIdle="10" maxWait="-1" />特定のアプリケーションのみに Talkdesk のデータ へのアクセスを許可するには、上記のコードをアプリケーションのMETA-INF ディレクトリにあるcontext.xml に追加します。
共有リソースの構成の場合は、上記のコードを $CATALINA_BASE/conf にあるcontext.xml に追加します。共有リソースの構成では、すべてのアプリケーションが Talkdesk に接続できるようになります。
- アプリケーションの web.xml にリソースへの参照を追加します。
Talkdesk のデータ JSP jdbc/Talkdesk javax.sql.DataSource Container -
コネクションプールから接続を初期化します。
Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/Talkdesk"); Connection conn = ds.getConnection();
Tomcat との連携について
上記の手順では、シンプルなコネクションプーリングのシナリオで Talkdesk のデータ に接続する方法を説明しました。その他のユースケースや詳細については、Tomcat のドキュメントに記載されている JNDI Datasource How-To を参照してください。