Just finished running some load tests against the full EJB 3 mode that I added. Pointed my datasources to a DB2 database. Ran fine for a while under low load; however, as the load increased started running into some exceptions from OpenJPA. A JIRA has already been opened by the WebSphere folks who are seeing the same thing.

https://issues.apache.org/jira/browse/OPENJPA-295

In the JIRA, Rob mentions that this was not a problem in earlier versions.

17:46:34,938 ERROR [OpenEJB] The bean instances business method encountered a system exception: TradeSLSBBean.getClosedOrders - error
javax.ejb.EJBException: TradeSLSBBean.getClosedOrders - error
    at org.apache.geronimo.samples.daytrader.ejb3.TradeSLSBBean.getClosedOrders(TradeSLSBBean.java:352)
    at sun.reflect.GeneratedMethodAccessor234.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:615)
    at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke (ReflectionInvocationContext.java:146)
    at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129)
    at org.apache.openejb.core.interceptor.InterceptorStack.invoke (InterceptorStack.java:67)
    at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:203)
    at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
    at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:211)
    at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:65)
    at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke (BaseEjbProxyHandler.java:230)
    at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
    at $Proxy28.getClosedOrders(Unknown Source)
    at org.apache.geronimo.samples.daytrader.TradeAction.getClosedOrders (TradeAction.java:294)
    at org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter.doFilter(OrdersAlertFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java :235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:175)
    at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
    at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java :351)
    at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:801)
Caused by:
<1.0.0-SNAPSHOT-SNAPSHOT nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
    at org.apache.openjpa.kernel.AbstractBrokerFactory.syncWithManagedTransaction (AbstractBrokerFactory.java:690)
    at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:304)
    at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:182)
    at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:190)
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:55)
    at org.apache.geronimo.persistence.CMPEntityManagerTxScoped.createEntityManager(CMPEntityManagerTxScoped.java :74)
    at org.apache.geronimo.persistence.CMPEntityManagerTxScoped.getEntityManager(CMPEntityManagerTxScoped.java:55)
    at org.apache.geronimo.persistence.CMPEntityManagerTxScoped.createNamedQuery(CMPEntityManagerTxScoped.java :259)
    at org.apache.geronimo.samples.daytrader.ejb3.TradeSLSBBean.getClosedOrders(TradeSLSBBean.java:335)
    ... 30 more
Caused by:
java.lang.ArrayIndexOutOfBoundsException
    at java.util.ArrayList.add (ArrayList.java:378)
    at org.apache.openjpa.kernel.AbstractBrokerFactory.syncWithManagedTransaction(AbstractBrokerFactory.java:684)
    ... 39 more

On 7/25/07, Christopher Blythe <cjblythe25@gmail.com> wrote:
Matt...

The new stateless session bean that I added does exactly what TradeJPA used to do. It's just been updated to an EJB 3 session bean instead of 2.1 and also contains the changes to ensure data consistency.

So basically, the new Session bean that I added  deprecates the original TradeJPA.

Chris


On 7/25/07, Jarek Gawor < jgawor@gmail.com> wrote:
Do you have any plans for updating the webservices bits from jax-rpc to jax-ws?

Jarek

On 7/25/07, Christopher Blythe <cjblythe25@gmail.com> wrote:
> All,
>
> As it currently stands, DayTrader 2.0 does not provide what I would consider
> a viable showcase application for Java EE 5 technology. The JPA mode that
> was added uses EJB3/JPA based entities; however, the mode still lacks a few
> key elements...
>
> - EJB 3 based stateless session bean providing the business logic (current
> impl still uses EJB 2.1 session beans)
> - EJB 3 based MDBs for Quote streamer and async order processing
> - Improvements to JPA mode to ensure data consistency and improve
> performance
>
> I have added a new EJB3 runtime mode that exposes the following...
> - TradeSLSBBean (new EJB 3 based session bean for business logic)
> - DTBroker3MDB (new EJB 3 based MDB for async order processing)
> - DTStreamer3MDB (new EJB 3 based MDB for quote streamer)
>
> I have made these updates and plan to commit them shortly, I have left the
> existing TradeJPA bean as is, in addition to the legacy Direct and EJB 2.1
> modes. I have pulled yesterday's build of Geronimo 2.0 and verified that the
> new EJB3 mode functionally works along with the legacy modes. The next step
> is load testing, so stay tuned...
>
> Thanks...
>
>  Chris
>
> --
> "I say never be complete, I say stop being perfect, I say let... lets
> evolve, let the chips fall where they may." - Tyler Durden



--

"I say never be complete, I say stop being perfect, I say let... lets evolve, let the chips fall where they may." - Tyler Durden



--
"I say never be complete, I say stop being perfect, I say let... lets evolve, let the chips fall where they may." - Tyler Durden