1

次のように接続プールを構成しています。

dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:sap://********:30015");
dataSource.setDriverClassName("com.sap.db.jdbc.Driver");
dataSource.setMaxActive(20);
dataSource.setMaxIdle(0);
dataSource.setMaxIdle(0);
dataSource.setUsername("*******");
dataSource.setPassword("*******");

ただし、接続が初期化されると、次の例外が発生します。

java.lang.ArrayIndexOutOfBoundsException: 10
        at com.sap.db.util.StructuredBytes.putBigUnicode(StructuredBytes.java:568)
        at com.sap.db.util.MemIndirection.putBigUnicode(MemIndirection.java:186)
        at com.sap.db.jdbc.packet.DataPartAuthentication.putBigUnicode(DataPartAuthentication.java:192)
        at com.sap.db.util.security.AuthenticationManager.addClientProofPart(AuthenticationManager.java:139)
        at com.sap.db.util.security.AbstractAuthenticationManager.connect(AbstractAuthenticationManager.java:39)
        at com.sap.db.jdbc.ConnectionSapDB.openSession(ConnectionSapDB.java:586)
        at com.sap.db.jdbc.ConnectionSapDB.doConnect(ConnectionSapDB.java:436)
        at com.sap.db.jdbc.ConnectionSapDB.<init>(ConnectionSapDB.java:195)
        at com.sap.db.jdbc.ConnectionSapDBFinalize.<init>(ConnectionSapDBFinalize.java:13)
        at com.sap.db.jdbc.Driver.connect(Driver.java:255)
        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
        at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

ご覧のとおり、例外は私のコードではなく、SAP HANA JDBC ドライバー コードの奥深くにあります。しかし、この状況で何が間違っている可能性があるのか​​もわかりません。

これをデバッグする方法に関するヘルプと提案は大歓迎です。

4

1 に答える 1

1

AuthenticationManager へのスタック トレース参照から判断すると、ユーザー名とパスワードは正しいですか? また、スタックトレースのメソッド名 putBigUnicode から、「」などの無効な文字が含まれている可能性があると思われます。

于 2014-10-03T18:30:58.000 に答える