データベース連携に関連した以下のトラブルについて対処方法を説明します。
Symfoware ServerのNativeインターフェイスへの接続時の認証に失敗する場合
Symfoware ServerのNativeインターフェイスへ接続するJDBC接続プールのプロパティにurlプロパティが指定されていると、接続時の認証に失敗する場合があります。「4.14.6 Symfoware ServerのNativeインターフェイス JDBCドライバ(Type2)」に記載されているプロパティが正しく設定されているか確認し、urlプロパティが設定されていた場合は削除してください。
例
JDBC接続プール「TestPool」のプロパティを確認する場合
C:\Interstage\glassfish5\glassfish\bin\asadmin get resources.jdbc-connection-pool.TestPool.property.* |
/opt/FJSViaps/glassfish5/glassfish/bin/asadmin get resources.jdbc-connection-pool.TestPool.property.* |
上記のコマンドの結果にurlプロパティが含まれていたため、urlプロパティを削除する場合
C:\Interstage\glassfish5\glassfish\bin\asadmin set resources.jdbc-connection-pool.TestPool.property.url= |
/opt/FJSViaps/glassfish5/glassfish/bin/asadmin set resources.jdbc-connection-pool.TestPool.property.url= |
ログに「JDBCRA0002」が出力される場合
ログに「JDBCRA0002」が出力される場合、JDBCドライバの環境設定が正しく設定されているか確認してください。
詳細は「4.14.1 JDBCドライバの環境設定」を参照してください。
また、リポジトリーの同期化が行われていない可能性があります。domain.xmlの更新日時を現在時刻に更新してください。
詳細は「2.1.4 リポジトリーの同期化処理」を参照してください。
ログに「java.sql.SQLException: 自動コミットがオンの状態でコミットできませんでした」または、「java.sql.SQLException: 自動コミットがオンの状態でロールバックできませんでした」が出力される場合
Oracleデータベースを使用し、アプリケーション上のトランザクションで自動コミットを無効化していても、UserTransactionなどのGlassFishが管理するトランザクションを使用している場合、COMMITまたは、ROLLBACK実行時に以下の例外が発生する場合があります。
日本語メッセージが出力される場合
英語メッセージが出力される場合
|
事象が発生した場合は以下のいずれかの対処方法を検討してください。
自動コミットが有効な場合にコミットとロールバックを使用しないように、アプリケーションを修正する。
-Doracle.jdbc.autoCommitSpecCompliant=false をシステムプロパティに追加する。
詳細についてはデータベース製品のドキュメントを参照してください。
Ping機能でデータベースへアクセスすると失敗する場合
Ping機能はDASがデータベースへアクセスするため、DASの環境設定が不足している場合失敗します(システムの環境変数CLASSPATHに設定しても失敗します)。Ping機能については「4.14.8 Ping機能」を参照してください。環境設定の詳細は「4.14.1 JDBCドライバの環境設定」を参照してください。
環境設定後は、設定を反映させるためにDASを再起動してください。
また、事前にデータベースを起動してください。
JDBCリソースまたはJDBC接続プールの作成に失敗する場合
すでに登録されている他のリソースのJNDI名や接続プールと同じ名前を指定している場合、作成に失敗します。異なる名前で作成し直してください。