0

Nagios チェックの一部として iSeries (...または「System i」または「AS/400」...) マシンで SQL クエリを実行したいのですが、データベースとの適切なインターフェース方法が見つかりません。まだ。

IBM はSystem i Access for Linuxの ODBC ドライバーをunixODBCで使用することを提案していますが、どちらのシステムも私にとっては初めてなので、これを行う他の方法があるかどうか知りたいです。

関与するハックは完全に問題telnetありません。expect:-)

4

3 に答える 3

2

これが最も簡単だと思います...
Access for Linux と同じですが、オープン ソース バージョンです: JTOpen

iSeries Information Centerからの例:

 // Connect to the server.
 Connection c = DriverManager.getConnection("jdbc:as400://mySystem");

 // Create a Statement object.
 Statement s = c.createStatement();

 // Run an SQL statement that creates
 // a table in the database.
 s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE (NAME VARCHAR(20), ID INTEGER)");

 // Run an SQL statement that inserts
 // a record into the table.
 s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('DAVE', 123)");

 // Run an SQL statement that inserts
 // a record into the table.
 s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('CINDY', 456)");

 // Run an SQL query on the table.
 ResultSet rs = s.executeQuery("SELECT * FROM MYLIBRARY.MYTABLE");

 // Close the Statement and the
 // Connection.
 s.close();
 c.close();
于 2009-10-31T20:49:59.133 に答える
0

私は自分のディスクにこのソースを持っていました。それは良い例です。わかりやすくするために、ソースのマシン、カタログ、およびテーブル名を変更しました。それが役に立てば幸い。JTOpenプロジェクトのJDBCドライバーを使用します。

この特定のドライバーを使用すると、他のデータベースと同じようにiSeriesDB2データベースにアクセスできることに注意してください。また、iSeries上のDB2データベースは、IBMUniversalDatabaseのバージョンの1つにすぎません。ただし、JDBCドライバーを使用する場合でも、iSeries固有のトリックを実行できます。ただし、SQLのデフォルトのみを維持したい場合は、それでも問題ありません。

import java.sql.*;

public class TestSQL {

 public static void main(String[] args) {

  try {
   DriverManager
     .registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
   Connection conn = DriverManager
     .getConnection("jdbc:as400://YOURISERIES/YOURLIBRARY");
   Statement select = conn.createStatement();
   ResultSet rs = select.executeQuery("select * from whatever");

   ResultSetMetaData rsmd = rs.getMetaData(); 
   while (rs.next()) {
    for (int x=1; x <= rsmd.getColumnCount(); x++) {
     System.out.print(rs.getString(x));
    }
    System.out.println();
   }
  } catch (Exception e) {
   System.out.println("error: " + e.getMessage());
  }
  System.exit(0);
 }
}
于 2009-11-25T17:19:41.620 に答える
0

Nagios Exchange にあります:
DB2 Checker DB2 Checkerを
ダウンロード

未テスト...

于 2009-09-07T12:18:35.533 に答える