2

The feedreader RSSOwl saves all articles in a database rssowl.db. As far as I read, it's a "db40" database.

Size of my rssowl.db is at the moment 3.9 GB. I also got another database with size of around 2 GB, but it might be corrupt.

Now I want to get all articles out of these databases. The format doesn't matter, as long as it is an open/free format (XML, HTML, TXT, SQL database, …).

How could I accomplish this?

I'm not savvy with databases, but I'm willing to dig into it. I'd image that I need to open the db40 database (how?) and "map" the tables to an export format, e.g. a SQLite database (how? by writing code?).

unor
  • 3,196

2 Answers2

2

As far as I can see, some of the options available to you are:

  1. Object Manager:

    The db4o Object Manager is a GUI tool to browse and query the contents of any db4o database file. Object Manager currently provides the following features:

    • Powerful ad-hoc queries
    • Efficient handling of large data sets
    • Table view for quick scrolling through large data sets
    • Tree view for drilling down through an object graph
    • Access to internal database information including stored classes, data size and indexes
    • Management functions including Backup and Defragment

    1

  2. DataWander:

    DataWander can migrate data from relational database (Oracle 10g XE) to object database (db4).

    DataWander can migrate data from object database (db4o) to relational database (Oracle 10g XE) too.

    2

  3. db4o Replication System (dRS):

    The db4o Replication System (dRS), powered by Hibernate, enables users to build applications that synchronize objects bi-directionally between distributed instances of db4o's leading open source object database and all common relational databases such as Oracle or MySQL. dRS makes db4o's native object persistence architecture available to all Java and .NET developers while staying fully data compatible with existing IT environments using relational database technology.

  4. SqlExport batch file included with db4o:

    JDBC can be used to backup db4o data and to migrate data between db4o versions with different file formats.

    In addition, classes can be generated from existing SQL databases and existing data can be imported into db4o.

As a last resort you can always write your own Java code to export to XML or whatever format you want. Further queries related to this can of course be posted on Stack Overflow or the Versant forum.

Karan
  • 57,289
1

I am a bit late for the answer, but here it is. I had a 300mb RSSOwl feed database waiting in my file archives since years and I had to export it. I didn't want to go deep into Oracle/SQL knowledge, so I searched a bit in RSSOwl.

This works only for small size database (tested with 300mb database but should work up to 500mb, you will know why later). What you must do is very simple :

  1. Create a new "News filter" in RSSOwl.
  2. Mark the news filter to filter all your news in all the folders. The number of items returned by this filter must be the SUM of all your news.
  3. Click on the new filter. On the right panel (thus, this depends on how you configured the RSSOwl GUI), all the news will appear.
  4. Press CTRL+A to select all the news that appeared.
  5. Once everything is selected, choose in the RSSOwl menu, File > Save as then choose the destination of the HTML file.

This way, absolutely all my RSS feeds where exported. Beware that the size of the file is small compared to the database as I went down from 300mb db4o database to about 60mb HTML text, but this HTML file size is very big for a modern browser (sidenote: I find that old browsers manage better massive size HTML files than modern one). Use a good text editor or scripts to explore the data.

Also, I initially couldn't export the HTML file because RSSOwl would crash with a Java Memory heap error. I searched a bit and what I found is that where the RSSOwl.exe executable is located, there is a RSSOwl.ini file. There is a parameter -XMS and -XMX. I couldn't remember which one, but I increased the size from -Xm_192m to -Xm_1024m.

I couldn't go further as if I choose 2048 or 4096 for the heap memory, RSSOwl would not even open. In consequence, the 1024 limits the size of the database you can export. I guess this would be easy to bypass if you create many sub-filters to gradually export all the feeds.