1

このコードがJVMをクラッシュさせるのはなぜですか?

public Connection createConnectionFromDS() throws Exception {
    try {
        Connection con = null;
        Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        props.put(Context.PROVIDER_URL, "my_ip");
        Context ctx = new InitialContext(props);
        log.debug("Looking up datasource " + dataSourceName);
        DataSource dataSource = (javax.sql.DataSource) ctx.lookup(dataSourceName);
        con = dataSource.getConnection();
        return con;
    } catch (NameNotFoundException e) {
        throw new Exception("Datasource [" + dataSourceName + "] not bound!");
    }
}

ログは次のとおりです。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000001800060ba, pid=3816, tid=3076
#
# JRE version: 6.0_39-b04
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.14-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [db2jcct2.dll+0x60ba]

すでに6.0_29から6.0_39にアップグレードしましたが、問題は解決しませんでした。

4

1 に答える 1

4

簡単に言えば、そうすべきではありませんdb2jcct2.dllこれは(DB2ドライバー)のバグのようです。

# Problematic frame:
# C  [db2jcct2.dll+0x60ba]

JDBCドライバーの別のバージョンを試すことはできますか?および/またはこれをIBMに報告しますか?

于 2013-02-11T15:07:15.563 に答える