0

私のJavaアプリケーションはXmlファイルからユーザーリストを取得し、ユーザーごとにいくつかのI / O操作を行う必要があります。これらの操作は次のとおりです。

  1. JDBC ドライバーを使用した 5 MB データベースへのアクセス
  2. 一部のファイルをベース フォルダーに移動して処理する
  3. 一時ファイルを削除する

xml に 50 ユーザーしか含まれていない場合は完全に機能しますが、xml ファイル内のユーザー数が増えると、アプリケーションは失敗します。

このコードでDBにアクセスしている間

Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:DbName.db");

私は持っている

 java.lang.NullPointerException
    at org.sqlite.NestedDB$CausedSQLException.fillInStackTrace(NestedDB.java:442)
    at java.lang.Throwable.<init>(Throwable.java:250)
    at java.lang.Exception.<init>(Unknown Source)
    at java.sql.SQLException.<init>(Unknown Source)
    at org.sqlite.NestedDB$CausedSQLException.<init>(NestedDB.java:435)
    at org.sqlite.NestedDB._open(NestedDB.java:63)
    at org.sqlite.DB.open(DB.java:77)
    at org.sqlite.Conn.<init>(Conn.java:88)
    at org.sqlite.JDBC.connect(JDBC.java:64)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)

現在、300 人のユーザーがおり、xml ファイルを 5 つの部分に分割することでこれを解決しましたが、なぜこれが起こるのかを理解したいと思います。誰かが私を助けることができますか?

4

2 に答える 2

2

このソリューションは非常にスケーラブルに思えます。少数以上のユーザーを処理できることに感銘を受けました。

XML をデータベースとして使用せず、コピーを 1 つだけ使用します。この方法では、ユーザーが増えてもリソースの使用に違いはありません。

于 2013-09-17T12:08:30.777 に答える
0

メモリ不足の問題が原因である可能性があります。-Xm512m オプションで Java を試す

于 2013-09-17T12:10:13.337 に答える