RE: RE: JNDI naming exception when running app on orion from JBuilder
I have done both of the things mentioned and it still doesn't work. The JNDI properties only need to be set explicitly for jbuilder debugging. I am informed by Borland that this is probably because jbuilder is using it's own JNDI settings. When I run the application in orion normally, it works fine without specifying the JNDI settings,because I have put the ejb-ref tags in the web.xml. The problem is that, as shown below, the jndi.properties file in the META-INF directory of the war file is not being found. I'm pretty sure that if it was found, debugging would work. I just don't understand why it isnt being found. grant try: env.put(Context.PROVIDER_URL, ormi://localhost/flexisale2); instead of: env.put(Context.PROVIDER_URL, http://localhost/flexisale2;); That should give you the correct provider. I still don't understand why you are needing to specify JNDI properties. If you are running both your Servlet and your EJB's in the same instance of Orion specifying the Provider and Context factory should not be required. I debug EJB's, JSP's (using development mode), and Servlets inside of JBuilder 5 Enterprise without a problem. I have never needed to create an application-client.xml file. You do need, however, to specify the ejb-ref in the web.xml file. ejb-ref ejb-ref-nameejb/SPControllerHome/ejb-ref-name ejb-ref-typeSession/ejb-ref-type homeuk.co.britannic.flexisale.server.spcontroller.SPControllerHome/home remoteuk.co.britannic.flexisale.server.spcontroller.SPController/remote /ejb-ref Original Message: - From: DORAN, GRANT [EMAIL PROTECTED] Date: Tue, 19 Mar 2002 10:39:13 - To: [EMAIL PROTECTED] Subject: RE: JNDI naming exception when running app on orion from JBuilder Thanks, I am using JBuilder 6 Enterprise (trial) and debugging using the Non-jpda method described in the article that you mention. I have managed to move on slightly from that problem, by changing the code in the servlet to: Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, com.evermind.server.ApplicationClientInitialContextFactory); env.put(Context.PROVIDER_URL, http://localhost/flexisale2;); // Get the initial JNDI context using our settings Context context; try { context = new InitialContext(env); } catch (Throwable e) { e.printStackTrace(); throw new ServletException( Unable to get initial JNDI context: + e.toString()); } and by creating an application-client.xml file and puttnig it in the .war file in the META-INF directory. The xml file looks like this. ?xml version=1.0 encoding=UTF-8? !DOCTYPE application-client PUBLIC -//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN http://java.sun.com/j2ee/dtds/application-client_1_2.dtd; application-client display-nameSPcontroller/display-name ejb-ref ejb-ref-nameejb/SPControllerHome/res-ref-name ejb-ref-typeSession/res-type homeuk.co.britannic.flexisale.server.spcontroller.SPControllerHome/home remoteuk.co.britannic.flexisale.server.spcontroller.SPController/remote /ejb-ref /application-client But when the line creating the new context is run; context = new InitialContext(env); I get the following exception: javax.naming.NamingException: META-INF/application-client.xml resource not found (see J2EE spec, application-client chapter for requirements and format of the file) at com.evermind.server.ApplicationClientInitialContextFactory.getInitialConte xt (Unknown Source) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:665) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246) at javax.naming.InitialContext.init(InitialContext.java:222) at javax.naming.InitialContext.init(InitialContext.java:198) at uk.co.britannic.flexisale.server.test.TestServlet.init(TestServlet.java:46 ) at com.evermind._ah._axe(Unknown Source) at com.evermind._ah._fpd(Unknown Source) at com.evermind._ah._cwc(Unknown Source) at com.evermind._io._twc(Unknown Source) at com.evermind._io._gc(Unknown Source) at com.evermind._if.run(Unknown Source) This error occurs even when I'm running orion by itself. I've looked high and low and cant find any info that indicates why the file can't be found. Every example that I can find defines the provider_url as the root of the web application, like this; env.put(Context.PROVIDER_URL, http://localhost/flexisale2;); If the application-client.xml file is in the META-INF directory of the web application, why do I get this error? Has anyone done this before? Thanks, Grant Doran Contract Java Developer/Architect Britannic Assurance -Original
Re: Trying to get opensymphony transform tags to work with Orion 1.5.4
I use them. What's the problem? Installation should be straightforward. - Joseph B. Ottinger [EMAIL PROTECTED] http://enigmastation.comIT Consultant On Wed, 20 Mar 2002, Jarrod Roberson wrote: anyone use these custom tags, I am trying to get this installed and can not remember how I did it last time on 1.5.2?
R: Forwarding *.jsp from Apache to Orion
yes, I've got! this snippet of httpd.conf sets up a proxy from apache to a web application in orion, so that if you requests http://yoursite/Abr/index.jsp, actually http://localhost:/Abr/index.jsp is called and the content is written back to the calling browser as http://yoursite/Abr/index.jsp ---begin--- LoadModule proxy_module modules/ApacheModuleProxy.dll AddModule mod_proxy.c IfModule mod_proxy.c ProxyRequests On ProxyPass/Abr/ http://localhost:/Abr/ ProxyPassReverse /Abr/ http://localhost:/Abr/ ProxyPass/ora9idoc/ http://lspclinux1:80/ora9idb_docs/ ProxyPassReverse /ora9idoc/ http://lspclinux1:80/ora9idb_docs/ /IfModule ---end--- hope it helps, d.rizzi -Messaggio originale- Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]Per conto di Manish M. Shah Inviato: martedì 19 marzo 2002 21.51 A: Orion-Interest Oggetto: Forwarding *.jsp from Apache to Orion Hi guys, We have to use Apache as our web server and Orion as the application server. As a result, I need to forward all *.jsp files from Apache to Orion. I know about the proxy setup in Apache. I also know about forwarding *.html/*.jpg/etc files from Orion to Apache, but we need to forward from Apache to Orion. Has anyone had any luck or success with that? Thanks. Manish
Authentication
Hi Have anyone of you noticed that the RoleManager contains no log-out method this raises the question How do you log out an application (Swing) client? Randahl
ejbStore not getting called! Please provide any comments you have...
Dear OrionServer group, I know this is a far shot, but I am hoping that someone had a similar experience. The ejbStore method is not being called for an CMP2.0 entity bean. Not all beans, just this one! The record is updated, and seems to be correct somewhere in memory, but it's never written out to disk. If I restart orion, the record is back to what it is on disk. The only time I see ejbStore IS called is on initial create. Again, this is happening on only 1 bean. Here is the trace: rejecting: 714 note: asdfasdfasdfasdfasdf request.MemberRequestServiceBean (?:?) - rejectRequest: 714 note:asdfasdfasdfasdfasdf request.RequestEntityBean (?:?) - reject request begin: 714 with note: asdfas current status: 1 request.RequestEntityBean (?:?) - reject request end: 714 with note: asdfas current status: 3 In the following code sample setStatus and setNote are both abstract functions (CMP2.0). The setStatus is changing the state of the object since I print it out in the second log statement. The code: public void ejbStore() { log.debug(ejbStore: + getKey().getId()); } public void ejbLoad() { super.ejbLoad(); log.debug(ejbLoad: + getKey().getId()); } public void reject(final String note) { if (log.isDebugEnabled()) log.debug(reject request begin: + getKey().getId() + with note: + note + current status: + getStatus()); //Assure proper status // if (getStatus() != RequestEntity.STATUS_PENDING) throw new EJBException(Cannot reject request in non-pending status); //Configure new status // setStatus(RequestEntity.STATUS_REJECTED); //Configure note // setNote(note); //Debug // if (log.isDebugEnabled()) log.debug(reject request end: + getKey().getId() + with note: + getNote() + current status: + getStatus()); } Thanks. -AP_
Silent checking of all web client certificates ?
Is it possible for an application to silently check all client certificates installed in the browser and then decide to use either one of them or a username/password approach to authenticate the user ? Setting ssl-config needs-client-auth=true... will force the user to choose, but I would like to avoid that. Best Kjell
Help getting started with JMS
I'm having some problems getting JMS up and running. I've activated the jms entry in the server.xml. I've checked the jms log file, and it seems to be getting started. I'm using the default port of 9127. Unfortunately, when I run my application client, I get the following exception: javax.jms.JMSException: Unable to connect to JMSServer (localhost:127.0.0.1:9127) I'm currently using a queue. My jms.xml configurations for this are: jms-server port="9127" host="localhost" queue-connection-factory location="jms/theQueueConnectionFactory"host="localhost"port="9127" / queue name="Demo Queue" location="jms/demoQueue" persistence-file="../persistence/jms/demoQueue.queue" descriptionA dummy queue/description/queue My jndi properties for my application are: java.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactoryjava.naming.provider.url=ormi://localhost/java.naming.security.principal=admin accountjava.naming.security.credentials=admin password And last but not least, my application-client.xml is: ?xml version="1.0"?!DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd"application-client resource-ref res-ref-namejms/theQueueConnectionFactory/res-ref-name res-typejavax.jms.QueueConnectionFactory/res-type res-authContainer/res-auth /resource-ref resource-ref res-ref-namejms/demoQueue/res-ref-name res-typejavax.jms.Queue/res-type res-authContainer/res-auth /resource-ref/application-client My client program is very basic: public static void main(String [] argv) { try { Context context = new InitialContext(); QueueConnectionFactory qfactory = (QueueConnectionFactory)context.lookup("java:comp/env/jms/theQueueConnectionFactory"); Queue myqueue = (Queue)context.lookup("java:comp/env/jms/demoQueue"); QueueConnection qconn = qfactory.createQueueConnection(); qconn.start(); QueueSession qsess = qconn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); QueueSender qsend = qsess.createSender(myqueue); qsend.send(qsess.createTextMessage("Message")); System.out.println("sent message!"); qconn.close(); } catch (Exception e) { e.printStackTrace(); } } Any ideas as to what I'm doing wrong?? Obviously, something is hosed on my configuration. Thanks for any help. Joe
RE: Soap with Axis ?
GLUE is a product similar to Axis. Although from what I have seen I would say that Axis has a long way to go before it can match GLUE. GLUE product line has two versions, a Standard Edition (Free) which only talks to local classes and a Pro Edition (~$1500/per server) that can talk to Stateless Session beans out of the box and has some other features like UDDI. With the Standard Edition you could write a local class that basically does a pass through to the EJB (facade pattern). Also the support from TME is outstanding. The TME staff regularly respond to the email list. The company and product rocks! Hope this help -Original Message- From: Eddie [mailto:[EMAIL PROTECTED]] Sent: Tuesday, March 19, 2002 4:14 PM To: Orion-Interest Subject: Re: Soap with Axis ? Montebove, Thanks for your response. I understand what you mean, but you are going a bit too fast for me. First you talk about a GLUE requirement. Where can I find more information about this in the manual (I searched but haven't find it ... yet). Do you mean implementing the Iservice interface ? How do you invoke the EJB method ?: Using java reflection ? Eddie - Original Message - From: Montebove Luciano [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Tuesday, March 19, 2002 3:19 PM Subject: R: Soap with Axis ? Your facade class to EJB must: 1) implements an interface (GLUE requirement) 2) take a reference to an EJB (i.e. in the constructor) TestGlue tg; ... javax.naming.Context jndi = new InitialContext(); Object obj = jndi.lookup(java:comp/env/ejb/TestGlue); TestGlueHome tgh = (TestGlueHome) javax.rmi.PortableRemoteObject.narrow( obj, TestGlueHome.class ); tg = tgh.create(); ... 3)call the EJB methods: return tg.myMethod(myParam p); ... The updated link for Orion is http://www.themindelectric.com/products/glue/docs/glue/guide/integrations/or ion/introduction.html Hope this Help Luciano -Messaggio originale- Da: Eddie [mailto:[EMAIL PROTECTED]] Inviato: martedì 19 marzo 2002 13.17 A: Orion-Interest Oggetto: Re: Soap with Axis ? Montebove, How do you do the EJB facade thing you explain below ? Where can I see an example ? BTW: the second URl in you mail below doesn't work! Thanks for the response, Ed - Original Message - From: Montebove Luciano [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Tuesday, March 12, 2002 10:13 AM Subject: R: Soap with Axis ? Why use an alpha-3 code (axis) when you can have a fast production quality soap implementation like GLUE for free? http://www.themindelectric.com/products/glue/glue.html http://www.themindelectric.com/products/glue/releases/GLUE-2.0.1/docs/glue/g uide/hosting/orion.html Don't be confused from the fact that the standard edition (the only free) comes without EJB support. It means only that you can't expose automatically, as a soap service, an EJB. But you can write a simple Java class that works as a facade for the EJB. As this class works inside the GLUE servlet, you can use the standard syntax for lookup of EJBs you use in servlets. Hope this help Luciano -Messaggio originale- Da: Eddie [mailto:[EMAIL PROTECTED]] Inviato: sabato 9 marzo 2002 20.05 A: Orion-Interest Oggetto: Soap with Axis ? Hellu, Does anyone has an example descriptor of a web service to connect a client to a EJB through SOAP (Axis of Apache) ? Most os the examples I find are not based on Ejb connections and on the Atlassian site I saw a example for Apache Soap but I can't get it to work with Orion. Eddie
RE: ejbStore not getting called! Please provide any comments youhave...
I did not mention that I am running Orion 1.5.3 (I cannot switch to 1.5.4) because I have too many entity objects with relations already implemented in 1.5.3). This used to work before, but is not working now. I am not sure what could have changed to cause such a problem. I have already tried the exclusive-write-access=false but that did not help at all. I am also running on RedHat 7.1 Linux, and using java version 1.3.1_01. Thanks for any help you can offer. -AP_ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alex Paransky Sent: Wednesday, March 20, 2002 5:07 AM To: Orion-Interest Subject: ejbStore not getting called! Please provide any comments you have... Dear OrionServer group, I know this is a far shot, but I am hoping that someone had a similar experience. The ejbStore method is not being called for an CMP2.0 entity bean. Not all beans, just this one! The record is updated, and seems to be correct somewhere in memory, but it's never written out to disk. If I restart orion, the record is back to what it is on disk. The only time I see ejbStore IS called is on initial create. Again, this is happening on only 1 bean. Here is the trace: rejecting: 714 note: asdfasdfasdfasdfasdf request.MemberRequestServiceBean (?:?) - rejectRequest: 714 note:asdfasdfasdfasdfasdf request.RequestEntityBean (?:?) - reject request begin: 714 with note: asdfas current status: 1 request.RequestEntityBean (?:?) - reject request end: 714 with note: asdfas current status: 3 In the following code sample setStatus and setNote are both abstract functions (CMP2.0). The setStatus is changing the state of the object since I print it out in the second log statement. The code: public void ejbStore() { log.debug(ejbStore: + getKey().getId()); } public void ejbLoad() { super.ejbLoad(); log.debug(ejbLoad: + getKey().getId()); } public void reject(final String note) { if (log.isDebugEnabled()) log.debug(reject request begin: + getKey().getId() + with note: + note + current status: + getStatus()); //Assure proper status // if (getStatus() != RequestEntity.STATUS_PENDING) throw new EJBException(Cannot reject request in non-pending status); //Configure new status // setStatus(RequestEntity.STATUS_REJECTED); //Configure note // setNote(note); //Debug // if (log.isDebugEnabled()) log.debug(reject request end: + getKey().getId() + with note: + getNote() + current status: + getStatus()); } Thanks. -AP_
Need some help to implement Clustering
Hi, I am unable to implement session failover in orion1.5.2 , getting 'Error while receiving sessions from the cluster'. SETUP: I have 2 win2k servers running jdk 1.3.0_02 and jikes 1.15 with Orion1.5.2. The servers have ids 82 and 83. PROBLEM: Both 82 and 83 are up, I go to page1.jsp and then to page2.jsp, I see session being created and all the values that are being sent to the other server in the same island(1). If my session is in 83 and when I bring 83 down, my session is transferred to 82. Perfect. Page2.jsp has a counter similar to sessionServlet. When I bring up 83, everything works fine in the web site, However I looked at the logs and I found this error 'Error while receiving sessions from the cluster' in 83(see below). I am also attaching the bean and both the jsp pages. I am just curious, when you use a Java Bean, shouldn't you see a *.ser file in the persistence directory of the application?. I have also attached(see below) the out.log just in case you notice anything else. *** application.log_83 3/19/02 11:27 AM Started 3/19/02 11:27 AM config-web-app: 1.5.2 Started 3/19/02 11:27 AM config-web-app: 1.5.2 Stopped 3/19/02 11:27 AM Stopped (JVM termination) 3/19/02 11:28 AM Started 3/19/02 11:28 AM config-web-app: Error while receiving sessions from the cluster java.lang.ClassNotFoundException: com/micronpc/util/ChannelUtilityBean at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.evermind._dp.resolveClass(Unknown Source) at java.io.ObjectInputStream.inputClassDescriptor(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at java.io.ObjectInputStream.inputObject(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at com.evermind.server.ApplicationServer._wy(Unknown Source) at com.evermind.server.http.EvermindHttpSession.readObject(Unknown Source) at com.evermind.server.http.EvermindHttpSession._hy(Unknown Source) at com.evermind.server.http.ClusteredHttpSession._hy(Unknown Source) at com.evermind.server.http.ClusteredHttpSession._hy(Unknown Source) at com.evermind._ah._toc(Unknown Source) at com.evermind._cqb._tfc(Unknown Source) at com.evermind._cqb._os(Unknown Source) at com.evermind._hr.run(Unknown Source) at com.evermind._if.run(Unknown Source) 3/19/02 11:28 AM config-web-app: 1.5.2 Started *** out.log for server 82 * HTTP-clustering service started... HTTP-Clustering service initializing... HTTP-Clustering sent I want sessions request... HTTP-clustering service started... HTTP-Clustering service initializing... HTTP-Clustering sent I want sessions request... Orion/1.5.2 initialized Sending HTTP-cluster session creation for session OBHGJMAIILGLs2hKTBB9B... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: [EMAIL PROTECTED] Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=0... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=1... Receiving HTTP-cluster send-sessions request... Receiving HTTP-cluster send-sessions permission from 82 (I'm 82)... Persisting state Storing 0 sessions... Receiving HTTP-cluster send-sessions request... Receiving HTTP-cluster send-sessions permission from 82 (I'm 82)... Persisting state Storing 1 sessions... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=2... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=3... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=4... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=5... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=6... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=7... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=8... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=9... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=10... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=11... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=12... Sending HTTP-cluster session value update for session OBHGJMAIILGLs2hKTBB9B: Counter=13... Receiving HTTP-cluster send-sessions request... Receiving HTTP-cluster send-sessions permission from 82 (I'm 82)... Persisting state Storing 0 sessions... Receiving HTTP-cluster send-sessions request... Receiving HTTP-cluster send-sessions permission from 82 (I'm 82)...
Re: RMI client accessing JMS Topic
Your'e right RMI client will not have access to java:comp/env. I used jms/theTopic in the lookup to get the topic and the same way to get the connection. I used RMIInitialContextFactory in my jndi.properties. -kesav kumar - Original Message - From: Vidur Dhanda [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Tuesday, March 19, 2002 10:12 PM Subject: Re: RMI client accessing JMS Topic Hello Kesav, Thanks for your reply. It seems to me that the problem occurs when the client is not a J2EE application client. Hence, the application-client.xml is not available. Did you modify the JMSChat example to not use the java:comp/env namespace? I believe a RMI client will not have access to the java:comp/env namespace. Regards, Vidur Kesav Kumar wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Yes you can use RMIInitialContextFactory to get the connection factory. I just modified the JMSChat program in the demo to use RMIInitialContext and I am able to get the factory and topic. Are you running this client program from different machine from where the server is running? I tested running the jmsclient on the same machine where the orion is running. I hope there nothing difference in running locally and running on different machine. Post your code along with jndi.properties it may help in further debugging. - -kesav kumar - - Original Message - From: Vidur Dhanda [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Tuesday, March 19, 2002 8:19 AM Subject: RMI client accessing JMS Topic Hello, Is it possible for a RMI client (com.evermind.server.rmi.RMIInitialContextFactory) to access a JMS TopicConnectionFactory? In my code, an ApplicationClient can access the TopicConnectionFactory using the java:comp/env/jms context but an RMI client hangs when it tries to access the same TopicConnectionFactory through the jms/ context. In jms.xml, there is an entry for the TopicConnectionFactory as: topic-connection-factory location=jms/notificationFactory/ and the client code hangs on the call: context.lookup(jms/notificationFactory) at RMIContext.lookup () [line 92]. The context is the same context that is used for correctly accessing other resources such as looking up EJBs. Thanks, Vidur -- Vidur Dhanda Epistemic Corporation tel: 617/566-1252 fax: 509/693-1248 cell: 617/821-7115 ICQ: 129193878 [EMAIL PROTECTED] www.epistemic.com -BEGIN PGP SIGNATURE- Version: PGPfreeware 7.0.3 for non-commercial use http://www.pgp.com iQA/AwUBPJgV/wFy+fQ1CDihEQJ2egCfbl/2D3Tl3Dw0DVOvlSCu57Prw+gAoJIB SBn6CF71MoE/Lyf4acDp75hn =TB/t -END PGP SIGNATURE- -- Vidur Dhanda Epistemic Corporation tel: 617/566-1252 fax: 509/693-1248 cell: 617/821-7115 ICQ: 129193878 [EMAIL PROTECTED] www.epistemic.com
RE: Concurrent calls to Session bean methods
I haven't seen the history on this issue, but it interests me. I had a quick look at the ShoppingClientControllerEJB class that is given as an example by Sun in the Session Facade design pattern, but couldn't see where they are synchronizing calls. Can you provide some more clues? Thanks, John H. The elephantwalker [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent by: cc: owner-orion-interest@orion Subject: RE: Concurrent calls to Session bean methods server.com 03/19/02 10:31 PM Please respond to Orion-Interest Vani, You can use the petstore trick. Use a facade class which sychronizes each call to your session bean. That should do the trick. This is a _famous_ problem with session beans. regards, the elephantwalker www.elephantwalker.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Vani H.S. Sent: Wednesday, March 20, 2002 12:04 AM To: Orion-Interest Subject: Concurrent calls to Session bean methods Hello All, I have been trying to deploy an application consisting of session beans and mdbs onto orion1.5.4. But I seem to run into deadlocks, because my session bean gets called concurrently. Please can anybody can tell me if there is a setting to allow concurrent calls so that, when a session bean method is called at one time, the EJB container blocks the concurrent method call and allows it to proceed when the previous call has completed? If not, how should this problem of concurrent calls be handled in orion? Please help. Thanks, Vani The allow-concurrent-calls element specifies whether a stateful session bean instance allows concurrent method calls. By default, allows-concurrent-calls is false. However, when this value is set to true, the EJB container blocks the concurrent method call and allows it to proceed when the previous call has completed. _ Join the world's largest e-mail service with MSN Hotmail. http://www.hotmail.com
RE: ejbStore not getting called! Please provide any comments you have...
Please do not copy me on any further emails at [EMAIL PROTECTED] or [EMAIL PROTECTED] Alex Paransky [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent by: cc: owner-orion-interest@orioSubject: RE: ejbStore not getting called! Please provide any comments you have... nserver.com 03/20/2002 11:34 AM Please respond to Orion-Interest I did not mention that I am running Orion 1.5.3 (I cannot switch to 1.5.4) because I have too many entity objects with relations already implemented in 1.5.3). This used to work before, but is not working now. I am not sure what could have changed to cause such a problem. I have already tried the exclusive-write-access=false but that did not help at all. I am also running on RedHat 7.1 Linux, and using java version 1.3.1_01. Thanks for any help you can offer. -AP_ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alex Paransky Sent: Wednesday, March 20, 2002 5:07 AM To: Orion-Interest Subject: ejbStore not getting called! Please provide any comments you have... Dear OrionServer group, I know this is a far shot, but I am hoping that someone had a similar experience. The ejbStore method is not being called for an CMP2.0 entity bean. Not all beans, just this one! The record is updated, and seems to be correct somewhere in memory, but it's never written out to disk. If I restart orion, the record is back to what it is on disk. The only time I see ejbStore IS called is on initial create. Again, this is happening on only 1 bean. Here is the trace: rejecting: 714 note: asdfasdfasdfasdfasdf request.MemberRequestServiceBean (?:?) - rejectRequest: 714 note:asdfasdfasdfasdfasdf request.RequestEntityBean (?:?) - reject request begin: 714 with note: asdfas current status: 1 request.RequestEntityBean (?:?) - reject request end: 714 with note: asdfas current status: 3 In the following code sample setStatus and setNote are both abstract functions (CMP2.0). The setStatus is changing the state of the object since I print it out in the second log statement. The code: public void ejbStore() { log.debug(ejbStore: + getKey().getId()); } public void ejbLoad() { super.ejbLoad(); log.debug(ejbLoad: + getKey().getId()); } public void reject(final String note) { if (log.isDebugEnabled()) log.debug(reject request begin: + getKey().getId() + with note: + note + current status: + getStatus()); //Assure proper status // if (getStatus() != RequestEntity.STATUS_PENDING) throw new EJBException(Cannot reject request in non-pending status); //Configure new status // setStatus(RequestEntity.STATUS_REJECTED); //Configure note // setNote(note); //Debug // if (log.isDebugEnabled()) log.debug(reject request end: + getKey().getId() + with note: + getNote() + current status: + getStatus()); } Thanks. -AP_
RE: Soap with Axis ?
Thanks, With the Standard Edition you could write a local class that basically does a pass through to the EJB (facade pattern). I understand you, but I still don't know how to pass a call ? (do you have an example piece of code ? I never used reflection before and I suppose I should do it with that not ?? Eddie From: Satter, Rabi [EMAIL PROTECTED] Reply-To: Orion-Interest [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Subject: RE: Soap with Axis ? Date: Wed, 20 Mar 2002 09:43:55 -0600 GLUE is a product similar to Axis. Although from what I have seen I would say that Axis has a long way to go before it can match GLUE. GLUE product line has two versions, a Standard Edition (Free) which only talks to local classes and a Pro Edition (~$1500/per server) that can talk to Stateless Session beans out of the box and has some other features like UDDI. With the Standard Edition you could write a local class that basically does a pass through to the EJB (facade pattern). Also the support from TME is outstanding. The TME staff regularly respond to the email list. The company and product rocks! Hope this help -Original Message- From: Eddie [mailto:[EMAIL PROTECTED]] Sent: Tuesday, March 19, 2002 4:14 PM To: Orion-Interest Subject: Re: Soap with Axis ? Montebove, Thanks for your response. I understand what you mean, but you are going a bit too fast for me. First you talk about a GLUE requirement. Where can I find more information about this in the manual (I searched but haven't find it ... yet). Do you mean implementing the Iservice interface ? How do you invoke the EJB method ?: Using java reflection ? Eddie - Original Message - From: Montebove Luciano [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Tuesday, March 19, 2002 3:19 PM Subject: R: Soap with Axis ? Your facade class to EJB must: 1) implements an interface (GLUE requirement) 2) take a reference to an EJB (i.e. in the constructor) TestGlue tg; ... javax.naming.Context jndi = new InitialContext(); Object obj = jndi.lookup(java:comp/env/ejb/TestGlue); TestGlueHome tgh = (TestGlueHome) javax.rmi.PortableRemoteObject.narrow( obj, TestGlueHome.class ); tg = tgh.create(); ... 3)call the EJB methods: return tg.myMethod(myParam p); ... The updated link for Orion is http://www.themindelectric.com/products/glue/docs/glue/guide/integrations/or ion/introduction.html Hope this Help Luciano -Messaggio originale- Da: Eddie [mailto:[EMAIL PROTECTED]] Inviato: martedì 19 marzo 2002 13.17 A: Orion-Interest Oggetto: Re: Soap with Axis ? Montebove, How do you do the EJB facade thing you explain below ? Where can I see an example ? BTW: the second URl in you mail below doesn't work! Thanks for the response, Ed - Original Message - From: Montebove Luciano [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Tuesday, March 12, 2002 10:13 AM Subject: R: Soap with Axis ? Why use an alpha-3 code (axis) when you can have a fast production quality soap implementation like GLUE for free? http://www.themindelectric.com/products/glue/glue.html http://www.themindelectric.com/products/glue/releases/GLUE-2.0.1/docs/glue/g uide/hosting/orion.html Don't be confused from the fact that the standard edition (the only free) comes without EJB support. It means only that you can't expose automatically, as a soap service, an EJB. But you can write a simple Java class that works as a facade for the EJB. As this class works inside the GLUE servlet, you can use the standard syntax for lookup of EJBs you use in servlets. Hope this help Luciano -Messaggio originale- Da: Eddie [mailto:[EMAIL PROTECTED]] Inviato: sabato 9 marzo 2002 20.05 A: Orion-Interest Oggetto: Soap with Axis ? Hellu, Does anyone has an example descriptor of a web service to connect a client to a EJB through SOAP (Axis of Apache) ? Most os the examples I find are not based on Ejb connections and on the Atlassian site I saw a example for Apache Soap but I can't get it to work with Orion. Eddie _ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.
RE: Concurrent calls to Session bean methods
Thanks for the suggestion, Elephantwalker. Will look into the facade class used in pet store application. Regards, Vani From: The elephantwalker [EMAIL PROTECTED] Reply-To: Orion-Interest [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Subject: RE: Concurrent calls to Session bean methods Date: Tue, 19 Mar 2002 20:31:38 -0800 Vani, You can use the petstore trick. Use a facade class which sychronizes each call to your session bean. That should do the trick. This is a _famous_ problem with session beans. regards, the elephantwalker www.elephantwalker.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Vani H.S. Sent: Wednesday, March 20, 2002 12:04 AM To: Orion-Interest Subject: Concurrent calls to Session bean methods Hello All, I have been trying to deploy an application consisting of session beans and mdbs onto orion1.5.4. But I seem to run into deadlocks, because my session bean gets called concurrently. Please can anybody can tell me if there is a setting to allow concurrent calls so that, when a session bean method is called at one time, the EJB container blocks the concurrent method call and allows it to proceed when the previous call has completed? If not, how should this problem of concurrent calls be handled in orion? Please help. Thanks, Vani The allow-concurrent-calls element specifies whether a stateful session bean instance allows concurrent method calls. By default, allows-concurrent-calls is false. However, when this value is set to true, the EJB container blocks the concurrent method call and allows it to proceed when the previous call has completed. _ Join the worlds largest e-mail service with MSN Hotmail. http://www.hotmail.com _ Chat with friends online, try MSN Messenger: http://messenger.msn.com
RE: ejbStore not getting called! Please provide any comments youhave...
I seem to have solved my problem. It had to do with boolean isModified() function call. I accidentally added this function to my base class and defaulted the return value to false. Thanks to all that responded. -AP_ http://www.alexparansky.com Java/J2EE Architect/Consultant http://www.myprofiles.com/member/view.do?profileId=127 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alex Paransky Sent: Wednesday, March 20, 2002 8:35 AM To: Orion-Interest Subject: RE: ejbStore not getting called! Please provide any comments you have... I did not mention that I am running Orion 1.5.3 (I cannot switch to 1.5.4) because I have too many entity objects with relations already implemented in 1.5.3). This used to work before, but is not working now. I am not sure what could have changed to cause such a problem. I have already tried the exclusive-write-access=false but that did not help at all. I am also running on RedHat 7.1 Linux, and using java version 1.3.1_01. Thanks for any help you can offer. -AP_ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alex Paransky Sent: Wednesday, March 20, 2002 5:07 AM To: Orion-Interest Subject: ejbStore not getting called! Please provide any comments you have... Dear OrionServer group, I know this is a far shot, but I am hoping that someone had a similar experience. The ejbStore method is not being called for an CMP2.0 entity bean. Not all beans, just this one! The record is updated, and seems to be correct somewhere in memory, but it's never written out to disk. If I restart orion, the record is back to what it is on disk. The only time I see ejbStore IS called is on initial create. Again, this is happening on only 1 bean. Here is the trace: rejecting: 714 note: asdfasdfasdfasdfasdf request.MemberRequestServiceBean (?:?) - rejectRequest: 714 note:asdfasdfasdfasdfasdf request.RequestEntityBean (?:?) - reject request begin: 714 with note: asdfas current status: 1 request.RequestEntityBean (?:?) - reject request end: 714 with note: asdfas current status: 3 In the following code sample setStatus and setNote are both abstract functions (CMP2.0). The setStatus is changing the state of the object since I print it out in the second log statement. The code: public void ejbStore() { log.debug(ejbStore: + getKey().getId()); } public void ejbLoad() { super.ejbLoad(); log.debug(ejbLoad: + getKey().getId()); } public void reject(final String note) { if (log.isDebugEnabled()) log.debug(reject request begin: + getKey().getId() + with note: + note + current status: + getStatus()); //Assure proper status // if (getStatus() != RequestEntity.STATUS_PENDING) throw new EJBException(Cannot reject request in non-pending status); //Configure new status // setStatus(RequestEntity.STATUS_REJECTED); //Configure note // setNote(note); //Debug // if (log.isDebugEnabled()) log.debug(reject request end: + getKey().getId() + with note: + getNote() + current status: + getStatus()); } Thanks. -AP_
RE: Concurrent calls to Session bean methods
John, Here is the offending class, compliments of the Sun Blueprint team: public class ShoppingClientControllerWebImpl implements WebClientController { private ShoppingClientControllerLocal sccEjb; private HttpSession session; public ShoppingClientControllerWebImpl() { } // ... stuff... // // the important bit ... public synchronized EventResponse handleEvent(Event ev) throws EventException { return sccEjb.processEvent(ev); } } So you see that the webcontroller is the _only_ access to the sfsb. And the only call is synchronized, thus preventing cocurrent calls to the stateful session bean. regards, the elephantwalker www.elephantwalker.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of [EMAIL PROTECTED] Sent: Wednesday, March 20, 2002 12:05 PM To: Orion-Interest Subject: RE: Concurrent calls to Session bean methods I haven't seen the history on this issue, but it interests me. I had a quick look at the ShoppingClientControllerEJB class that is given as an example by Sun in the Session Facade design pattern, but couldn't see where they are synchronizing calls. Can you provide some more clues? Thanks, John H. The elephantwalker [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent by: cc: owner-orion-interest@orion Subject: RE: Concurrent calls to Session bean methods server.com 03/19/02 10:31 PM Please respond to Orion-Interest Vani, You can use the petstore trick. Use a facade class which sychronizes each call to your session bean. That should do the trick. This is a _famous_ problem with session beans. regards, the elephantwalker www.elephantwalker.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Vani H.S. Sent: Wednesday, March 20, 2002 12:04 AM To: Orion-Interest Subject: Concurrent calls to Session bean methods Hello All, I have been trying to deploy an application consisting of session beans and mdbs onto orion1.5.4. But I seem to run into deadlocks, because my session bean gets called concurrently. Please can anybody can tell me if there is a setting to allow concurrent calls so that, when a session bean method is called at one time, the EJB container blocks the concurrent method call and allows it to proceed when the previous call has completed? If not, how should this problem of concurrent calls be handled in orion? Please help. Thanks, Vani The allow-concurrent-calls element specifies whether a stateful session bean instance allows concurrent method calls. By default, allows-concurrent-calls is false. However, when this value is set to true, the EJB container blocks the concurrent method call and allows it to proceed when the previous call has completed. _ Join the world's largest e-mail service with MSN Hotmail. http://www.hotmail.com