Oracle JDBCおよびUniversal Connection Pool(UCP)を使用し、Java SEアプリケーション、Java Webアプリケーション(Servlets)およびJava EEコンテナからOracle Database Cloud Serviceにアクセスします。 以下の手順を使用して接続します。
データベース・インスタンスを作成済みの場合は、この手順を省略できます。作成済みでない場合は、以下の手順に従ってデータベース・インスタンスを新たに作成します。
Oracle Cloudにサインアップしたら、自身のアカウントでログインします(http://cloud.oracle.com)。 Dashboard上の「Create Instance」ボタンを探します。このボタンをクリックし、データベース・インスタンスを作成する手順を実行します。
Dashboardの「Database」を選択し、すべてのデータベース・サービスを表示するOpen Service Consoleを使用してデータベース・インスタンスを作成する方法もあります。 「Create Service」をクリックして、新しいインスタンスを作成します。 図1:Oracle Database Service Consoleを参照してください。
データベース・インスタンスが作成されたら、そのインスタンスをクリックすることでデータベースの詳細を取得できます。 たとえば、図1:Oracle Database Service Consoleの"dev"をクリックします。
データベース・インスタンスの詳細情報から、HOSTやIPアドレスを確認できます。
SERVICE_NAMEは、詳細情報セクションにも表示されています。データベース・サービス名の書式は、pdb.identity-domain.oraclecloud.internalです。
Oracle Database Cloud Serviceは、標準のOracle Net Listenerポート(1521)でのOracle Databaseへのアクセスをサポートします。 データベース・インスタンスを最初に作成した時点では、ネットワーク・セキュリティを確実にするためOracle Net Listenerポート(1521)はブロックされています。 "Access Rules"(図1:Oracle Database Service Console)を選択してこのポートのブロックを解除し、1521を選択し、SQL*Netがこのポートを使用できるようにします。
図1:Oracle Database Service Console

12.2.0.1 JDBC Thinドライバ(ojdbc8.jar)と12.2.0.1 UCP(ucp.jar) 、または12.1.0.2 JDBC Thinドライバ(ojdbc7.jar)と12.1.0.2 UCP(ucp.jar)を所定の位置にダウンロードし、その場所をクラスパスに追加します。
下記を参照し、環境に応じた接続文字列を設定します。たとえば、デフォルトで利用可能なHRスキーマを使用することができます。
例:
DB_USER = "hr" or <Any user created>
Javaアプリケーションをコンパイルし、実行します。
java -cp .\lib\ojdbc7.jar;.\lib\ucp.jar UCPSample
ト ラブルシューティング・ヒント:データベース・インスタンスが最初に作成された時点では、セキュリティ上の理由からHRユーザーはロックされているので、 "account locked"のエラーが表示されます。 そのため、HRユーザーをデータベースへの接続に使用する前に、以下の手順を実行してHRユーザーの ロックを解除します。
(b)コンピュート・ノードに"oracle"でログインします。
(c)システム・ユーザーとしてデータベースに接続( sqlplus sys as sysdba )し、インスタンスの作成時に選択したパスワードを入力します。
(d)PDBを使用するようセッションを変更します( alter session set container=pdb1; )。
(e)ユーザー"hr"のロックを解除します( alter user hr identified by hr account unlock;)。
SSHトンネルを通して、データベース・インスタンスが実行されているコンピュート・ノードに接続できます。「Creating an SSH Tunnel to a Compute Node Port」に示す手順に従って接続します。接続後は、データベースにアクセスしたり、新規ユーザーの作成やデータベース・ユーザー・パスワードの変更を行ったりできます。
