Everything seems OK.
Try: Open a new database on every method call and close it after use.
See below.
This 'strange' behaviour (Charles explain) will be fixed with the next
version of OJB.
regards,
Armin
> [org.apache.ojb.odmg.TransactionImpl] WARN: TransactionImpl created
with
> null DatabaseImpl.
Transaction found no opened database.
> public class TestOdmg extends Frame implements ActionListener
> {
> private Implementation odmg = null;
> private Vector useCases;
> private static String databaseName;
> private TextArea textarea;
> private Button exit;
> private MenuBar menubar = null;
> private Menu menu = null;
> private MenuItem newUser = null;
> private MenuItem showUser = null;
> private MenuItem exitApp = null;
>
> static
> {
> try
> {
> databaseName =
> ((PersistenceBrokerConfiguration)
PersistenceBrokerFactory
> .getConfigurator()
> .getConfigurationFor(null))
> .getRepositoryFilename();
> }
> catch (ConfigurationException e)
> {
> databaseName = "repository.xml";
> }
>
> }
>
> public TestOdmg()
> {
> textarea = new TextArea();
> exit = new Button ("Exit");
> exit.addActionListener(this);
> menubar = new MenuBar();
> menu = new Menu("User");
> newUser = new MenuItem ("New User");
> newUser.addActionListener(this);
> showUser = new MenuItem ("Show User");
> showUser.addActionListener(this);
> exitApp = new MenuItem ("Exit");
> exitApp.addActionListener(this);
>
> odmg = OJB.getInstance();
> Database db = odmg.newDatabase();
> file://open database
> try
> {
> db.open(databaseName, Database.OPEN_READ_WRITE);
> }
> catch (ODMGException ex)
> {
> ex.printStackTrace();
> }
>
> menu.add(newUser);
> menu.add(showUser);
> menu.add(exitApp);
> menubar.add(menu);
> setMenuBar(menubar);
> add(textarea,"Center");
> add(exit, "South");
>
> setSize(400,400);
> this.show();
> }
>
> public static void main(String[] args)
> {
> TestOdmg app = new TestOdmg();
> }
>
> private void showUsers()
> {
> User user = null;
> System.out.println("Now Running @@@@@@@@@@@");
> int total = 0;
>
> try
> {
// open new DB
#### Database db = odmg.newDatabase();
db.open(...);
> // 1. open a transaction
> Transaction tx = odmg.newTransaction();
> tx.begin();
>
> // 2. get an OQLQuery object from the ODMG facade
> OQLQuery query = odmg.newOQLQuery();
>
> // 3. set the OQL select statement
> query.create("select allusers from " +
User.class.getName());
>
> // 4. perform the query and store the result in a
persistent
> Collection
> DList allUsers = (DList) query.execute();
> tx.commit();
>
> // 5. now iterate over the result to print each product
> java.util.Iterator iter = allUsers.iterator();
>
> while (iter.hasNext())
> {
> total++;
> user = (User) iter.next();
> textarea.appendText("User Id : "+user.getUserId()+ "
User
> Name "+ user.getUserName ());
> textarea.append("\n");
> }
>
> textarea.appendText("Total Users : "+ total);
> }
> catch (Throwable t)
> {
> t.printStackTrace();
> }
finally
{
// close on every call
### db.close();
}
> }
>
> public void actionPerformed (ActionEvent ae) {
> if (ae.getSource() instanceof Button) {
> System.exit(0);;
> }
> else if (ae.getSource() instanceof MenuItem) {
> if ("New User".equals(ae.getActionCommand())) {
> System.out.println ("New User");
> // AddUser adduser = new AddUser(this,broker);
> // adduser.show();
> }
> else if ("Show User".equals(ae.getActionCommand()))
> {
> showUsers();
> }
> else if ("Exit".equals(ae.getActionCommand())) {
> System.exit(0);;
> }
> }
> }
> }
>
> Ujwal
>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>