Node.jsからAutonomous Transaction Processing(ATP)に接続
この記事について
この記事ではNode.jsのアプリケーションからAutonomous Transaction Processing(ATP)に接続する方法を記載しています。
前提
- Oracle Cloudのアカウントを持っている
無償トライアルはこちら Try for Free | Oracle Cloud - Autonomous Transaction Processing(ATP)がプロビジョニングされている
Autonomous Transaction Processing(ATP)とは
Autonomous Transaction Processing は、自己稼動、自己保護、自己修復が可能なOracle Autonomous Database を基盤とするクラウド・サービス・ファミリーの一部です。
Autonomous Transaction Processingは、機械学習と自動化を使用して人手による作業、人的エラー、手作業によるチューニングを排除してくれます。
ATPへの接続は証明書認証とSSLが使用されクライアントとATP間のすべての通信は暗号化されます。
Node.jsアプリケーションからATPへの接続 設定手順
以下の手順で設定していきます。
- Oracle Instant Clientのセットアップ
- ドライバ(node-oracledb)のインストール
- セキュリティ資格証明を取得
- アプリケーションに接続情報を登録
Oracle Instant Clientのセットアップ
1.Oracle Instant Client を入手します*1
以下URLから入手可能です。 ご利用の環境に合うファイルを選択してください。
Oracle Instant Client - Free tools and libraries for connecting to Oracle Database
2.Zipファイル、またはrpmパッケージを解凍します
Windowsの例:C:\instantclient_12_2
Windowsの場合には解凍したディレクトリをPATH変数に登録します。
Linuxの例:/home/myuser/instantclient_18_3
Linuxの場合にはlibclntsh.so
のシンボリック・リンクを作成し、環境変数LD_LIBRARY_PATH
を登録します。
> cd /home/myuser/instantclient_18_3 > ln -s libclntsh.so.18.1 libclntsh.so > export LD_LIBRARY_PATH=/home/myuser/instantclient_18_3:$LD_LIBRARY_PATH
ドライバ(node-oracledb)のインストール
node-oracledb は Node.jsのOracle DBドライバ(Apatche License 2.0)です。
以下URLから入手可能です。
GitHub - oracle/node-oracledb: Oracle Database driver for Node.js maintained by Oracle Corp.
package.jsonの依存関係にoracledbを追加するか、手動で以下のコマンドを実行することでインストールできます。
> npm install oracledb
セキュリティ資格証明を取得
1. 以下の手順でセキュリティ資格証明(Oracle client credentials)をダウンロードします。
- Autonomous Transaction Processing詳細ページで「DB Connection」をクリックします
- パスワードを入力します*2
- 「Download」クリックして、クライアントのセキュリティ資格証明のzipファイルを保存します
2. セキュリティ資格証明のZipを以下のディレクトリに解凍します。
Windowsの例:C:\instantclient_12_2\network\admin
Linuxの例:/home/myuser/instantclient_18_3/network/admin
Linuxの場合には解凍したディレクトリを環境変数TNS_ADMIN
に登録します。
Zipに含まれるファイル
-rw-r--r-- 1 cotoc 197121 3336 1月 29 05:53 truststore.jks -rw-r--r-- 1 cotoc 197121 12753 1月 29 05:53 tnsnames.ora -rw-r--r-- 1 cotoc 197121 87 1月 29 05:53 ojdbc.properties -rw-r--r-- 1 cotoc 197121 3243 1月 29 05:53 keystore.jks -rw-r--r-- 1 cotoc 197121 6616 1月 29 05:53 ewallet.p12 -rw-r--r-- 1 cotoc 197121 6661 1月 29 05:53 cwallet.sso -rw-r--r-- 1 cotoc 197121 20083 1月 29 14:53 Wallet_store.zip -rw-r--r-- 1 cotoc 197121 139 1月 29 16:10 sqlnet.ora
Node.jsアプリケーションからATPに接続するためにはtnsnames.ora、sqlnet.ora、cwallet.ssoを使用します。
アプリケーションに接続情報を登録
dbConfig.js にnode-oracledbドライバを使用したOracle DBのアクセスのコードを記述します。
今回はmodule.exportsを使用しています。
module.exports = { user : process.env.NODE_ORACLEDB_USER || “DBユーザー名”, password : process.env.NODE_ORACLEDB_PASSWORD || “DBパスワード”, connectString : process.env.NODE_ORACLEDB_CONNECTIONSTRING || “<サービス名>_low”, externalAuth : process.env.NODE_ORACLEDB_EXTERNALAUTH ? true : false };
- NODE_ORACLEDB_USER:DBのユーザー名を登録します
- NODE_ORACLEDB_PASSWORD:DBのユーザー名のパスワードを登録します
- NODE_ORACLEDB_CONNECTIONSTRING:データベース・サービス名を登録します
- NODE_ORACLEDB_EXTERNALAUTH :外部認証テストのためのオプションをFalseに設定します
NODE_ORACLEDB_CONNECTIONSTRINGに記述するデータベース・サービス名はセキュリティ資格証明に含まれる tnsnames.ora を確認します。
※ tnsnames.oraファイルには、high/medium/low/tp/tpurgentの5つのデータベース・サービス名が含まれます。それぞれ優先順位と並列処理の実行の有無が異なります。
Managing and Monitoring Performance of Autonomous Transaction Processing
お疲れさまでした!これでNode.jsアプリからATPへの接続に必要な設定は完了です!
ご覧いただきありがとうございました。