2017年3月15日水曜日

ibatisでPersistenceExceptionエラーが出る

とあるWebアプリについて、モジュールをもらったのでローカルにセットアップ中です。jdbcでデータベース接続するので、Tomcatのserver.xmlにリソース定義して接続させてみます。

ibatis.exceptions.PersistenceExceptionエラーが発生しました。


。。。うーん。よく分りません。
試しにリソース定義した部分をコメントアウトするとアプリケーション側でエラーハンドリングされるので、リソース定義自体は問題ないようです。

対象のデータベースはDB2です。driverClassName="com.ibm.db2.jcc.DB2Driver"として、db2jcc.jar、db2jcc4.jarもlibフォルダーに置いています。

可能性としては
  • JARが読み込めていない
  • サーバーにアクセスできない

があります。ちょっとググってみると、次の記事に当たりました。
DB2 and MyBatis Connection refused: connect. ERRORCODE=-4499, SQLSTATE=08001

気になったのは「i already did set DB2COMM to TCPIP but still doesnt work」の箇所です。DB2COMMをセットする???

探してみると、次の記事がありました。
DB2 インスタンスの通信プロトコルの設定

要するに、DB2COMMにTCPIPをセットしてあげないと、ポートをLISTENしてくれないようです。
言われたとおりにしてDB2を再起動。

SQL5043N  DB2COMM 環境変数で指定されている 1 つ以上の通信プロトコルに対するサポートを正常に開始できませんでした。 ただし、コアのデータベース・マネージャーの機能は正常に開始されました。

うーん、まだ素直に動いてくれません。
このエラーを見てみると、「例えば、このメッセージが返される 1 つの理由として、SVCENAME データベース・マネージャー構成パラメーターが正しく設定されていないことが考えられます。」とありました。
確認すると、確かに、SVCENAMEがブランクです。


ということでSVCENAMEを設定して、再度DB2再起動。


すると漸くibatisエラーはなくなりました。
どうも、DB2側で、サーバー接続可能なように設定する必要があったようです。DB2コマンドからは接続できたので問題ないと思っていたのですが、どうも違ったようです。


初歩的なところで躓いてしまいましたが、備忘がてらメモしておきます。

0 件のコメント:

コメントを投稿