0

私たちは 3 人の開発者で、全員が Netbeans と Java を扱っています。1 人の開発者がリモート DB2 サーバーに問題なくアクセスできます (同じコードを使用)。他の 2 つ (私を含む) はできません。

context.xml ファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/app_web">
    <Resource name="jdbc/admin"
              auth="Container"
              type="javax.sql.DataSource"
              maxActive="500"
              initialSize="10"
              maxIdle="50"
              maxWait="10000"
              username="theusername"
              password="xxxxxxxxx"
              driverClassName="com.ibm.as400.access.AS400JDBCDriver"
              removeAbandoned="true"
              removeAbandonedTimeout="60"
              logAbandoned="true"
              url="jdbc:as400://192.168.1.1;prompt=false;naming=system;prompt=false;naming=system;libraries=*libl;date format=iso;time format=iso"
              />

取得している例外は次のとおりです。

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))
Caused by: java.sql.SQLException: The application requester cannot establish the connection. (Permission denied: connect)
    at com.ibm.as400.access.JDError.throwSQLException(JDError.java:528)
WARNING: Failed to register in JMX: javax.naming.NamingException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))
WARNING: Unexpected exception resolving reference
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))
Caused by: java.sql.SQLException: The application requester cannot establish the connection. (Permission denied: connect)
    at com.ibm.as400.access.JDError.throwSQLException(JDError.java:528)
WARNING: Failed to register in JMX: javax.naming.NamingException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))

jt400.jarファイルをC:\Program Files\Apache Software Foundation\apache-tomcat-6.0.35\libフォルダーに入れたり、フォルダーに入れたりしましたが...\web\WEB-INF\lib、何も機能していないようです。

4

4 に答える 4

1

解決策を見つけることができました。どうやら、ファイアウォールでポート 449 を開く必要があったようです。私は以前そこを見ましたが、これは企業のマシンであるため、それをブロックしている別のファイアウォール (F-Secure) が構成されているという事実を知りませんでした。

于 2012-03-19T12:48:16.040 に答える
1

ログのメッセージPermission denied: connectを見ると、Java ポリシーの問題だと思います。ほとんどの場合、他の開発者がより寛容な Java ポリシーを構成しています。

http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.htmlを参照してください。

于 2012-03-16T20:06:24.957 に答える
0

両方とも同じユーザー (username="theusername") を使用して接続していますか? 複数の接続を許可しない IBM i (別名 AS/400) のユーザーに関連付けられているポリシーがある可能性があります。

于 2012-03-16T22:53:33.283 に答える
0

DB2についてはよくわかりませんが、MySQLなどの一部のデータベースでは、データベースに接続できるIP(クライアント)を制限できますが、これはそのような問題ではありませんか? データベース自体に設定されたセキュリティ ポリシーで、一部の IP (パートナーの IP を含む) のみの接続を許可している可能性があります。

于 2012-03-16T20:21:24.750 に答える