When I looked at your client, I found that you have a loop that creates
100,000 instances of the EJB and have never free any. Thus, your client now
has 100,000 EJB's that will not be passivated until you leave the for loop.
This type of code will break most app servers.

SnowWolf Wagner

-----Original Message-----
From: theo van niekerk [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 27, 2001 9:31 AM
To: Orion-Interest
Subject: java.lang.OutOfMemoryError


Hi there

Orion is a great application server for small web apps. (We have deployed 2
small sites using orion with success).

But the moment you start thinking of using it for bigger more serious apps
it will always throw a java.lang.OutOfMemoryError

The problem: Orion does not passivate EJB's.

Attached an EAR file that will show this.

How to deploy..

Change your server.xml file to include something like..

        <application name="orionTest" path="file://C:/work/oriontest.ear" />

Start orion the normal way..

        java -jar orion.jar

Well, I don't know how to execute an external client that reference classes
inside a jar that is inside an ear, but the following works fine..

Unjar/Unzip the EAR
Unjar/Unzip the JARS

(I've used the directory structures..
        c:\work\oriontest
        c:\work\oriontest\test-ejb
        c:\work\oriontest\test-client

        and orion.jar is in..

        c:\PRG\orion)

execute..
        c:\work\oriontest\test-client\test.cmd

or cd to..
        c:\work\oriontest

and execute..
        c:\java\jdk1.3\bin\java -cp
.;test-client;test-ejb;c:\PRG\orion\orion.jar
tests.TestClient 1 100000 2000


PARAMS..
index of first bean to create = 1
create 100000 beans
refresh home reference every 2000 creations (thought it could make a
difference)

and after 6410 creations..

Created bean...6410
Exception in thread "main" java.lang.OutOfMemoryError
        at com.evermind.server.rmi.bb.invokeMethod(JAX)
        at com.evermind.server.rmi.a2.invoke(JAX)
        at com.evermind.server.rmi.a3.invoke(JAX)
        at __Proxy0.create(Unknown Source)
        at tests.TestClient.loopTest(TestClient.java:33)
        at tests.TestClient.main(TestClient.java:39)

And about 7 seconds later on the server side..
        a single bean gets passivated

Good Luck







Reply via email to