- - PR -
Tomcat5.0.28とORACLE8.1.7のJDBC接続について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-04-08 14:52
下記ログのエラーがでます。
/ur/local/tomcat5/bin/startup.shを実行すると、下記のようなログが残ります。 ORACLE JDBC接続のところを削除すると通常どおり起動しますので おそらく、WindowsとLinuxの文字コードの違いかと思い調べていたのですが わかりません。 クライアント(ECLIPSE) より実行した際には起動しているのでserver.xmlの構文は大丈夫と思います。 見当違いなことをしていた場合は申し訳ございませんが、 ご意見、ご指摘等いただければと思います。 環境 WEBサーバ LINUX FedoraCore1 Apache2.0.52 Tomcat5.0.28(DMZ内) DBサーバー WINDOWS2000 ORACLE8.1.7(LAN内) ファイヤーウォールの設定は、すべてのポートを許可としています。 行ったこと、ORACLEサイトよりjdbc817jdk12-ntを取得し解凍 DBサーバー ORACLE_HOME\jdbc\lib classes12.zipにコピー ORACLE_HOME\jdbc\bin ocijdbc8.dllをコピー WEBサーバー /usr/local/tomcat5/common/lib/ にclasses12.jarとしてコピー ------------------- server.xml 略 <!-- Because this Realm is here, an instance will be shared globally --> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <!-- <Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase"/> --> <!-- Comment out the old realm but leave here for now in case we need to go back quickly --> <!-- <Realm className="org.apache.catalina.realm.MemoryRealm" /> --> <!-- Replace the above Realm with one of the following to get a Realm stored in a database and accessed via JDBC --> <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@IPアドレス:ポートXX" connectionName="ユーザ名" connectionPassword="パスワード" userTable="*****" userNameCol="*****" userCredCol="*****" userRoleTable="*****" roleNameCol="*****" /> 以下略 ------------------- ログ 2005-04-08 13:39:39 JDBCRealm[Catalina]: データベース接続オープン中に例外が発生しました java.sql.SQLException: Protocol violation at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:418) at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:676) at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:196) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:127) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:170) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:148) at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:599) at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:663) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1075) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) at org.apache.catalina.core.StandardService.start(StandardService.java:480) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) |
|
投稿日時: 2005-04-12 07:12
つばさです。
推測ですが、 java.sql.SQLException: Protocol violation at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:418) の例外が出ていますので、Thinドライバ、OCIドライバのあたりがだと思います。 server.xmlで、 connectionURL="jdbc:oracle:thin:..... のように、Thinドライバを指定していますが、ociのdllをコピーされていま すので、OCI(Type2)でOracleにアクセスしたいのかなと思いました。 なので、 OCIドライバの記述にするかThinドライバのclasses12.jarをTomcatのcommon/lib に配置するかでなんとかなるのでは?と思います。 参考まででした。 |
1