No rollback in case of exception in ejbStore()
Title: No rollback in case of exception in ejbStore() Configuration: Orion 1.5.2/1.5.4, Oracle 9i 1 SFSB and 2 EB, transactional attributes = Required for all beans. Transaction is initiated by call of SFSB method updateRow(). SFSB calls 2 EB setName() methods. SFSB implements SessionSynchronization interface. If in ejbStore() of any EB exception happens (for example throw new EJBException() or division by zero) the following happens: - client receive the following: com.evermind.server.rmi.OrionRemoteException: Transaction was rolled back: Error preparing bean instance: com.evermind.transaction.MarshallingXAExceptionm ... - transaction is commited !!! - checked directly in database and via afterCommit() callback. - transaction is repeated 4 times (!) just as it was rollbacked When such exception happens in business methods or ejbLoad() transaction is correctly rollbacked. Test case is enclosed. RollbackTestCase.zip Note, only that table was updated that corresponds to EB whose ejbStore() did not experience exception, in other words transaction atomicity is corrupted. I would appreciate any help or ideas. And you may check your code - probably the same problem is sleeping there. ITC-M, SIS Company Mr. Valeri Kireitchik Head of Application Software Department Fujitsu Siemens Computers Qualified Partner Microsoft Certified Partner Oracle Partner Program Member Surganova 24-406 220012 Minsk Republic of Belarus ph.: +375 (17) 262 50 23 fax: +375 (17) 262 55 91 http://www.sis-group.com/ RollbackTestCase.zip Description: Binary data
ClassCastException in generated code
Hi, I am getting a rather nasty ClassCastException when i try and remove a many-to-many join (implemented like the MovieDatabase example). My question is how do i go about debugging this? Is it possible to get access to the generated .java files? Thanks in advance for any advice stack traces follow (sorry) cheers timj com.evermind.server.rmi.OrionRemoteException: java.lang.ClassCastException: ProductJoin_EntityBeanWrapper853 at com.evermind.server.ejb.EJBUtils.getUserException(.:199) at EntityProduct_EntityBeanWrapper838.removeBrand(EntityProduct_EntityBeanWrapp er838.java:1805) at com.mywds.ejb.session.LightWeightBean.updateProduct(Unknown Source) at LightWeight_StatelessSessionBeanWrapper834.updateProduct(LightWeight_Statele ssSessionBeanWrapper834.java:4066) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(Unknown Source) at org.apache.axis.providers.java.RPCProvider.processMessage(Unknown Source) at org.apache.axis.providers.java.JavaProvider.invoke(Unknown Source) at org.apache.axis.strategies.InvocationStrategy.visit(Unknown Source) at org.apache.axis.SimpleChain.doVisiting(Unknown Source) at org.apache.axis.SimpleChain.invoke(Unknown Source) at org.apache.axis.server.AxisServer.invoke(Unknown Source) at org.apache.axis.transport.http.AxisServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:211) at javax.servlet.http.HttpServlet.service(HttpServlet.java:309) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at com.evermind._bxb._crd(.:501) at com.evermind._bxb._ukb(.:170) at com.evermind._cn._uab(.:576) at com.evermind._cn._fm(.:189) at com.evermind._bs.run(.:62) Nested exception is: java.lang.ClassCastException: ProductJoin_EntityBeanWrapper853 at ProductJoinHome_EntityHomeWrapper1381.remove(ProductJoinHome_EntityHomeWrapp er1381.java:16) at com.mywds.ejb.entity.EntityProductBean.removeBrand(Unknown Source) at EntityProduct_EntityBeanWrapper838.removeBrand(EntityProduct_EntityBeanWrapp er838.java:1791) at com.mywds.ejb.session.LightWeightBean.updateProduct(Unknown Source) at LightWeight_StatelessSessionBeanWrapper834.updateProduct(LightWeight_Statele ssSessionBeanWrapper834.java:4066) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(Unknown Source) at org.apache.axis.providers.java.RPCProvider.processMessage(Unknown Source) at org.apache.axis.providers.java.JavaProvider.invoke(Unknown Source) at org.apache.axis.strategies.InvocationStrategy.visit(Unknown Source) at org.apache.axis.SimpleChain.doVisiting(Unknown Source) at org.apache.axis.SimpleChain.invoke(Unknown Source) at org.apache.axis.server.AxisServer.invoke(Unknown Source) at org.apache.axis.transport.http.AxisServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:211) at javax.servlet.http.HttpServlet.service(HttpServlet.java:309) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at com.evermind._bxb._crd(.:501) at com.evermind._bxb._ukb(.:170) at com.evermind._cn._uab(.:576) at com.evermind._cn._fm(.:189) at com.evermind._bs.run(.:62)
Begging for help
I'm begging for some help on this set up. I'm using Glue Standard for using SOAP calls. Anyone that has used Glue with Orion before please help me out. I've gotten the orion example from glue working. Now I'm trying to do something practical. I've set up an app on Orion. It had to be a separate app because it will be using EJBs that are already deployed. So in server.xml I have application name=cande path=../applications/cande.ear parent=catd / catd is the application with the EJB I need. I need this to have the apps share EJBs. I have the GLUE-STD.jar in my WEB-INF/lib my web.xml looks like this: web-app !-- Description -- servlet servlet-name http /servlet-name servlet-class electric.server.http.ServletServer /servlet-class init-param param-name electric.commands /param-name param-value /orion-files/glue/commands.xml /param-value /init-param load-on-startup 1 /load-on-startup /servlet servlet-mapping servlet-name http /servlet-name url-pattern /* /url-pattern /servlet-mapping ejb-ref ejb-ref-nameejb/CanDEDataMgr/ejb-ref-name ejb-ref-typeSession/ejb-ref-type homecom.lilly.javaatg.catd.ejb.CanDEDataMgrHome/home remotecom.lilly.javaatg.catd.ejb.CanDEDataMgr/remote /ejb-ref /web-app It is the same as the webapps/glue web.xml except for the file location of the commands.xml and the reference to my EJB. My commands.xml looks like this: commands invoke electric.registry.Registry.publishInstance( urn:cande, com.lilly.javaatg.catd.cande.DataLoadImpl ) /invoke /commands I wrote a test program to try this out. The main calls look like this: String url = http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl;; RemoteDataLoader dataLoad = (RemoteDataLoader) Registry.bind( url, RemoteDataLoader.class ); boolean answer = dataLoad.isUserValid(userID,password); When I run it I get this error: could not bind to path: http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl Exception: electric.registry.RegistryException: could not bind to path: http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl at electric.net.soap.SOAPRegistry.bind(Unknown Source) at electric.registry.compound.CompoundRegistry.bind(Unknown Source) at electric.registry.Registry.bind(Unknown Source) at electric.registry.Registry.bind(Unknown Source) at ejbtest.main(ejbtest.java:78) Caused by: java.io.IOException: HTTP GET error: http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl Internal Server Error. Response code: 500: unable to load file http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl I've tried generating the wsdl and pointing the console to it but that does not work. What am I missing to make this work? = Jon Bricker You should never settle for the lesser of two Weasels. __ Do You Yahoo!? LAUNCH - Your Yahoo! Music Experience http://launch.yahoo.com
test - please not reply
Title: test - please not reply ITC-M, SIS Company Mr. Valeri Kireitchik Head of Application Software Department Fujitsu Siemens Computers Qualified Partner Microsoft Certified Partner Oracle Partner Program Member Surganova 24-406 220012 Minsk Republic of Belarus ph.: +375 (17) 262 50 23 fax: +375 (17) 262 55 91 http://www.sis-group.com/
RE: ClassCastException in generated code
Did you change your bean recently? It sounds like your remotes are out of date. Ensure you remotes on the client side match up properly. Also ensure any Serialiazable classes you pass via method calls are not updated in only the client of server. This error normally happens when you either try to cast the wrong object (I.e. in Collections this can happen easily if you are not careful) and serialized objects (when the new class doesn't match up to the old one). These will compile fine, but break during runtime. Without any other information, this is all I can add. Hope this helps. Greg -Original Message- From: Tim Joyce [mailto:[EMAIL PROTECTED]] Sent: Wednesday, May 15, 2002 4:16 AM To: Orion-Interest Subject: ClassCastException in generated code Hi, I am getting a rather nasty ClassCastException when i try and remove a many-to-many join (implemented like the MovieDatabase example). My question is how do i go about debugging this? Is it possible to get access to the generated .java files? Thanks in advance for any advice stack traces follow (sorry) cheers timj com.evermind.server.rmi.OrionRemoteException: java.lang.ClassCastException: ProductJoin_EntityBeanWrapper853 at com.evermind.server.ejb.EJBUtils.getUserException(.:199) at EntityProduct_EntityBeanWrapper838.removeBrand(EntityProduct_EntityBeanWrapp er838.java:1805) at com.mywds.ejb.session.LightWeightBean.updateProduct(Unknown Source) at LightWeight_StatelessSessionBeanWrapper834.updateProduct(LightWeight_Statele ssSessionBeanWrapper834.java:4066) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(Unknown Source) at org.apache.axis.providers.java.RPCProvider.processMessage(Unknown Source) at org.apache.axis.providers.java.JavaProvider.invoke(Unknown Source) at org.apache.axis.strategies.InvocationStrategy.visit(Unknown Source) at org.apache.axis.SimpleChain.doVisiting(Unknown Source) at org.apache.axis.SimpleChain.invoke(Unknown Source) at org.apache.axis.server.AxisServer.invoke(Unknown Source) at org.apache.axis.transport.http.AxisServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:211) at javax.servlet.http.HttpServlet.service(HttpServlet.java:309) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at com.evermind._bxb._crd(.:501) at com.evermind._bxb._ukb(.:170) at com.evermind._cn._uab(.:576) at com.evermind._cn._fm(.:189) at com.evermind._bs.run(.:62) Nested exception is: java.lang.ClassCastException: ProductJoin_EntityBeanWrapper853 at ProductJoinHome_EntityHomeWrapper1381.remove(ProductJoinHome_EntityHomeWrapp er1381.java:16) at com.mywds.ejb.entity.EntityProductBean.removeBrand(Unknown Source) at EntityProduct_EntityBeanWrapper838.removeBrand(EntityProduct_EntityBeanWrapp er838.java:1791) at com.mywds.ejb.session.LightWeightBean.updateProduct(Unknown Source) at LightWeight_StatelessSessionBeanWrapper834.updateProduct(LightWeight_Statele ssSessionBeanWrapper834.java:4066) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(Unknown Source) at org.apache.axis.providers.java.RPCProvider.processMessage(Unknown Source) at org.apache.axis.providers.java.JavaProvider.invoke(Unknown Source) at org.apache.axis.strategies.InvocationStrategy.visit(Unknown Source) at org.apache.axis.SimpleChain.doVisiting(Unknown Source) at org.apache.axis.SimpleChain.invoke(Unknown Source) at org.apache.axis.server.AxisServer.invoke(Unknown Source) at org.apache.axis.transport.http.AxisServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:211) at javax.servlet.http.HttpServlet.service(HttpServlet.java:309) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at com.evermind._bxb._crd(.:501) at com.evermind._bxb._ukb(.:170) at com.evermind._cn._uab(.:576) at com.evermind._cn._fm(.:189) at com.evermind._bs.run(.:62)
RE: Begging for help
Can you point a browser at the url and get the wsdl? Are you trying to access the EJB directly? If so you need pro which can talk to stateless session beans. Probably doesn't matter but you might try putting the jar file in the orion/lib directory. Hopes this helps. -Original Message- From: Jon Bricker [mailto:[EMAIL PROTECTED]] Sent: Wednesday, May 15, 2002 7:56 AM To: Orion-Interest Subject: Begging for help I'm begging for some help on this set up. I'm using Glue Standard for using SOAP calls. Anyone that has used Glue with Orion before please help me out. I've gotten the orion example from glue working. Now I'm trying to do something practical. I've set up an app on Orion. It had to be a separate app because it will be using EJBs that are already deployed. So in server.xml I have application name=cande path=../applications/cande.ear parent=catd / catd is the application with the EJB I need. I need this to have the apps share EJBs. I have the GLUE-STD.jar in my WEB-INF/lib my web.xml looks like this: web-app !-- Description -- servlet servlet-name http /servlet-name servlet-class electric.server.http.ServletServer /servlet-class init-param param-name electric.commands /param-name param-value /orion-files/glue/commands.xml /param-value /init-param load-on-startup 1 /load-on-startup /servlet servlet-mapping servlet-name http /servlet-name url-pattern /* /url-pattern /servlet-mapping ejb-ref ejb-ref-nameejb/CanDEDataMgr/ejb-ref-name ejb-ref-typeSession/ejb-ref-type homecom.lilly.javaatg.catd.ejb.CanDEDataMgrHome/home remotecom.lilly.javaatg.catd.ejb.CanDEDataMgr/remote /ejb-ref /web-app It is the same as the webapps/glue web.xml except for the file location of the commands.xml and the reference to my EJB. My commands.xml looks like this: commands invoke electric.registry.Registry.publishInstance( urn:cande, com.lilly.javaatg.catd.cande.DataLoadImpl ) /invoke /commands I wrote a test program to try this out. The main calls look like this: String url = http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl;; RemoteDataLoader dataLoad = (RemoteDataLoader) Registry.bind( url, RemoteDataLoader.class ); boolean answer = dataLoad.isUserValid(userID,password); When I run it I get this error: could not bind to path: http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl Exception: electric.registry.RegistryException: could not bind to path: http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl at electric.net.soap.SOAPRegistry.bind(Unknown Source) at electric.registry.compound.CompoundRegistry.bind(Unknown Source) at electric.registry.Registry.bind(Unknown Source) at electric.registry.Registry.bind(Unknown Source) at ejbtest.main(ejbtest.java:78) Caused by: java.io.IOException: HTTP GET error: http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl Internal Server Error. Response code: 500: unable to load file http://duke1.d51.lilly.com:8088/cande/urn:cande.wsdl I've tried generating the wsdl and pointing the console to it but that does not work. What am I missing to make this work? = Jon Bricker You should never settle for the lesser of two Weasels. __ Do You Yahoo!? LAUNCH - Your Yahoo! Music Experience http://launch.yahoo.com
Can't find servlet
Hi, I am registering the servlet in web.xml even then, I am getting an error saying that the servlet not found. do I need to register the servlet anywhere else ? this may be trivial but , could not figure out. Thanks Sri