2

ラップトップから小さな JAVA プログラムを実行して、JDBC 経由で HANA サーバーに接続して「できますか?」プロトタイプ。

JDBC 接続を介してリモート HANA サーバーに接続できることを理解しています。しかし、私はできません。sapdbc.jar ファイルを使用して Java から使用している方法論を次に示します。ここで接続をテストしています。

    DataSourceSapDB ds = new DataSourceSapDB();
    ds.setServerName("10.x.x.xxx");
    ds.setPort(30015);
    ds.setDatabaseName("dbNAME");
    ds.setUser("myUser");
    ds.setPassword("myPassword");
    Connection c = ds.getConnection();

    if (c == null) return;  

インスタンスは 00 ですが、必要な場合に接続文字列に含める場所がわかりません。すべてのプロパティを再確認しました。

私たちのHANAサーバーは別の会社によってホストされていますが、それへのアクセスはネットワーク内にあります。これが理由でしょうか?

助けてくれてありがとう。

私が得る接続エラーは次のとおりです。

com.sap.dbtech.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: Cannot connect to jdbc:sapdb://10.x.x.xxxx:30015/dbNAME [Connect reply receive failed [Connection reset].].
    at com.sap.dbtech.jdbc.DriverSapDB.connect(DriverSapDB.java:178)
    at com.sap.dbtech.jdbcext.DataSourceSapDBBase.openPhysicalConnection(DataSourceSapDBBase.java:374)
    at com.sap.dbtech.jdbcext.DataSourceSapDB.getConnection(DataSourceSapDB.java:49)
    at com.glazers.hana.utils.HanaStoredProcedure.execute(HanaStoredProcedure.java:37)
    at com.glazers.hana.utils.HanaStoredProcedure.main(HanaStoredProcedure.java:24)
4

2 に答える 2

9

間違った SAP jar を使用していました。HANA クライアント jar (ngdbc.jar) が必要なときに sapdbc.jar を使用していました。そのjarとドライバーの切り替え後、すべてが接続されました。

try {
    Class.forName("com.sap.db.jdbc.Driver");

    String url = "jdbc:sap://xx.x.x.xxx:30015/?databaseName=DBNAME";
    String user = "user";
    String password = "password";

    Connection cn = java.sql.DriverManager.getConnection(url, user, password);

    ResultSet rs = cn.createStatement().executeQuery("CALL MY_SCHEMA.STORED_PROC");

    // ... do whatever with the results ...

} catch (Exception e) {
    e.printStackTrace();
}
于 2013-10-23T20:04:09.323 に答える
3

はい、そうです、ngdbc.jar を使用して接続する必要があります。

インスタンス番号はポート番号に含まれます。接続していること。

たとえば、ポート番号の場合。が 30015 の場合、00 がインスタンスです。

お役に立てれば。

于 2014-05-01T06:53:39.733 に答える