Hi!
I have been playing a bit with a Bean managed persistence bean and
Minerva. Things work to some extent but I do have 3 problems:
* My jboss.jcml configuration gets corrupted when jBoss saves it
back after bringing the Minerva pool stuff up.
I have this line in my jboss.jcml which always disappears, and
makes the Minerva pool not startup cleanly on next jboss server
startup, unless I put it back:
<attribute
name="URL">jdbc:informix-sqli:decann:1526/taxi:informixserver=sthlm</attribute>
Why would that attribute not be saved? All others are.
* When I should get a FinderException from my findByPrimaryKey stub
I instead get this in the client:
java.rmi.ServerException: RemoteException occurred in server thread; nested
exception is:
java.rmi.RemoteException: exception occured while invoking finder
method:java.lang.reflect.InvocationTargetException
java.rmi.RemoteException: exception occured while invoking finder
method:java.lang.reflect.InvocationTargetException
at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:245)
at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invokeHome(Unknown Source)
at
org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:81)
at org.jboss.proxy.ProxyCompiler$Runtime.invoke(ProxyCompiler.java:74)
at SysTablesHome$Proxy.findByPrimaryKey(Unknown Source)
at SysTablesClient.main(SysTablesClient.java:19)
and this on the server:
[Default] org.jboss.tm.TxManager@69f7d7bd
[SysTables] Calling the next invoker in runInvokeHome
java.lang.reflect.InvocationTargetException: [SysTables]
javax.ejb.ObjectNotFoundException: table not found: 30
[SysTables] at SysTablesBean.load(SysTablesBean.java:78)
[SysTables] at SysTablesBean.ejbFindByPrimaryKey(SysTablesBean.java:30)
[SysTables] at java.lang.reflect.Method.invoke(Native Method)
[SysTables] at
org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:258)
[SysTables] at
org.jboss.ejb.plugins.BMPPersistenceManager.findEntity(BMPPersistenceManager.java:140)
[SysTables] at org.jboss.ejb.EntityContainer.find(EntityContainer.java:389)
[SysTables] at java.lang.reflect.Method.invoke(Native Method)
[SysTables] at
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:522)
[SysTables] at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:147)
[SysTables] at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:77)
[SysTables] at
org.jboss.ejb.plugins.TxInterceptor$RunInvokeHome.run(TxInterceptor.java:500)
[SysTables] at
org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxInterceptor.java:289)
[SysTables] at
org.jboss.ejb.plugins.TxInterceptor.invokeHome(TxInterceptor.java:86)
[SysTables] at
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:101)
[SysTables] at
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:101)
[SysTables] at
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:308)
[SysTables] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:172)
[SysTables] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:132)
[SysTables] at java.lang.reflect.Method.invoke(Native Method)
[SysTables] at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:233)
[SysTables] at sun.rmi.transport.Transport$1.run(Transport.java:136)
[SysTables] at java.security.AccessController.doPrivileged(Native Method)
[SysTables] at sun.rmi.transport.Transport.serviceCall(Transport.java:133)
[SysTables] at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:418)
[SysTables] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:630)
[SysTables] at java.lang.Thread.run(Thread.java:475)
[SysTables] java.rmi.RemoteException: exception occured while invoking finder
method:java.lang.reflect.InvocationTargetException
[SysTables] at
org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:262)
[SysTables] at
org.jboss.ejb.plugins.BMPPersistenceManager.findEntity(BMPPersistenceManager.java:140)
[SysTables] at org.jboss.ejb.EntityContainer.find(EntityContainer.java:389)
[SysTables] at java.lang.reflect.Method.invoke(Native Method)
[SysTables] at
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:522)
[SysTables] at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:147)
[SysTables] at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:77)
[SysTables] at
org.jboss.ejb.plugins.TxInterceptor$RunInvokeHome.run(TxInterceptor.java:500)
[SysTables] at
org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxInterceptor.java:289)
[SysTables] at
org.jboss.ejb.plugins.TxInterceptor.invokeHome(TxInterceptor.java:86)
[SysTables] at
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:101)
[SysTables] at
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:101)
[SysTables] at
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:308)
[SysTables] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:172)
[SysTables] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:132)
[SysTables] at java.lang.reflect.Method.invoke(Native Method)
[SysTables] at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:233)
[SysTables] at sun.rmi.transport.Transport$1.run(Transport.java:136)
[SysTables] at java.security.AccessController.doPrivileged(Native Method)
[SysTables] at sun.rmi.transport.Transport.serviceCall(Transport.java:133)
[SysTables] at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:418)
[SysTables] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:630)
[SysTables] at java.lang.Thread.run(Thread.java:475)
[Default] java.rmi.RemoteException: exception occured while invoking finder
method:java.lang.reflect.InvocationTargetException
[Default] at
org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:262)
[Default] at
org.jboss.ejb.plugins.BMPPersistenceManager.findEntity(BMPPersistenceManager.java:140)
[Default] at org.jboss.ejb.EntityContainer.find(EntityContainer.java:389)
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default] at
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:522)
[Default] at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:147)
[Default] at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:77)
[Default] at
org.jboss.ejb.plugins.TxInterceptor$RunInvokeHome.run(TxInterceptor.java:500)
[Default] at
org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxInterceptor.java:289)
[Default] at
org.jboss.ejb.plugins.TxInterceptor.invokeHome(TxInterceptor.java:86)
[Default] at
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:101)
[Default] at
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:101)
[Default] at
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:308)
[Default] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:172)
[Default] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:132)
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default] at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:233)
[Default] at sun.rmi.transport.Transport$1.run(Transport.java:136)
[Default] at java.security.AccessController.doPrivileged(Native Method)
[Default] at sun.rmi.transport.Transport.serviceCall(Transport.java:133)
[Default] at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:418)
[Default] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:630)
[Default] at java.lang.Thread.run(Thread.java:475)
What gives? I am using JRMP1.2 and am running on Sun's JDK 1.2.2
for Linux, although I have to admit I do run it in Linux emulation
mode on OpenBSD. This fact can be relevant.
* The performance truelly sucks. I somehow thought I had misconfigured
Minerva to alway setup a new connection on each invocation, but no,
sniffing the network showed the pooling was in use. A findByPrimaryKey
invocation takes on the order of 1 second!!! The target database is
Informix and is on a remote machine although on the same LAN. The
actual SQL query uses on the order of 10ms, judging from the sniffer.
Any ideas at all what I should look at? Like good places to put
in printouts of the system clock? I am still quite a newcomer to
jBoss and do not know what to suspect so a few directed fingers
would be welcome.
The huge traceback in the section above, doe not look promising
though, it seems there is quite some call complexity inside jBoss.
Thanks in advance,
Niklas
PS.
I can provide the bean source on demand, it is not a very big nor a
special test.
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Problems?: [EMAIL PROTECTED]