Re: how to shutdown orion app server?
Hi. Make sure you remove the'deactivated="false"' for admin in config/principals.xml Lachezar. Hi, I writed one EJB and deployed it successful on Orion 1.5.4. Buti get the Exception when i test it used one client application: javax.naming.AuthenticationException: Invalid username/password for default (admin) at com.evermind._dn._mu(.:2173) at com.evermind._dn._mu(.:2009) at com.evermind._dn._es(.:1590) at com.evermind._bp._es(.:357) at com.evermind.server.rmi.RMIContext.lookup(.:106) at javax.naming.InitialContext.lookup(InitialContext.java:347) at ejbtest.Test1.main(Test1.java:24) code: Properties p = new Properties();p.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");p.put(Context.PROVIDER_URL, "ormi://211.167.71.60:23791");p.put(Context.SECURITY_PRINCIPAL, "admin");p.put(Context.SECURITY_CREDENTIALS, "123");try {Context ctx = new InitialContext(p);OrganizationsHome home = (OrganizationsHome)ctx.lookup("ejb/OrgOrganizations");Organizations remote = (Organizations)home.create();} catch (Exception ex) {ex.printStackTrace();} help me!
Re: Re: how to shutdown orion app server?
Hi. Again. Now. The code seems correct. Except, the url, that MAY require to be of the type: ormi://localhost/Your_App_Name. If you have deployed your beans in an application, and NOT in the default APP, you HAVE to use the url with the app_name at the end. in config/server.xml application name="Your_App_Name" path="../applications/YourApp.ear"/ in properties: java.naming.provider.url=ormi://your.host.your.domain/Your_App_Name or java.naming.provider.url=ormi://localhost/Your_App_Name FOR LINUX MAINLY! in java code: p.put(Context.PROVIDER_URL, "ormi://localhost/Your_App_Name"); Then you will find your ejbs. I would sincerly offer you to look-up the name of the bean without any prefixes. It is hard to move to other app server sometimes. In your case if you have no ejb-link, ejb-ref and so on stuff, just look-up OrgOrganizations: ctx.lookup("OrgOrganizations"); Also let's note, that if you use the java:comp/* context it may not port well on different servers. Lachezar. P.S. Give ita try and write again. but i can't look up my ejb,how to config it. thanks Hi. Make sure you remove the'deactivated="false"' for admin in config/principals.xml Lachezar. Hi, I writed one EJB and deployed it successful on Orion 1.5.4. Buti get the Exception when i test it used one client application: javax.naming.AuthenticationException: Invalid username/password for default (admin) at com.evermind._dn._mu(.:2173) at com.evermind._dn._mu(.:2009) at com.evermind._dn._es(.:1590) at com.evermind._bp._es(.:357) at com.evermind.server.rmi.RMIContext.lookup(.:106) at javax.naming.InitialContext.lookup(InitialContext.java:347) at ejbtest.Test1.main(Test1.java:24) code: Properties p = new Properties();p.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");p.put(Context.PROVIDER_URL, "ormi://211.167.71.60:23791");p.put(Context.SECURITY_PRINCIPAL, "admin");p.put(Context.SECURITY_CREDENTIALS, "123");try {Context ctx = new InitialContext(p);OrganizationsHome home = (OrganizationsHome)ctx.lookup("ejb/OrgOrganizations");Organizations remote = (Organizations)home.create();} catch (Exception ex) {ex.printStackTrace();} help me! = = = = = = = = = = = = = = = = = = = = = = ÖÂÀñ£¡ Liu Bin [EMAIL PROTECTED]¡¡2002-04-29
Re: JNDI question: client talking to EJBs on multiple app servers
Well... dedicated.connection=true is not documented :))) Second. There ARE drawbacks. The method you show in the message will lead you to resource leakage. Try reusing contexts for one and the same target. Anyway. The Answer is: YES, it WILL work. However. The classes, for the Home and remote interfaces for the beans you are looking-up for have to be in the Bootstrap class-path (in most cases in the boot jar, or specified on the commandline). Otherwise you will get a ClassCastException ( MyClass implements MyInterface and not MyInterface and the VM thinks these are different classes :((( ). Anyway. for a simple stand-alone client this works fine, as long as you stay out of dynamic-class-loading and keep in mind, that each ne Context gets another thread, socket and leads to resource shortage. Otherwise the code in your case would work just fine. :))) Lachezar Brilliant -- thanks. What I couldn't find was any documentation on what goes in the environment Hashtable. :) What does the dedicated.connection=true property do? If I were to do this: public FooRemote getRemote(String jndiURL) { Hashtable env = new Hashtable(); env.put(Context.PROVIDER_URL, jndiURL); InitialContext context = new InitialContext(env); Object ref = context.lookup(EJB_NAME); FooHome home = (FooHome)PortableRemoteObject.narrow(ref, FooHome.class); FooRemote remote = home.create(); return fooRemote; } public void doStuff() { FooRemote beanOne = getRemote(ormi://fred/app); FooRemote beanTwo = getRemote(ormi://wilma/app); // do stuff... } Will it work? Or is the remote going to get confused as to which server it points to? On Thu, 2002-04-18 at 00:53, Lachezar Dobrev wrote: Hi. A working model is to create two Initial Context-s for each server. Use a dedicated.connection=true property to create the context. The dedicated.connection however leads to resource leakage, and if you keep creating more and more of them you will eventualy get java.lang.OutOfMemoryError: Can not create native thread at some 200-300 contexts. If you create an context for both servers, and then use them later you might not have this problem. public static Context[] connections; public void ejbCreate(){ if ( connections != null ) return; Hashtable env = new Hashtable(); // Use any of these. env.put(dedicated.connection, Boolean.TRUE ); //env.put(dedicated.connection, true); // Set up user, pass, // factory (RMIInitialContextFactory). env.put(..., ); // Set up things connections = new Context[2]; // For The first server env.put(Context.PROVIDER_URL, ormi://Comp1/App1); connections[0] = new InitialContext(env); // Now for the other server env.put(Context.PROVIDER_URL, ormi://Comp2/App2); connections[1] = new InitialContext(env); } public void connectServer1(){ connections[0].lookup(MyBean1); } public void connectServer2(){ connections[1].lookup(MyBean2); } You DO understand this is Orion-specific, right? Good luck. Lachezar. I've got the same beans deployed on two different app servers (each backed by a different database). I want my client to talk to both. Say the two app servers are running on machines named Fred and Wilma; I know I can choose which one I talk to by setting java.naming.provider.url=ormi://fred/app or java.naming.provider.url=ormi://wilma/app But how do I switch at run time? I don't want to keep changing the system property every time I get an InitialContext(), because the system property is a global setting and one piece of code might not know what another piece of code is doing. Is there a way to specify the JNDI url when you create an InitialContext?
Re: JNDI question: client talking to EJBs on multiple app servers
Hi. A working model is to create two Initial Context-s for each server. Use a dedicated.connection=true property to create the context. The dedicated.connection however leads to resource leakage, and if you keep creating more and more of them you will eventualy get java.lang.OutOfMemoryError: Can not create native thread at some 200-300 contexts. If you create an context for both servers, and then use them later you might not have this problem. public static Context[] connections; public void ejbCreate(){ if ( connections != null ) return; Hashtable env = new Hashtable(); // Use any of these. env.put(dedicated.connection, Boolean.TRUE ); //env.put(dedicated.connection, true); // Set up user, pass, // factory (RMIInitialContextFactory). env.put(..., ); // Set up things connections = new Context[2]; // For The first server env.put(Context.PROVIDER_URL, ormi://Comp1/App1); connections[0] = new InitialContext(env); // Now for the other server env.put(Context.PROVIDER_URL, ormi://Comp2/App2); connections[1] = new InitialContext(env); } public void connectServer1(){ connections[0].lookup(MyBean1); } public void connectServer2(){ connections[1].lookup(MyBean2); } You DO understand this is Orion-specific, right? Good luck. Lachezar. I've got the same beans deployed on two different app servers (each backed by a different database). I want my client to talk to both. Say the two app servers are running on machines named Fred and Wilma; I know I can choose which one I talk to by setting java.naming.provider.url=ormi://fred/app or java.naming.provider.url=ormi://wilma/app But how do I switch at run time? I don't want to keep changing the system property every time I get an InitialContext(), because the system property is a global setting and one piece of code might not know what another piece of code is doing. Is there a way to specify the JNDI url when you create an InitialContext?
Re: how do I setup a datasource for mssql ?
Change the url and the driver. You have miswritten them: url=jdbc:microsoft:. connection-driver=com.microsoft.jdbc.sqlserver.SQLServerDriver Lachezar Subject: how do I setup a datasource for mssql 1 2 3 4 5 6 7 8 9 From: alt.cybercafes [EMAIL PROTECTED] === I have tried setting up my the datasource like the following data-source class=com.evermind.sql.DriverManagerDataSource name=Billing schema=database-schemas/ms-sql.xml location=jdbc/Billing xa-location=jdbc/Billing ejb-location=jdbc/Billing url=com.microsoft.jdbc.sqlserver.SQLServerDriver connection-driver=jdbc:microsoft:sqlserver://myserver:1433;DatabaseName=Bil ling username=applesauce password=1234 inactivity-timeout=30 / and I get the following errors Error initializing data-source 'jdbc/Billing': DriverManagerDataSource driver 'jdbc:microsoft:sqlser ver://Appserver1:1433;DatabaseName=Billing' not found What am I doing wrong? thanks
Re: [orion-interest]Re: include orion-ejb-jar.xml in an ejb.jar ?
Hani, you have misunderstood me. My problem is not that orion does not overwrite the deployment file. This is good. The problem is that orion on redeployment totaly ignores DDs, and starts from scratch. I had to look for a mile to see, why my MDBs are not subscribed on redeployment. Orion ignores both the xml in the jar and the xml in the deployment dir. I also support the idea of NOT overwriting the current DDs. The bug I was talking about is long known from 1.4.8, and I hoped it to be solved, but it emerges from time to time, mainly (if not only) with MDBs. Lachezar Wrong, this is not a bug, this is part of application assembly/deployment. The reason that orion does not wipe out the application-deployments files is so that you can have different deployments of the same app in different systems, with different table names perhaps or column names (just as an example). For example, the list of disallowed fields is different across DB's, so if you're using CMP, you might have a field called parent, which is sometimes parent_ on some db's. Another example, you might have a db to which you do not have exclusive write access, so in that particular deployment, you want to turn off that flag. Orion makes this possible by not destroying deployment specific files every time you deploy something new. This means you can deliver updates to your application and each particular deployment need not worry about your shipping default settings clobbering their customisations. Makes sense? The only caveat with this is that orion will NOT do merges between the shipping and deployed file. So for example if you add a new bean, it's xml fragment will not be picked up from your shipping orion-ejb.xml, since a previous deployment already exists in application-deployments. In this case you'd have to add in the bean manually to the deployed descriptor. Hope this clears this issue up. So please think carefully before deciding to scream out bug, or at least ask around! On 11/4/02 10:24 am, Lachezar Dobrev [EMAIL PROTECTED] wrote: Maybe I don't get it. What is the problem. When you redeploy the ear it should get the new DDs. However, I WILL recommend to delete the deployment dir before (re)deployment. Orion has a nasty bug, that ignores the DD in the jar/ear/war on redeployment. That is nasty. You should delete the directory of the jar/ear/war deployment, before (re)deploying. I will also recommend to leave the EAR structure, and use plain directory structure for your app. Use only ejb-jars. Again. If this is not your problem, elaborate more to solve it. I have had quite some experience since 1.4.5 and can help in most cases. Lachezar o.k. it works! Thanks for comments! Now we have got another problem, since the orion-ejb-jar.xml is placed in the corresponding jar-file, orion detects an updated orion-ejb-jar.xml every time i deployd the ear-file, wich contains theses jar-file. In my opinion this happens because the generated orion-ejb-jar.xml unde the orion deployment-directory is newer then the orion-ejb-jar.xml-file contained in the corresponding jar-file (because it would be used as a template or sample). Even there are only changes in other jar-files, which contains session-beans, orion detected an new orion-ejb-jar.xml on every deployment. How could i prevent orion from detection of an new orion-ejb-jar.xml? At 13:50 10.04.2002 +0200, you wrote: Hi. Yes. You may include an orion-ejb-jar.xml in the jar file. Orion wiull read it on deployment, mix-in the missing values, and then use that xml. Since orion 1.4.8 the orion-ejb-jar.xml should be in the META-INF directory in the jar. Earlier versions had the deployment dd in another directory. A different problem is sharing the xml, and automaticaly including it in the builded jars. JBuilder has the ability to include custom-generated DDs in the generated jar. this is good, and is very well used in conjuction with a CVS system. Other building tools may have different way to do that. Lachezar. Hi, thank you for the comment on my last posting distibute beans in different jar! Here is another question: We develop in a small team. One person create the entity-beans with finder, interfaces , dd and so on If he creates an new finder, he has to create the where clause of the SQL-Statement in the orion-ejb-jar-xml-file. Every developer runs his own orion-server for development, becaus we won't test agains a common server, because of the frequence of changes in the development process in a team. Is it possible to include the generated an corrected orion-ejb-jar-xml-file in the jar-file or the era-file, so that orion read it? Then the developer could create this file, commit it in CVS and the other developers could work with the new ejb.jar-file without copy an new orion-ejb-jar-xml-file
Re: include orion-ejb-jar.xml in an ejb.jar ?
Maybe I don't get it. What is the problem. When you redeploy the ear it should get the new DDs. However, I WILL recommend to delete the deployment dir before (re)deployment. Orion has a nasty bug, that ignores the DD in the jar/ear/war on redeployment. That is nasty. You should delete the directory of the jar/ear/war deployment, before (re)deploying. I will also recommend to leave the EAR structure, and use plain directory structure for your app. Use only ejb-jars. Again. If this is not your problem, elaborate more to solve it. I have had quite some experience since 1.4.5 and can help in most cases. Lachezar o.k. it works! Thanks for comments! Now we have got another problem, since the orion-ejb-jar.xml is placed in the corresponding jar-file, orion detects an updated orion-ejb-jar.xml every time i deployd the ear-file, wich contains theses jar-file. In my opinion this happens because the generated orion-ejb-jar.xml unde the orion deployment-directory is newer then the orion-ejb-jar.xml-file contained in the corresponding jar-file (because it would be used as a template or sample). Even there are only changes in other jar-files, which contains session-beans, orion detected an new orion-ejb-jar.xml on every deployment. How could i prevent orion from detection of an new orion-ejb-jar.xml? At 13:50 10.04.2002 +0200, you wrote: Hi. Yes. You may include an orion-ejb-jar.xml in the jar file. Orion wiull read it on deployment, mix-in the missing values, and then use that xml. Since orion 1.4.8 the orion-ejb-jar.xml should be in the META-INF directory in the jar. Earlier versions had the deployment dd in another directory. A different problem is sharing the xml, and automaticaly including it in the builded jars. JBuilder has the ability to include custom-generated DDs in the generated jar. this is good, and is very well used in conjuction with a CVS system. Other building tools may have different way to do that. Lachezar. Hi, thank you for the comment on my last posting distibute beans in different jar! Here is another question: We develop in a small team. One person create the entity-beans with finder, interfaces , dd and so on If he creates an new finder, he has to create the where clause of the SQL-Statement in the orion-ejb-jar-xml-file. Every developer runs his own orion-server for development, becaus we won't test agains a common server, because of the frequence of changes in the development process in a team. Is it possible to include the generated an corrected orion-ejb-jar-xml-file in the jar-file or the era-file, so that orion read it? Then the developer could create this file, commit it in CVS and the other developers could work with the new ejb.jar-file without copy an new orion-ejb-jar-xml-file in the deployment-directory. best regards Matthias Gottschlich -- -- mail: [EMAIL PROTECTED] tel: 030 343462 30 / fax: 030 343462 58 / mobil: 0178 7796466 -- -- mit freundlichen Grüssen Matthias Gottschlich --- - mail: [EMAIL PROTECTED] tel: 030 343462 30 / fax: 030 343462 58 / mobil: 0178 7796466 --- -
Re: include orion-ejb-jar.xml in an ejb.jar ?
Hi. Yes. You may include an orion-ejb-jar.xml in the jar file. Orion wiull read it on deployment, mix-in the missing values, and then use that xml. Since orion 1.4.8 the orion-ejb-jar.xml should be in the META-INF directory in the jar. Earlier versions had the deployment dd in another directory. A different problem is sharing the xml, and automaticaly including it in the builded jars. JBuilder has the ability to include custom-generated DDs in the generated jar. this is good, and is very well used in conjuction with a CVS system. Other building tools may have different way to do that. Lachezar. Hi, thank you for the comment on my last posting distibute beans in different jar! Here is another question: We develop in a small team. One person create the entity-beans with finder, interfaces , dd and so on If he creates an new finder, he has to create the where clause of the SQL-Statement in the orion-ejb-jar-xml-file. Every developer runs his own orion-server for development, becaus we won't test agains a common server, because of the frequence of changes in the development process in a team. Is it possible to include the generated an corrected orion-ejb-jar-xml-file in the jar-file or the era-file, so that orion read it? Then the developer could create this file, commit it in CVS and the other developers could work with the new ejb.jar-file without copy an new orion-ejb-jar-xml-file in the deployment-directory. best regards Matthias Gottschlich -- -- mail: [EMAIL PROTECTED] tel: 030 343462 30 / fax: 030 343462 58 / mobil: 0178 7796466 -- --
Re: Werent current caller
Hello. By the message, I would assume (correct me), that you have a parent/child relation. I may _guess_, that you are trying to use the parent to set something in the child (like the parent ID). If this is the case, you might _need_ to set the parent to be reentrant=true. That helped me. My code required to create the child with a parameter like: (XML_Tag)entityContext.getEJBObject() so that the child knows it's parent... That requires reentrant=true. It _may_ be a shot in the dark, because I've not come upon this exception, but rather some other (can't remember which though). However, this is no-cost test and is worth trying. Lachezar. - Original Message - From: Jeff Lowcock [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Saturday, April 06, 2002 9:56 AM Subject: RE: Werent current caller This is the stack trace from the server. java.lang.InternalError: Werent current caller, server stacktrace (to disable this message, use -Dejb.assert=false at startup): java.lang.Throwable: Werent current caller void NetNwkEjb_EntityBeanWrapper41.setEntityBean(javax.ejb.EntityBean) void com.evermind.server.ejb.EntityEJBHome.passivateAndRelease(com.evermind.serve r.ejb.EvermindEntityContext, boolean) void com.evermind.server.ejb.EntityEJBObject.releaseContext(boolean) com.neowurks.network.ejb.NetNwkEjb NetNwkEjbHome_EntityHomeWrapper57.create(long, java.lang.String, java.lang.String) java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) void com.evermind.server.rmi.RMICallHandler.run(java.lang.Thread) void com.evermind.util.ThreadPoolThread.run() I've also received a mail that seems to indicate that the responder has only seen this in the oracle version of orion, which is the version I'm using. However OTN has been unavailable for the last day or so and I've not been able to check if there is any information there as well. This exception is being raised when I've successfully created the parent CMP and then try and create the child CMP, which then throws this. I'm working now to produce a focused piece of code to illustrate the client and server side without all of the other application baggage. -Original Message- From: Scott Farquhar [SMTP:[EMAIL PROTECTED]] Sent: 06 April 2002 02:05 To: Orion-Interest Subject: Re: Werent current caller Can you post the stack trace? Jeff Lowcock wrote: I'm getting this exception and message raised in the server when I'm attempting to create a new CMP instance. I cannot find any documentation on this message and way too much on the exception java.lang.InternalError, can anyone direct me to a source where I can identify possible sources of this error and where I'm going wrong. I've searched the Orion support site and the only mails I can find are for 0.9.4 and 0.9.6 versions, and none fo these mails actually describe the conditions I have. where to now? -- Scott Farquhar :: [EMAIL PROTECTED] Atlassian :: http://www.atlassian.com Supporting YOUR J2EE World
Re: How can I make orion stop caching my EBs?
Answer: orion-ejb-jar.xml entity-deployment . exclusive-write-access=false ... Lachezar - Original Message - From: Cristian Donciulescu To: Orion-Interest Sent: Monday, April 08, 2002 12:35 PM Subject: How can I make orion stop caching my EBs? Hello, I have an application that uses some EBs. The underlying data on which the EBs are mapped is modified by an external application. Orion caches the entity beans, so I don't see the DB modifications immediately in the beans. How can I make orion stop caching my EBs? Thanks, Cristian
Container does not passivate my beans.
Hello. I sent a message some days ago, to no avail. It didn't show up in the list. My problem is, that Orion does not passivate my beans. I have tested both CMP and BMP, with NO success... I ran a test, which created 1 million bean instances. Orion kept up creating beans, until at last it ran out of memory (740MB). Am i doing something wrong? for (int i = 0; i 100; i ++){ MyHome.create(i); } No success... 1 million. If these are not released imagine what will happen at a later moment? I need to create beans continuously. Do I have to restart Orion every couple of minutes, just to clear the bean pools? I must say I'm very disappointed. I don't see reason to use Entity Beans any more. I better serialize to files. THAT will do the job. Later all. Lachezar
Re: Crap bytes in HTTP response
Well... I don't really know what did you do to get this behavior (I am trying for about 6 months to do that, and could not), but that is LEGAL behavior. Look at the Transfer-Encoding: chunked header. That means, that the response from the servlet consists of several chunks. Line 1 ( the 4 thing) means, that there wilkl be 4 bytes of the first chunk. than a newline, than line 3 ( the 0 thing) means there are no more chunks to be sent. Can you please post the whole code? And the web-xml part (orion-web-xml also if applicable)? That way we may look further into the problem? I wish I knew how to do that. That is a VERY useful feature, especialy, when you need to do some heavy-time-consuming things in the servlet. Just post a chunk every couple of seconds, and the browser will NOT timeout. This is VERY useful. Believe me. Lachezar. P.S. I would REALLY like to see your solution. I've got a problem with HttpServletResponse. Here's my test-servlet doGet(): response.setContentType(text/plain); PrintWriter out = response.getWriter(); out.print(TEST); Here's what I get telneting: platon% telnet localhost GET /lux/testz HTTP/1.1 Host: localhost HTTP/1.1 200 OK Date: Mon, 25 Feb 2002 17:57:20 GMT Server: Orion/1.5.4 Connection: Close Content-Type: text/plain Transfer-Encoding: chunked 4 TEST 0 - What 4? What 0? What extra newline? This breaks just about everything. Where did I go wrong, any ideas? Tommi Penttilä
Re: Problems configurating classpath
If you want to squeeze everything out of your processor you might want to check the "java" startup parameters in order to highen up memory usage. Also if you are running under Win2k you might want to give higher priority to the java process, that orion is running within. On Linux it is even easier. lachezar - Original Message - From: John Creaner To: Orion-Interest Sent: Tuesday, February 19, 2002 11:58 AM Subject: RE: Problems configurating classpath All, I have a small question, I am currently having a problem with orion. The problem is that it doesn't seem to be taking advantage of the machine that it situated on. The question is how or is it possible to configure orion to take advantage of the machine that it is placed on top of ? Thanks
Re: log4J
Hi. Short: Log4J is a logging facility implementation, highly configurable. Excelent. Long : Log4J is http://jakarta.apache.org/log4j/index.html Download and see. Lachezar hi all, Can u pls tell me what is log4J exactly and the use of it... i also haveone more problem i.e every time i make changes in EJB it takes my server to get restarted. My server is Oracle 9iIAS that uses Orion.. Looking forward for help on this.. have a nice day, Parimala
Re: orion + php
Hi. In order for this setup to work you need to compile php as a stand-alone executable, name it php and put it in the execution path (/usr/bin/ may be a good location). Try it. Orion wraps the php pages with a CGI-servlet, which executes external commands to parse the files. Lachezar I am getting the following error, 500 Internal Server Error Couldnt find/launch the interpreter, searched for php My configuration file has the following, servlet servlet-namephp/servlet-name servlet- classcom.evermind.server.http.CGIServlet/serv init-param param-nameinterpreter/param-name param-valuephp/param-value /init-param /servlet I have php working with Apache no problem (mod_php4 port for fbsd). Is there something obvious that I'm just missing? Thanks, Justen Stepka
RMI-HTTP(s)-Tunneling done. FYI!
Hi. Lately I sent an email describing my problems with the rmi-http-tunneling. Many of you may have stumbled upon these problems. Well... I was able to run it, even over HTTPS! Problem description: The rmi-http-tunnel servlet bundled with Orion 1.5.2 (maybe other versions also) does not flush the response buffers, after sending the required response headers to the client. That results in a deadlock: 1. The client sends the request to the server. 2. The servers sets the required headers for the reply, so that the client understands, that this IS really a tunnel servlet. These are tunnel-type: normal and dummy: normal headers. 3. THE SERVLET SHOULD FLUSH ITS BUFFERS, so that the client receives the affirmative response for tunneling services. This is not done by the bundled servlet. 4. The client waits to hear the headers, that are required by it (those mentioned in 2). However the servlet has not flushed, and the client waits forever. It will not send the real rmi request, and the server will also not do anything. This results in a deadlock. The client waits for the headers in the response, the server waits for further request. Solution: Write your own tunneling servlet. If you want to deploy it with a name differnet than rmi, then you should supply the http.tunnel.path=/servlet/your_servlet_name property in the jndi.properties, ot the environment properties. P.S. I'm not sure, if orion-boys will soon fix this. I'm also not sending my servlet, for obvious reasons. Lachezar
Re: HTTP 1.1 POSTgenerates duplicated response
IE uses to call an url twice. I have come upon this behavior. I am not sure of the reason. I have also seen, that the default method for the HEAD request calls the GET method with a dummy HTTPServletResponse. It just returns the headers, that are sent by the servlet. This may be your problem, IF you are accessing the bean in the GET method also. Try a few things to clear this out (log in all methods to see what method is called when). This is quite unclear, but I have come to think that it is IE to send a request twice. I have seen it try to access a jsp, then the JSP dies with a Connection Closed By Foreign Host, and then IE requests the JSP again. I am quite sure it is not Orion, but IE. Haven't seen that with Netscape. Lachezar We are hitting this extrange behaviour: We have a post response calling an entity bean in our Orion server and when the POST HTTP request is logged in HTTP1.1 protocol the function of the Entity Bean is called twice but there is only one request logged!! We get this behaviour when using IE 5.5 (HTTP1.1) but when the client is IE 5.0 (HTTP 1.0) the function is called only once. Is there any configuration problem? Thank you Inaki
Error Deploying a COMPLEX ejb jar. Haven't seen that one.
I have got a complex ejb-jar with a SSLB and an CMP-EB, which references itself. When deploying I receive: Auto-deploying Result_Server.jar (No previous deployment found)... Error compiling D:\Orion\applications\IntraPlan/Result_Server.jar: Internal error, unset persistence type for parent: 0 Anyone stumbled upon this? HLP!!! Lachezar
Re: Using Apache with Orion Server
smime.p7m Description: application/pkcs7-mime
Re: System.exit(0)
Try removing shutdown hooks. That may however result in data loss, desync and so on. Lachezar Hi Folks, I try to exit Orion via System.exit() from within the running application server. This works fine. My problem is: This works only fine after Orion has completely initialized and says Orion initialized on the console. I do start some services within the initialize phase of Orion and in some cases I want Orion to stop straight away and exit the VM before finish initializing. How can I tell Orion to stop initializing and shut down? many greets to you Erik Zimmermann
Re: Filters in Orion 1.5.3
My personal bet: Shitty Autoupdate. Try autoupdating from 1.5.2 again. BTW. Test on 1.5.2. This may clarofy things up. Lachezar. Hi all My web-app doesn't work on Orion 1.5.3 with this error: 500 Internal Server Error java.lang.NoClassDefFoundError: javax/servlet/Config at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.evermind[Orion/1.5.3 (build 10509)]._co._ssc(.:6388) at com.evermind[Orion/1.5.3 (build 10509)]._bxb._crd(.:258) at com.evermind[Orion/1.5.3 (build 10509)]._bxb._ukb(.:170) at com.evermind[Orion/1.5.3 (build 10509)]._cn._uab(.:576) at com.evermind[Orion/1.5.3 (build 10509)]._cn._fm(.:189) at com.evermind[Orion/1.5.3 (build 10509)]._bs.run(.:62) After switching off all used filters in web.xml all works fine. Did someone collide with this problem? -- Sergey G. Aslanov CBOSS Group, Web-technologies department mailto:[EMAIL PROTECTED] tel: +7 095 7555655
Re: OrionRemoteException: Error (de-)serializing object
Exception says it all... This is a logn-time discussed problem/issue. Your Ejb methods should return the valid J2EE types: simple types, Serializable, EJBObject, Remote and Externalizable (I think). The ResultSet is none of the above. You should do something else. A Vector would be my solution. Just wrap the data, that is returned in the ResultSet with a Serializable bean and populate the vector with them. Of course it is not as easy as it sounds, if you want to change the data. But if it is the data itself... It will help. That's it. Lachezar - Original Message - From: Andres Garcia Hourcade To: Orion-Interest Sent: Monday, November 26, 2001 8:41 PM Subject: OrionRemoteException: Error (de-)serializing object Hi, i am new in J2EE technology and i'm big troubles. I have an intranet application (jsp ejb) running fine with version 1.4.0, i am trying to deploy the same EAR in 1.5.2 version, but i get this error. com.evermind.server.rmi.OrionRemoteException: Error (de-)serializing object: org.gjt.mm.mysql.jdbc2.ResultSet; nested exception is: java.io.NotSerializableException: org.gjt.mm.mysql.jdbc2.ResultSet This error occurs when i return a ResultSet from a method "executeQuery" of an EJB that manages de mysql db. I have written many jsp, that are in production, and i woud not want to modify them. Is there any solution for this error ? Can i solve this problem if i return a Vector, instead of a ResultSet ? Many thanks in advance and best regards Andres Garcia Hourcade EJB import java.rmi.*; import java.util.*; import javax.ejb.*; import javax.naming.*; import java.sql.*; import javax.sql.*; import javax.sql.DataSource; // ejb que maneja archivos de log import Log.*; public class DbManagerBean implements SessionBean { transient SessionContext context; transient Connection conn = null; transient DataSource ds = null; transient Statement st = null; transient ResultSet rs = null; public void getConnection(String datasource) throws RemoteException, DbManagerException { try { InitialContext ictx = new InitialContext(); this.ds = (DataSource) ictx.lookup(datasource); this.conn = this.ds.getConnection(); } catch (Exception e) { throw new DbManagerException(e); } } public void closeConnection() throws RemoteException, DbManagerException { try { this.conn.close(); } catch (Exception e) { throw new DbManagerException(e); } } public ResultSet executeQuery(String strsql, String logonuser) throws RemoteException, DbManagerException { st = null; rs = null; try { //ResultSet.TYPE_SCROLL_INSENSITIVE, //ResultSet.CONCUR_READ_ONLY this.st = this.conn.createStatement(); try{ // logeo la consulta InitialContext context = new InitialContext(); LogHome logHome = (LogHome) javax.rmi.PortableRemoteObject.narrow(context.lookup("Log"), LogHome.class); Log log = logHome.create(); log.writeDebug(strsql, logonuser); log.remove(); } catch (Exception e) { throw new DbManagerException(e); } rs = this.st.executeQuery(strsql); // the closing of a statement also closes all // the resultsets asociated with the statement st.close(); } catch (SQLException e) { throw new DbManagerException(e, this.conn); } return (rs); } public void ejbPassivate(){ context = null; conn = null; ds = null; st = null; rs = null; } public void ejbActivate() { } public void ejbRemove() { } public void ejbCreate() { } public void setSessionContext(SessionContext context) { this.context = context; } }
Re: HttpSession creation
Hello. Trying to stop a session from being created is not valid. Sessions are not user-dependant. Sessions are a handshake between a server and a client. You should have thought another way to do that. Maybe check if the user HAS authenticated. .getSession() and .getSession(boolean) methods are to get access to the session, not to create the session. Creation is left to the App server. What happens is, that when a client contacts your Server the session IS created. That's it. Forget the option to disable that. It has no sense. If you REALLY need to do that... Use "session.invalidate()" everytime you see, that the user has not logged. That way a session will be recreated every time the client connects. Lachezar. P.S. Sessions are good to store info in them. But user management should NOT be connected with it. hi, i'm trying to ensure that the only time a session is created is after a successful user login. is there any other way apart from HttpServletRequest.getSession( ), or HttpServletRequest.getSession( boolean create) that a HttpSession can be created? i've trawled through the J2EE API but haven't seen any other methods that might create a session -- was just wondering if there was some sort of side-effect way, say, if you redirect a request or pass a request through a filter chain or something??? thanks, greg.
A word of warning: SwiftMQ and Resource providers.
Recently looking at the Resource-Providers docs, and EAGER to use an external JMS for my MDBs I and a colleague decided to run the demos. As quite a surprise the demo run ok. The MDB did everything when a message was sent to the Queue. The BIG disappointment was, when we tried to do the same with the topic. In short: It does not work. It seems, that Orion is looking for the resource type. Although it should check if the resource is of the NEEDED type, it rather checks if the resource is of ANY type. SwiftMQ implements a Topic as a subclass of it's Queue implementation: the plainsocket@router1 class is as follows: class com.swiftmq.jms.ConnectionFactoryImpl |- interface javax.jms.QueueConnectionFactory |- interface javax.jms.TopicConnectionFactory '- interface java.io.Serializable the testqueue@router1 class is as follows: class com.swiftmq.jms.QueueImpl |- interface javax.jms.Queue |- interface java.io.Serializable '- interface com.swiftmq.jms.DestinationImpl the testtopic class is as follows: class com.swiftmq.jms.TopicImpl | '- interface javax.jms.Topic | '- (super) class com.swiftmq.jms.QueueImpl |- interface javax.jms.Queue |- interface java.io.Serializable '- interface com.swiftmq.jms.DestinationImpl As you can see a Topic is also a Queue. So when trying to deploy the MDB one gets: Error deploying file:/D:/Temp/Orion/applications/Orion2SwiftMQ/Orion2SwiftMQ.jar homes: JMS Error: Queue 'testtopic' is not local! Can't create a Consumer on it! But... That doesn't help. I'm quite disappointed. I almost got it. Lachezar.
Re: Response has been already committed...
Hello. Number one. That happens, if you try to sendRedirect in the body of the JSP. However the JSP is parsed to a Servlet, and it writes the JSP's body to the output stream. The problem is, that when the sendRedirect is found later in the body the output of the Servlet can become quite large, and the servlet's output is flushed, because the buffer is overrun. Solution One (not tested): at the start of the JSP put: %@ page buffer=65kb % That is temporary solution. If you try to redirect after this buffer is full, you will get the exception again. Solution Two (my favorite): At the start of the JSP do whatever work is needed. That way normally you will not have sent any data and there will still be possibility to sendRedirect. Solution Three (my current): Use the JSP to display data only. All work should be done in a Servlet, that does not write anything, but only does work, and then sendRedirects to the JSP. This is quite flexible. Solution Four (ugly, but works): If your JSP ALWAYS redirects to the other location (no ifs, no cases), and your JSP produces HTML, than you can always put in the html a META tag to make the redirect. HEAD META HTTP-EQUIV=REFRESH CONTENT=0; URL=/MySecondJspLocation.jsp /HEAD You may think of more solutions, but it IS normal to receive that exception. You can not expect Orion to buffer ALL the output of a jsp, right? Lachezar. Hello all, I have a JSP, that processes a form and is attempting to create a record in my database via CMP EJB (Person). After my form has been processed and the PersonHome.create() methods has succeeded (record has been created), the page tries to redirect to another JSP. But this doesn't work; instead i receive an exception: java.lang.IllegalStateException: Response has already been committed, be sure not to write to the OutputStream or to trigger a commit due to any other action before calling this method. at com.evermind[Orion/1.5.2 (build 10460)].server.http.EvermindHttpServletResponse.sendRedirect(Unknown Source) at /department.jsp._jspService(/department.jsp.java:54) (JSP page line 19) at com.orionserver[Orion/1.5.2 (build 10460)].http.OrionHttpJspPage.service(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._ah._rad(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)].server.http.JSPServlet.service(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._cxb._abe(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._cxb._uec(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._io._twc(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._io._gc(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._if.run(Unknown Source) without PersonHome.create() or response.sendRedirect() everything works fine (it works fine with either, but not with both). What is going on? What am I doing wrong?
Re: Trouble with session between JSP and Servlet
Hello. I had the same problem. It was because of the browser. JSP location: http://myserver.com/Init.jsp The JSP redirected to the Servlet after it does it's job. BUT! The redirection went to: http://www.myserver.com/servlet/MyServlet The browser (IE) did not recognize this to be the same server and restarted the sessionID. So Orion thinks it is a different client. Test: try to access the JSP via: http://www.myserver.com/Init.jsp Then the redirect should work. Another problem is, that the Session cookie is bound to a start location: Cookie: JSessionID=1235r4123; path=/RootContextPath. Again the browser dows not recognize this cookie to be sent, when you try to access /servlet/* That is why I was forced to use filters, so that /RootContextPath/MyServletService/* was bound to MyServlet, and it worked. Try these things. They might help. Additional info is required for further investigation. May the shade of the tree strengthen you. Lachezar. I have a JSP and a Servlet in the same war file. Both URLs have been setup with security-constraints in the web.xml. When hitting the JSP first I am prompted to authenticate, which is expected behaviour. After authentication I then goto the Servlet and I am then again redirected to the login form and asked to authenticate. Has anyone else had this problem? Seems like being in the same war file the first authentication of the session should work for the entire war file. Thanks
MR: JSP Compilation Questions and More. Additional.
Hello all, try to use Oracle JSP, thera are a offline jsp-compiler. Hi. Thanks for your suggestion. However I do not need an otside compiler. In any case I can use JspC in tomcat, but that is NOT what I wanted. I want to do this the way Orion does it. So I need to do something like: public class MyJSPC{ public static void main(String[] args){ com.orionserver.http.OrionHttpJspPage MY_COMPILED_PAGE = new com.evermind._rj(some_params).bb(MyJspPage_Source); } } You see? I REALLY need the Orion JSP compiler to work. I can use other compiler, but that is not what I wanted. Lachezar :(
Re: JavaMail problem
Hello Justin. As I see it, this is not JavaMail problem. The message "550 Relaying denied" is standard SMTP message sent from the SMTP server. Depending on the type of your SMTP server this is solved differently. Consult you SMTP administrator or, if it is you, check the documentation, to see how to permit in/out-going SMTP traffic. Normally it will be permitted/denied according to your IP address. That's it. "Happy hunting Sebastian" (*grin*: quote from "Cruel Intentions"). Lachezar Hi all, I'm having trouble enabling relaying on my mailserver. I'm using Orion 1.5.2 with the J2EE 1.2.1 JavaMail, trying to relay toa 5.5 Exchange Server(NT).I've set the application.xml to point to my Exchange server as such: mail-session location="mail/TheMailSession" smtp-host="my.mailserver.ie" property name="mail.transport.protocol" value="smtp"/ property name="mail.smtp.from" value="user@company.com"/ property name="mail.from" value="user@company.com"/ /mail-session I have set Exchange to disable relaying except for the IP address of the machine the appserver is on. The problem is I'm still getting the "javax.mail.SendFailedException: 550 Relaying is prohibited" error. Can anyone shed any light on this? Is there something in Orion I need to do as well? Thanks for any help. Justin Crosbie
Re: JSP Compilation Questions and More.
Hello. is this a speed issue? NO! if so, use jikes. it's so fast that you don't need to precompile JSPs. I use it. I need to compile the JSPs without running Orion. Lachezar
JSP Compilation Questions and More.
Hallo all! Recently I've been playing around with JSP compilation in Orion. I saw a couple of days ago a question about the out-of-the-server (stand-alone) compilation of JSPs. Quite some job :( I tried to find the compilator. Playing around I got some things. I don't really remember what was the JSP that helped me, but I guess it is either com.evermind._rj (and it's method _bb() ) or com.evermind._ah. Also the com.evermind.JspPage has a _bb() method, but it doesn't help a lot. Question 1: Is there a way to pre-compile the JSPs? I also saw that adding a parameter jsp_precompile=true to the request parameters will only try to compile the jsp. That however is not what I was thinking about. Question(BUG) 2: I noticed the following: It depends how the JSPs are compiled. If the Web-App is development=true it is compiled in one way with matching the JSP lines, and if development=false the lines are often mapped wrongly. Exa.: ALABALA.JSP: 1. html 2. head 3. titleTest for test/title 4. /head 5. body 6. form method=GET 7. input name=TEST_BEAN type=text size=20 value=Testbr 8. input type=submit%= new String((String)null)% 9. /form 10./body Obviously there is a NullPointerException on line 8 (7 if counted from 0). development = true: 500 Internal Server Error java.lang.NullPointerException at java.lang.String.init(String.java:193) at /Alabala.jsp._jspService(/Alabala.jsp.java:24) (JSP page line 7) at com.orionserver[Orion/1.5.2 (build 10460)].http.OrionHttpJspPage.service(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._ah._rad(Unknown Source) .. development = false: 500 Internal Server Error java.lang.NullPointerException at java.lang.String.init(String.java:193) at /Alabala.jsp._jspService(/Alabala.jsp.java:27) (JSP page line 2) at com.orionserver[Orion/1.5.2 (build 10460)].http.OrionHttpJspPage.service(Unknown Source) at com.evermind[Orion/1.5.2 (build 10460)]._ah._rad(Unknown Source) .. Obviously both cases differ. Why? Lachezar.
Re: Error Accessing an EJB through a Bean
Hello. INLINE. We created a Bean to access an EJB from JSPs. First we tested the Bean from a Java Client and everything worked fine. Then we copied the Bean to the Orion server and tried to acces the EJB by using a JSP that instanciates the Bean that accesses the EJB. But we can not get it to work. The test with the Java client still works properly. But using the Bean from JSP always creates a ClassCastException. Here's the sniplet from the Bean where the lookup is performed. private static GUIServiceSBHome getHome(){ GUIServiceSBHome toReturn = null; try { This part with the Hashtable is not correct. You should avoid it. Better create a jndi.properties file in the root directory of your JAR, or the root rirectory of your classes. then just use new InitialContext() which will get the required properties from the jndi.properties file. Hashtable env = new Hashtable(); //ToDO if this bean runs inside a container this Env property will not be //necessary env.put(Context.INITIAL_CONTEXT_FACTORY, com.evermind.server.rmi.RMIInitialContextFactory); env.put(Context.SECURITY_PRINCIPAL, admin); env.put(Context.SECURITY_CREDENTIALS, xyz); env.put(Context.PROVIDER_URL, ormi://164.139.33.191:23791/bizDataNew); Let's see. // Replace EJB ModuleName below with the EJB module name identified // in your deployment profile As said... Especialy in a web-bean use new InitialContext() Context ctx = new InitialContext(env); Object ref = ctx.lookup(GUIServiceSB); logger.debug(Got an Object.. Class = + ref.getClass()); toReturn = (GUIServiceSBHome)PortableRemoteObject.narrow(ref, GUIServiceSBHome.class); logger.debug(Lookup5); } catch(Throwable ex){ logger.error( Unable to perform lookup for GUIServiceBean Home interface\nException = + ex.toString() ); } return toReturn; } The logger.debug statements create the following output. From the Client: de.mgi.frontend.GUIServiceProxyBean: Got an Object.. Class = class __Proxy0 de.mgi.frontend.GUIServiceProxyBean: Lookup5 On the Server (Bean used by JSP): de.mgi.frontend.GUIServiceProxyBean: Got an Object.. Class = class GUIServiceSBHome_StatelessSessionHomeWrapper215 de.mgi.frontend.GUIServiceProxyBean: Unable to perform lookup for GUIServiceBean Home interface Exception = java.lang.ClassCastException: GUIServiceSBHome_StatelessSessionHomeWrapper215 was not an instance of interface de.mgi.orca.business_data.ejb.session.gui.GUIServiceSBHome, the interface it implements is de.mgi.orca.business_data.ejb.session.gui.GUIServiceSBHome Next to the relevant question why does the Bean get an exception when it is executed on the server, there are also two more questions that I have when I look at the ouput. 1. Why is the return value of ref.getClass() different? The client and the JSP are accessing the same EJB on the same Orion server. 2. Why does it says the retrieved object is not an instance of the interface ...GUIServiceSBHome but an instance of ...GUIServiceSBHome? For me the two interface classe names look the same. Ok. I had the same problem. It was, that I had one and the same class (the Home Interface) in two places. Both classes, though identical these classes were not compatible :(. It is possible (like in my case) that you have the home interface both in the ejb-jar and the web-app. Try removing it from the web-app. And hint why the bean is not working on the server is greatly appreciated. Peter Cugier Lachezar.
Q: Which jdbc JNDI location should I use for my CMP EJBs?
Hello. I've been poundering on this question for quite some time, and even if I look stupid I have to ask it now. Sorry, if this seems dumb. data-sources.xml data-source class=com.evermind.sql.DriverManagerDataSource name=Hypersonic location=jdbc/HypersonicCoreDS xa-location=jdbc/xa/HypersonicXADS pooled-location=jdbc/pooled/HypersonicPooledDS ejb-location=jdbc/HypersonicDS connection-driver=org.hsql.jdbcDriver username=sa password= url=jdbc:HypersonicSQL:./database/defaultdb inactivity-timeout=30 / end data-sources.xml So. I have a CMP entity bean. I want to map it to this data-source. However, in orion-ejb-jar.xml I have to specify a data-source=jdbc/AnyLocation. But there are four different locations, that have been defined for a single data-source. And the question is: Which one should I set in my descriptor: 1. location=jdbc/HypersonicCoreDS 2. xa-location=jdbc/xa/HypersonicXADS 3. pooled-location=jdbc/pooled/HypersonicPooledDS 4. ejb-location=jdbc/HypersonicDS My first guess, is that I should use ejb-location. Right? Then WHY? Please. It may be dumb, but I wouldn't want to miss something serious here. BTW. An explanation on each location, and it's use would be GREAT! May the shade of the tree strengthen you. Lachezar Dobrev.
Oracle questions (Slightly OT)
Hello group. I have urgent need of advise. I use an Oracle DB. And I have problems. 1. When using a ThinDriver I can not save large strings, and it is a must for me. 2. When using Oracle-Odbc-Jdbc-Ejb I can save the large strings, but... Orion gets a lot of SQL exceptions, because of 'invalid character'. My research shows, that while Oracle uses a DOT to express float numbers (123.456) the jdbc-odbc bridge happens to use the COMMA for the delimiter, because of my LOCAL settings. Then it just blows up steam. So. My question is like is there any non-ODBC-using driver for Oracle, that can handle large strings? I'm in an urgent need for help, because the LOCAL settings change is not an option. Please any advice. PLEASE! Lachezar
Re: Apache as front-end (orionsupport.com)
Title: RE: Apache as front-end (orionsupport.com) That is correct. That is why the Apache has to REWRITE the links. That is the main concern, the Redirect has to be rewriten. If you use relative links you will not have any other problems. Well , We work with the frontend tag and with apache in front of the OC4J and it work fine. Still there is a problem when using the HTTPUtils.getRequestUri() which does not come back with theapache name, but with the oc4J machine name. Lachezar
Re: Not in an application scope
Re: Help needed
Hi. I'm trying to get Orion Server to start as a non-root users on Red Hat 7.1. I know I need to forward the port from 80 to something above 1024. Does any one know how I can do that with iptables. I've never used it before. ipchains -I input --protocol tcp \ --destination-port 80 -j REDIRECT 10240 If the Orion port is 10240. You need to configure your kernel to support redirecting. Consult Kernel docs. Any help would be appreceated. Bill Wichgers Lachezar
Re: Re[2]: Help needed
Hello. I'm trying to get Orion Server to start as a non-root users on Red Hat 7.1. I know I need to forward the port from 80 to something above 1024. Does any one know how I can do that with iptables. I've never used it before. LD ipchains -I input --protocol tcp \ LD --destination-port 80 -j REDIRECT 10240 LD If the Orion port is 10240. LD You need to configure your kernel to support redirecting. LD Consult Kernel docs. I have the same problem with Mandrake 8.0 It seems that all newest Linux releases use iptables instead of ipchains and the syntax is a little different. Any suggestion ? 1. You may decide to use IPChains instead of IPTables. This is a Kernel-Conf problem. 2. I don't use IPTables, but... I searched some info on the net, and it seems, that it is not too different for IPTables than the ipchains one. Maybe you will have to write -I INPUT?!?!? TIA Marcello Lachezar
Re: Concurrency
More info: Took me some time to see, that you are using 1.4.5 as I think (maybe even more recent, but definitely not the latest 1.5.2). com.evermind.server.rmi.RmiServer has: java.util.List eb; snatch public final void gb(ba ba1) { synchronized(eb) { eb.remove(ba1); } } /snatch snatch public RMIServer(ApplicationServer applicationserver) { . blah blah blah . eb = new ArrayList(); . blah blah blah . } /snatch This is it... I don't however know what is the eb used for. It looks ok (there is syncronized working with the list), however something does not work right. My guess: Move to 1.5.2 maybe? Lachezar. Hi ted, You are right, but the exeption is in an AbstractList and I'm not using any extension of AbstractList. In addition, the exeption is in com.evermind pakage. I have analyzed this package and I've seen that the method com.evermind.server.rmi.RMIServer.gb uses a java.util.List. Therefore I suppose that it is an orion problem when the SLSB is created. Thanks, Esteban -Original Message- From: Rice, Ted [mailto:[EMAIL PROTECTED]] Sent: Friday, July 27, 2001 1:45 PM To: Orion-Interest Subject: RE: Concurrency you are working with a non-synchronized collection. if you get an iterator and attempt to modify the backing list with multiple threads you will receive a ConcurrentModificationException. synchronize on the the iterator or list. ./ted -Original Message- From: Lopez Esteban [mailto:[EMAIL PROTECTED]] Sent: Friday, July 27, 2001 3:44 AM To: Orion-Interest Subject: Concurrency Hi Please help me. I am working with a stateless EJB and I have about 250 clients which has to use this EJB. When the clients access to the SLEJB concurretly, the Orion crash, and the server.log shows: 7/4/01 6:45 PM Internal server error java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(Unknown Source) at java.util.AbstractList$Itr.next(Unknown Source) at java.util.AbstractCollection.remove(Unknown Source) at com.evermind.server.rmi.RMIServer.gb(JAX) at com.evermind.server.rmi.ba.run(JAX) at com.evermind.util.f.run(JAX) Anyone knows something about this. Thanks! Esteban.
Re: Concurrency
Hi. Reposting this message. the next has already been received. This list lacks stability a lot. Not sure, if this has something to do with your problem. 1: java.util.List is an Interface. You can't have the Interface live, except in a class/object, implementing this interface. For an instance the class java.util.AbstractList is the first one, that implements this interface. so having a parameter/return value of type java.util.List means actualy an instance of a class implementing java.util.List. 2. Orion subclasses AbstractList in many places to implement it's lists. Quite handy. One place is the list OR-mapping, com.evermind.server.ejb.ORList. Are you sure, you don't use container managed Lists? BTW. I'm not exactly sure how do you access Concurently a StateLess Session Bean? I tried and got no result... Hmmm... Be well: Lachezar Hi ted, You are right, but the exeption is in an AbstractList and I'm not using any extension of AbstractList. In addition, the exeption is in com.evermind pakage. I have analyzed this package and I've seen that the method com.evermind.server.rmi.RMIServer.gb uses a java.util.List. Therefore I suppose that it is an orion problem when the SLSB is created. Thanks, Esteban -Original Message- From: Rice, Ted [mailto:[EMAIL PROTECTED]] Sent: Friday, July 27, 2001 1:45 PM To: Orion-Interest Subject: RE: Concurrency you are working with a non-synchronized collection. if you get an iterator and attempt to modify the backing list with multiple threads you will receive a ConcurrentModificationException. synchronize on the the iterator or list. ./ted -Original Message- From: Lopez Esteban [mailto:[EMAIL PROTECTED]] Sent: Friday, July 27, 2001 3:44 AM To: Orion-Interest Subject: Concurrency Hi Please help me. I am working with a stateless EJB and I have about 250 clients which has to use this EJB. When the clients access to the SLEJB concurretly, the Orion crash, and the server.log shows: 7/4/01 6:45 PM Internal server error java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(Unknown Source) at java.util.AbstractList$Itr.next(Unknown Source) at java.util.AbstractCollection.remove(Unknown Source) at com.evermind.server.rmi.RMIServer.gb(JAX) at com.evermind.server.rmi.ba.run(JAX) at com.evermind.util.f.run(JAX) Anyone knows something about this. Thanks! Esteban.
Re: Very Strange problem with a static varible on a jsp
I see what you mean. Good. So it seems that the only solution to be sure a class is not unloaded is to make your own class loader for that class. Unfortunately, this solution can not be applied to a servlet. Or make a singleton to keep the class loaded. I do this, and it works. Even with SLSBs. Lachezar Hello, Your objection makes sense, but here is sometrinh from the JVM specification from SUN: 2.17.8Unloading of Classes and Interfaces A class or interface may be unloaded if and only if its class loader is unreachable. The bootstrap class loader is always reachable; as a result, system classes may never be unloaded. Thought, the term unreachable seems confusing. I have read that, but then: java -X -Xmixed mixed mode execution (default) -Xint interpreted mode execution only -Xbootclasspath:directories and zip/jar files separated by ; set search path for bootstrap classes and resources -Xbootclasspath/a:directories and zip/jar files separated by ; append to end of bootstrap class path -Xbootclasspath/p:directories and zip/jar files separated by ; prepend in front of bootstrap class path HERE! -Xnoclassgc disable class garbage collection -Xincgc enable incremental garbage collection -Xbatch disable background compilation -Xmssizeset initial Java heap size -Xmxsizeset maximum Java heap size -Xsssizeset java thread stack size -Xprofoutput cpu profiling data -Xrunhprof[:help]|[:option=value, ...] perform JVMPI heap, cpu, or monitor profiling -Xdebug enable remote debugging -Xfuture enable strictest checks, anticipating future default -Xrs reduce use of OS signals by Java/VM (see documentation) The -X options are non-standard and subject to change without notice. Also... I'm not sure, but I think there may be different class loaders for servlets/ejbs. I'm not sure, if Orion does that. IAS/BAS does so. Lachezar other things skipped.
Re: Very Strange problem with a static varible on a jsp
Hello, Your objection makes sense, but here is sometrinh from the JVM specification from SUN: 2.17.8Unloading of Classes and Interfaces A class or interface may be unloaded if and only if its class loader is unreachable. The bootstrap class loader is always reachable; as a result, system classes may never be unloaded. Thought, the term unreachable seems confusing. I have read that, but then: java -X -Xmixed mixed mode execution (default) -Xint interpreted mode execution only -Xbootclasspath:directories and zip/jar files separated by ; set search path for bootstrap classes and resources -Xbootclasspath/a:directories and zip/jar files separated by ; append to end of bootstrap class path -Xbootclasspath/p:directories and zip/jar files separated by ; prepend in front of bootstrap class path HERE! -Xnoclassgc disable class garbage collection -Xincgc enable incremental garbage collection -Xbatch disable background compilation -Xmssizeset initial Java heap size -Xmxsizeset maximum Java heap size -Xsssizeset java thread stack size -Xprofoutput cpu profiling data -Xrunhprof[:help]|[:option=value, ...] perform JVMPI heap, cpu, or monitor profiling -Xdebug enable remote debugging -Xfuture enable strictest checks, anticipating future default -Xrs reduce use of OS signals by Java/VM (see documentation) The -X options are non-standard and subject to change without notice. Also... I'm not sure, but I think there may be different class loaders for servlets/ejbs. I'm not sure, if Orion does that. IAS/BAS does so. Lachezar other things skipped.
Re: Very Strange problem with a static varible on a jsp
Hi. This MAY be totally wrong, but I have seen that in a different place in a different problem, in a different need. I got the same thing. Problem: Static varialbles are being reset from time to time. My Answer: The lifetime of the Servlets/EJBs/JSPs is defined by how the webcontainer/ejbcontainer handles requests and persistance. My GUESS is that this problem is as follows: 1. We load a class (Say MYClass) 2. We use MYClass 3. We free of use all objects of type MYClass. --- Some time passes. --- The Garbage Collector sees this class is not used anymore and... FREES IT! 4. We try to use MYClass. It doesn't exist, so it is loaded. --- On loading the static fields are reset. Now... Having in mind, that the Servlets/JSPs can be randomly freed by the container (Orion) this situation is quite real. Especialy if we use that Servlet/JSP not-so-often. My Resolution: Use a Singleton Class to keep all the needed Static information: /** @todo Modify this class to suit your needs */ public class StaticHolder{ private int Data = 0; private static StaticHolder theCopy = new StaticHolder(); private StaticHolder(){} public static StaticHolder getCopy() { return theCopy; } public void incData() { Data++; } public int getData() { return Data; } } /** @usage */ StaticHolder.getCopy().incData(); int count = Staticholder.getCopy().getData(); Singleton classes are not disposed by the garbage collector (there is always one reference to the object from the object itself). Another way is to define an instance of your servlet, that will hold a copy of itself :). public class MyServlet ...{ private static MyServlet CopyHolder = new MyServlet(); } This will keep your class always loaded. Hope this helps. Lachezar Sorry, But I do not understand what you mean. What I want is to have only a counter for all the requests. At 13:35 24/07/2001 -0500, you wrote: Instead of static I would use a member attribute, since for servlets only one instance exists for a given class. Ismael wrote: I am making some loading tests, in order to test the loading tool I have written some special jsp to deal verify the number of times a jsp has been called. My jsp is : %@page contentType=text/html% html headtitleJSP Page/title/head body %! static int client=0; static String attribute_name=client; static Object lock=new Object(); % %-- This JSP will be used with 4 other jsp to test the correctness of the stress tool --% % synchronized (application) { session.setAttribute(attribute_name,new Integer(++client)); System.out.println(Entering client +client); } % /body /html: It is very simple but the ouput I get is Entering client 1 Entering client 2 Entering client 3 Entering client 4 Entering client 1 Entering client 1 Entering client 1 Entering client 1 Entering client 1 Entering client 5 Entering client 2 Entering client 3 Entering client 4 Entering client 5 Entering client 6 Entering client 7 Entering client 8 Entering client 9 Entering client 10 Entering client 11 Entering client 12 Entering client 13 Entering client 14 Entering client 15 Entering client 16 .. That is, my static variable it is being ignored. I am using Orion 1.4.5 , Windows 2000 and J2SE 1.3.0_02. Anybody know why this could be happening ? Regards, Ismael
Advanced OR_Mapping 1-to-N-to-N possible?
I have this situation: class Enterprise1Bean implements EntityBean { public java.util.Vector elements; public static final Class elements_type = Normal_Java_Bean1.class; public void setElements(java.util.Vector newElements){ elements = newElements; } public java.util.Vector getElements(){ return elements; } /* * Other EJB methods * */ } class Normal_Java_Bean1 { public java.util.Vector elements; public static final Class elements_type = Normal_Java_Bean2.class; public void setElements(java.util.Vector newElements){ elements = newElements; } public java.util.Vector getElements(){ return elements; } } class Normal_Java_Bean2 { public String text; public void setText(String newText){ text = newText; } public String getText(){ return text; } } Now I want to map everything in an 1-to-N-to-N or-mapping. That means... What you see... An EJB has a Vector of elements, which have other Vectors of other Elements. Trying to deploy that I receive a NullPointerException ( I think it's while creating the table for the Normal_Java_Bean2, beacause Normal_Java_Bean1 has no primary key to map into). Tried Map-Mapping, because there is a primary key, to no avail however: map-mapping can only be used on the types java.util.Map, java.util.Hashtable, java.util.Properties (not Normal_Java_Bean1) HELP! Lachezar
Re: HELP on MessageDrivenBeans
Hi. I did look at the ATM example. That's the thing : in ATM the message driven bean does not declare ANY topic or connection factory. Only the publishing session bean declares them. Now, how do they make the connection between the MDB and the topic/topicConnectionFactory declared by the publisher ? Is this the ONLY way of doing it (I have just an MDB in one single jar file, the publisher is not an EJB) ? Does anybody has a simple and working example of MDB under Orion ?! Yes. I have a working example, that works with an external topic-publisher (stand-alone java app) and an external queue-sender (also a stand alone app). Works :) IN EJB-JAR.XMLejb-jarenterprise-beans message-driven ejb-nameHelloBean/ejb-name ejb-classHelloMSGBean.HelloBean/ejb-class transaction-typeContainer/transaction-type message-driven-destination jms-destination-typejavax.jms.Topic/jms-destination-type /message-driven-destination /message-driven/enterprise-beans/ejb-jar All I want is to be told what needs to be in orion specific descriptors ... if anything needs to be there. IN ORION-EJB-JAR.XMLorion-ejb-jar enterprise-beans message-driven-deployment name="HelloBean" connection-factory-location="jms/TopicConnectionFactory" destination-location="jms/theTopic" / /enterprise-beans/orion-ejb-jar I think I forgot to mention that I'm using Orion 1.4.5 And I already found out another JMS problem in this version : an auto-started client (droped the MDB :(((, too much effort to deploy it) enters in an infinite loop when receiving messages from a topic - acknowledgemnt doesn't work ?! I tried to update to 1.4.7 and it does not work AT ALL (no more messages). GOT MUCH WORK TO DO!!! 1.4.5 Bug: When deploying the MDBs it removes the destination definition from the deployment descriptor orion-ejb-jar.xml. Thus your beans will listen to one and the same topic (the default topic). Walk-around-1: After deploying the beans shutdown orion and edit manually orion-ejb-jar.xml in the deployment directory (application-deployments/blah). Walk-around-2: Have only one topic and only one queue. shrug I think this problemis alsoin 1.4.7, 1.4.8, but I don't have them at hand and I'm not so sure. The problem is solved in 1.5.2 for sure. Thanks ! Eugen REST OF MESSAGE CUT OFF Lachezar.
Re: RMI Clustering done. Now want more.
hi lachezar, Hya. Looking at the text I think you misunderstood me. I was not looking for a fail-over or Web clustering solution. That's it. I need to use Orion as a EJB server, not the fulll J2EE App server. I have some QUITE heavy beans, and just very small web-interface for more or less a couple of users. I don't have a super-duper-overloaded-with-connections site. Instead I have time-consuming stateless session beans, that take up to a 100% CPU time, and work for some couple of hours. So what I need is NOT a WEB-Failover solution, but rather a RMI (EJB-to-EJB) clustering in order to put my heavy-handed EJBs allover my intranet. Hope I clarified this. BTW. I forgot to mention something: LINUX ISSUE! (tested on RH7/JDK1.3.1) Define a default route in the routing table. Otherwise setting the multicast cluster fails with an exception. This might be as well mentioned on OrionSupport or OrionServer. THIS IS A JVM ISSUE. NOT ORION SPECIFIC! Lachezar Dobrev Software developer LSN Software and Telecommunication services Sofia, Bulgaria i've got clustering working for our app but haven't used the rmi.xml clustering settings. the app seems to failover ok to another machine in the cluster if i switch a machine off, etc,. we use only stateless session beans and so i wondered if only entity bean information was exchanged over the port specified in rmi.xml what's all this stuff for in rmi.xml cluster host=230.0.0.1 id=123 password=123abc port=9127 username=cluster-user / Tag that is defined if the application is to be clustered. Used to set up a local multicast cluster. A username and password used for the servers to intercommunicate also needs to be specified. host - The multicast host/ip to transmit and receive cluster data on. The default is 230.0.0.1. id - The id (number) of this cluster node to identify itself with in the cluster. The default is based on local machine IP. password - The password configured for cluster access. Needs to match that of the other nodes in the cluster. port - The port to transmit and receive cluster data on. The default is 9127. username - The username configured for cluster access. Needs to match that of the other nodes in the cluster. thanks, greg. - Original Message - From: Lachezar Dobrev To: Orion-Interest Sent: Friday, June 15, 2001 6:18 PM Subject: RMI Clustering done. Now want more. Hello. OK. I was able to (at last) run the RMI clustering. It now works. But... I have a question... Now I can put up a cluster, and when a bean does not exist on the server it is searched on the cluster and used. However if it is deployed on more than one machine... It is not found on all of them, but rather on only one. For simplicity let's assume we have OrionA, OrionB, OrionC and OrionD. a) on all machines we have EnterpriseBean1 deployed. It accesses EnterpriseBean2 b) machine OrionA does not have EnterpriseBean2 deployed. c) machines OrionB, OrionC and OrionD have EnterpriseBean2 deployed. d) all machines have a RMI cluster set-up and working. (BTW) Because I needed quite some time to understand why the cluster was not working I am eager to help anyone, that needs help on the subject. If machine OrionA runs EnterpriseBean1 it will have to look-up EnterpriseBean2, which is used by EnterpriseBean1. There is no problem to find that bean (it exists on the cluster). However... Once EnterpriseBean2 is used on OrionC it keeps using that one. Why? Also. If we deploy EnterpriseBean2 on OrionA it is always found there and not on ANY other cluster machine. 1. How does Orion know on which machine to use the bean? The last one, that wakes up? 2. Is there a way to implement (at least) a round-robin technique to access the clustered bean on more than one server? I mean... When I look-up EnterpriseBean2... I would like to have a different server answering every time. Round-robin is sufficient, even though a loadbalancing technique would be better appropriate. Ok. Waiting forward to hearing from you all... P.S. Another question... CAN I TURN WEB-SERVICES OFF??? I tried removing the default-web-app tag in the server.xml, but it starts complaining about no default web-app :((( I want to have some Orion servers to act as EJB only servers. Lachezar
RMI Clustering HOW-TO.
OKAY. Here it goes. Prerequisites. (tested on 1.5.2 problems on 1.4.5) A. Setting up the cluster. A.1. RMI.XML: A.1.1 EXPLICITLYbind to the machine's IP rmi-server host="machine_ip_or_adress" A.1.2SAME cluster configuration on all machines cluster username="clusteruser" password="clusterpass"/ If you want you can use a nonstandard MCast IP and Port, but it HAS TO BE the same for all machines A.2. Application set-up. One and the same Application name for the clustered app. Like this in server.xml (on all machines): application name="Cluster" path="../applications/Cluster" / Deployment source doesn't count. The NAME HAS TO BE THE SAME. B. Tips for correct working. B.1. This is NOT full cluster: B.1.1An EJB is searched on othe machines if it is not present on the current one. If Machine A has bean BeanA any other bean, trying to access BeanA will be used from this machine only. B.1.2 Once you get a reference to a bean you will not get a reference to the same bean on another machine. If Machine A does not have BeanA and wants to use it, it will look it up on the cluster and use the LAST ONE, that has been found (i.e if MachineC has been the last to boot-up and has BeanA, then machine A will use the bean from Machine C. B.1.P.S.I hope this will be fixed soon. B.2. Deploy your entity beans in one place only. Do so with your stateful session beans also. C. Additional info. C.1 JMS. One can use the JMS server on one machine. This way anyone lookingfor a QUEUE or TOPIC will find it on that one. EX. in jms.xml: queue-connection-factory host="192.168.2.111" port="9129" username="admin" password="123" location="jms/QueueConnectionFactory" / topic-connection-factory host="192.168.2.111" port="9129" username="admin" password="123" location="jms/TopicConnectionFactory" / TRADE OFF: When the JMS server machine shuts down and boots up. Every other machine has to be restarted in order to reregister the QUEUE and TOPIC clients. PLUSES: MDBs are synchronized. Keep in mind the JMS technology a TOPIC message is received on all machines. A QUEUE message is received by only one. However that means, that in most cases (but not always) the QUEUE message will be received by one and the same client. P.S. There is still quite some job to be done on the clustering, but for now this is more than nothing. Personally I'll have to create my own execution scheduler, that will be responsible for round-robin execution of my clustered SLSBs. Well... Not much, but at least works :( Lachezar
Re: how do I unsubscribe?
Unsubscribe requests should be sent to: [EMAIL PROTECTED]
RMI Clustering done. Now want more.
Hello. OK. I was able to (at last) run the RMI clustering. It now works. But... I have a question... Now I can put up a cluster, and when a bean does not exist on the server it is searched onthe cluster and used. However if it is deployed on more than one machine... It is not found on all of them, but rather on only one. For simplicity let's assume we have OrionA, OrionB, OrionC and OrionD. a) on all machines we have EnterpriseBean1 deployed. It accesses EnterpriseBean2 b) machine OrionA does not have EnterpriseBean2 deployed. c) machines OrionB, OrionC and OrionD have EnterpriseBean2 deployed. d) all machines have a RMI cluster set-up and working. (BTW) Because I needed quite some time to understand why the cluster was not working I am eager to help anyone, that needs help on the subject. If machine OrionA runs EnterpriseBean1 it will have to look-up EnterpriseBean2, which is used by EnterpriseBean1. There is no problem to find that bean (it exists on the cluster). However... Once EnterpriseBean2 is used on OrionC it keeps using that one. Why? Also. If we deploy EnterpriseBean2 on OrionA it is always found there and not on ANY other cluster machine. 1. How does Orion know on which machine to use the bean? The last one, that wakes up? 2. Is there a way to implement (at least) a round-robin technique to access the clustered bean on more than one server? I mean... When I look-up EnterpriseBean2... I would like to have a different server answering every time. Round-robin is sufficient, even though a loadbalancing technique would be better appropriate. Ok. Waiting forward to hearing from you all... P.S. Another question... CAN I TURN WEB-SERVICES OFF??? I tried removing the default-web-app tag in the server.xml, but it starts complaining about no default web-app :((( I want to have some Orion servers to act as EJB only servers. Lachezar
Re: Force Logon after X minutes
One can use in a servlet, or a JSP: excerpt if ( session.getAttribute(logged_out) != null ){ response.sendError(response.SC_UNAUTHORIZED, Logout...); return; } end excerpt Whenever you want your user logged out: set a session attribute called logged_out. On the main page do not check this attribute, but clear it. The user will be asked for the username and password again when the browser receives Error 401 (SC_UNAUTHORIZED). Tradeoff: you have to check that everywhere in every JSP or servlet. Lachezar The problem is that with BASIC authentication the *browser* remembers the logon information and resends it whenever needed. Hence things like invalidating the session will not work, since the browser will simply log the user in again without their intervention. So far as I know, there is no solution to this problem. If you use BASIC authentication, the user has to shut down the browser to log off. If someone knows differently, I too would certainly love to hear the answer. Nick At 03:18 PM 6/13/01 -0400, you wrote: is it too obvious to say: send out the pages w/ an expire time set the http session expiration to a desired interval to prevent use after x minutes...create a logoff function that invalidates their session... is that too simplistic? regards, Mike Conway cybermaster wrote: % if (session != null) { session.invalidate(); } % --peter -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Smith Jason Sent: Wednesday, June 13, 2001 6:38 AM To: Orion-Interest Subject: Force Logon after X minutes I am custom user-authentication. The user and groups are in a database and I am using BASIC authentication. How can I allow users to logoff w/o them closing their browser? How can I force them to logon again after x minutes? Thxs, Jason
RE: Security bug with application clients? (More Info)
Hello. Here I want to provide more information on the problem. Just for clarification. The problem is NOT the security itself. It works just fine. The problem lies IMHO in caching or something. It is also seen only in the RMI connection. EXAMPLE: Consider following situation: We have machine OrionA and OrionB, both running Orion. Both have a deployed TestEjb. TestEjb is: TestEjbHome - Home interface TestEjbBean - Bean class TestEjb - Remote interface. TestEjb.doTheJob() - returns a String containing the name of the machine the bean was executed on (OrionA or OrionB) We have a standalone client: public class ResourceTest { public static void main(String[] args){ Context CTX; Hashtable CtxParams; TestEjbHome TheHome; TestEjbTheBean; // Connect to OrionA and execute the TestEjb bean. CtxParams = new HashTable(); CtxParams.put (Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory"); CtxParams.put (Context.SECURITY_PRINCIPAL, "admin"); CtxParams.put (Context.SECURITY_CREDENTIALS, "123); // Provider is the OrionA machine CtxParams.put (Context.PROVIDER_URL, "ormi://OrionA/TestAPP"); CTX = new InitialContext (CtxParams); TheHome = PortableRemoteObject.narrow( CTX.lookup("TestEjb"), TestEjbHome.class); TheBean = TheHome.create(); System.out.println( "First execution on: " + TheBean.doTheJob() ); // Conect to OrionB and execute the TestEjb bean. CtxParams = new HashTable(); CtxParams.put (Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory"); CtxParams.put (Context.SECURITY_PRINCIPAL, "admin"); CtxParams.put (Context.SECURITY_CREDENTIALS, "123); // Provider is the OrionB machine CtxParams.put (Context.PROVIDER_URL, "ormi://OrionB/TestAPP"); CTX = new InitialContext (CtxParams); TheHome = PortableRemoteObject.narrow( CTX.lookup("TestEjb"), TestEjbHome.class); TheBean = TheHome.create(); System.out.println( "Second execution on: " + TheBean.doTheJob() ); } } Running the above with the propper libraries should yeld: First execution on: OrionA Second execution on: OrionB HOWEVER! The real sitch returns: First execution on: OrionA Second execution on: OrionA Another test: Modify the code, so that the bean returns the user name; Modify the client, so that it connects to one and the same provider, but with different user_names. Code should yeld: First execution on: user1 Second execution on: user2 However it returns: First execution on: user1 Second execution on: user1 In other words. Connecting once means, that till the end you are connected to the same provider with the same user/pass. That's it. Lachezar.
Deployment descriptors autocopy?
I guess... I'll ask just for the sake of it. I have a complete J2EE Application. EJBs, WebClient and an ApplicationClient... However. I have orion-application.xml. I also have predefined data-sources.xml and principals.xml. So. I have them registered in the orion-application.xml, but... The do not get copied. Instead Orion cries-out that i have specified invalid names for data-sources and for principals. Trying I found, that after copying the orion-application.xml to the deployment directory Orion starts to search for the principals.xml and the data-sources.xml in the deployment directory, without first copying them there. Is there a way to make Orion autocopy them? BTW. I HAVE to use 1.4.5 for many reasons, so answers like "Fixed in 1.5.0" or something like that are not options. W8ingForward2Hearing4mU.soon Lachezar
Re: Error in deploying CMP bean in 1.5.2
Hi. Check your deployment descriptor ejb-jar.xml in the META-INF directory in the jar file. I think you have a property (variable) that containg some whitespace (space, tab, enter). That is not permitted. Lachezar Hi All, I am new to Orion app. server. I am trying to deploy a CMP Entity Bean on 1.5.2. The server gives the following error: Auto-deploying employee-ejb.jar (No previous deployment found)... Error compiling E:\orion\applications\employee\build\employee/employee-ejb.jar: Variable contained illegal space Any help would be highly appreciated. Thanks, Deepak
Re: Security bug with application clients?
WRONG!!! As I see it... There is nothing in the post, that says SESSION or HTTP or JSP or SERVLET. I have stumbled upon this problem many times. I've raised that question on this list many times. However... Except for threads like "Orion deal blah, blah" I hardly see any meaningful mail on this list. Have to use it however. The problem comes from other place. SITCH: Step 1: Set up an InitialContext (url, factory, principal, credentials) Step 1.1: Do your job (create, use, remove etc.) watch here Step 2: TRY to get another Context with something different as parameters (let's say different user, url, password, any of these, except for the factory). RESULT You get an InitialContext, that points exactly to the same target as the first one. The same target server, the same target application, the same user, the same password. This is NOT how it should be. The only way to get a difefrent context is to receive an Exception while communicating. Then you can get different Context. WHY??? Someone on the list proposed to use "dedicated.connection=true" in the InitialContext hashtable parameters. Haven't seen it to work... Hoping, to put the guns away, and do some job, isn't that why we are here? Lachezar. its in the "clean things up" step that something went wrong. You need to do a session.invalidate(), and then create a new guest session with a session.create("true"). Here is the bit in the RequestProcessor of the BluePrint (petstore): if (event instanceof LogoutEvent) { ...whatever ... session.invalidate(); whatever HttpSession validSession = req.getSession(true); ...whatever ... } This is usually done in a servlet. I would do the same thing here. Instead of using the client - slsb - whatever ... use client - servlet - slsb - whatever bean. This way, you can abstract whatever login/logout and session control directly with the servlet, and you also abstract instancing the slsb - whatever bean. The servlet can also be loadbalanced (the slsb can't be) so if you want failover capability, you get it. regards, the elephantwalker -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Michael JaraSent: Monday, June 11, 2001 6:51 PMTo: Orion-InterestSubject: Security bug with application clients? Hi, I'm trying to get the security portion of a project working, in which a java client connects to a stateless session beanafter login. As far as I can tell, Orion doesn't seem to properly pass around principal objects in stateless session beans. This is the sequence that my test client runs: 1. Prompt user for user ID password 2. Create an InitialContext containing the user ID and password (as "java.naming.security.principal" and "java.naming.security.credentials", respectively.) 3. Look up the stateless session bean's home 4. home.create() the stateless session bean So far, so good. The stateless session bean correctly identifies the user ID within its session context's principal. Now I clean things up and repeat the process: 5. remove() the stateless session bean 6. close() the InitialContext (just in case... I even went so far as to remove all of its environment properties.) 7. Log on again: prompt for a different user ID password 8. Create a newinitial context as in step 2. 9. Look up the stateless session bean's home 10. home.create() the stateless session bean This is where things go wrong. I get the principal out of the stateless session bean's session context, which indicates that I'm logged in as the first user! The problem is that the bean is never calling "setSessionContext" on the second creation. If I re-start the client however, it works correctly. The only way I can think of to get around this is to use a stateful session bean instead... I don't like that, because I don't need to maintain state! Has anyone else encountered this problem? Found a solution? Thanks, Mike
Web-security-constraints URGENT help needed!
Preface: I have a password protected site. Servlets, JSPs and pages. Requirement: I want to disable security checking for CERTAIN items. Question: Simple: Can I and How Do I? Looking forward to hearing from you. Lachezar.
Re: Simple Clustering Question
Hi. you need a switch which has multicast enabled; (most ethernet switchs have this capability, some just don't have it enabled) That is not true. Multicast is a network service. It is of type send-on-receive-anyone. That means, that one packet is send and it is received by anyone, listening to that multicast IP/PORT. If you have an Ethernet, than you have the Multicast ability. Routing multicast packets is a different question. Having one, or more Ethernet networks, connected with "dumb" equipment (HUBs, SWITHCHes, REPEATERs) also gives the multicast routing. Internet multicast routings is somehow more complicated. It is enough to say, that if you have a single dumb ethernet connection between your boxes is enough for the Orion multicast clustering to work. Of course all the boxes have to be configured to use one and the same Multicast IP and one and the same PORT. That's it. Lachezar. Hi,I've spent the last while trying to get clustering to work with orion server 1.5.2 without success. First I tried to follow the instructions at http-clustering-howto.html from the documentation, it said: Setting up the server1. Install orion and start it.2. Edit the orion/application-deployments/default/defaultWebApp/orion-web.xml file and add: cluster-config / 3. Repeat 1 and 2 for another (or more) box(es).But when I tried to connect to the server, the server let me know that the file /orion/default-web-app/WEB-INF/web.xml hadn't got the tag distributable/ in it.I then added this tag to all servers /orion/default-web-app/WEB-INF/web.xml file in the cluster, and tried again, this time they actually ran the SessionServlet but as if they were being run individually, i.e. the session wasn't shared as it was supposed to be, I did remember to append ;jsessionid=ID YOU GET ON YOUR BOX1 SCREEN to it and tried both leaving the angle brackets in and out.I know I must be doing some thing wrong but I can't find it, I'd really appreciate some help.I noticed in the http-clustering.html that in the clustering it mentions the default for multicast host/ip to transmit and receive cluster data on is 230.0.0.1, port number 9127, does this mean I have to have a network card listening on this IP/port?What exactly is a network with operational multicast facilities, is plain 100Mbs ethernet running on linux OK?Thanks, Oisin
Re: Generate and save a file
I personally use upload via HTTP from the EJB. Noone says i have to stop using Client sockets :))) Lachezar. BTW. U can use streams in Orion. Try not to :))) [This might show up twice. I waited two days before sending it again] Hi! I need to save a file to disk from EJBCreate() in an entity bean. What is the best way? I read that Weblogic allows you to violate the EJB specification and use a FileOutputStream. Does Orion let me do this as well? I thought about using RMI to call an external method. But then I would have to start rmiregistry on the server as well as Orion. Or could Orion act as RMI-server too? /Markus
Re: need for error explanation
Hya. It seems to me, that you are trying to use something, that is specific to Inprise Application Server (IAS). The "com.inprise.*" package contains the IAS (BAS) classes. I had similar problems when migrating from IAS to ORION. Check your code... Maybe there are things that are in IAS... Most (if not all) of them are not in Orion... Hope this helps a bit. May the shade of the tree strengthen you. Lachezar hi, though i tried this using jbuilder and inprise, i need the explanation about this error because i didnt find the explanation. i have compiled the servlets, beans, ejbs and it didnt echo any single error. what are the possibilities for this error? thanks javax.servlet.ServletException: CORBA MARSHAL 0[Error unmarshaling value [Could not get class for repository id = RMI:com.inprise.ejb.util.CustomVector:1]] at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp l.java:386) at distributor._0002fdistributor_0002fSalesAllocation_0002ejspSalesAllocation_j sp_0._jspService(_0002fdistributor_0002fSalesAllocation_0002ejspSalesAllocat ion_jsp_0.java:2020) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.ja va:174) at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261) at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369) at com.borland.jbuilder.webserverglue.tomcat.jsp.JspLoaderEcho.service(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:160) at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338 ) at java.lang.Thread.run(Thread.java:484) Root cause: java.rmi.MarshalException: CORBA MARSHAL 0[Error unmarshaling value [Could not get class for repository id = RMI:com.inprise.ejb.util.CustomVector:1]] at java.lang.reflect.Constructor.newInstance(Native Method) at com.inprise.vbroker.rmi.CORBA.UtilImpl.newInstance(UtilImpl.java:82) at com.inprise.vbroker.rmi.CORBA.UtilImpl._mapSystemException(UtilImpl.java:326 ) at com.inprise.vbroker.rmi.CORBA.UtilImpl.mapSystemException(UtilImpl.java:451) at javax.rmi.CORBA.Util.mapSystemException(Util.java:67) at com.macro.ejb.entity.distributorrole._DistributorroleHome_Stub.findAll(_Dist ributorroleHome_Stub.java:259) at distributor._0002fdistributor_0002fSalesAllocation_0002ejspSalesAllocation_j sp_0._jspService(_0002fdistributor_0002fSalesAllocation_0002ejspSalesAllocat ion_jsp_0.java:1939) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.ja va:174) at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261) at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369) at com.borland.jbuilder.webserverglue.tomcat.jsp.JspLoaderEcho.service(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:160) at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338 ) at java.lang.Thread.run(Thread.java:484)
Re: Problem with jsp pages
Hi. I guess by the err log, that you are trying to use this method in a JSP page. As by the specs in a JSP to get a reference to the cotext you should use the "pageContext" object, that is found in every JSP page. Why not give it a try? TRY: Vector vectorUsuarios = (Vector)pageContext.getAttribute("vu"); pageContext is an object of type javax.servlet.jsp.PageContext. There is also one implicit object: "application". It should be of type javax.servlet.ServletContext. So you can also try: Vector vectorUsuarios = (Vector)application.getAttribute("vu"); BTW. Your problem is the getServletContext method, not the getAttribute :) Hope this helps. May the shade of the tree strengthen you. Lachezar Hi all, I'm a newbie using Orion and I have a problem. I need to get Servlet Context to get an attribute, but when I use getServletContext().getAttribute("Attribute") I receive the follow error: /jsp/adestadoc.jsp.java:35: Method getServletContext() not found in class /jsp/adestadoc.jsp. (JSP page line 9) Vector vectorUsuarios = (Vector)getServletContext().getAttribute("vu"); I've put tools.jar and rt.jar in the Orion directory. I haven´t any other problems executing servlets and jsp pages. Can anybody help me? Thanks in advance. Antonio
Q: Am I the only one lagged?
Am I the only one, that receives messages more than three hours after he has sent them? It happens that I look silly, when answering questions, that have been answered 5-6 times, before my message is received... And also it's quite annoying to me to see my questions a couple hours after I have solved my problem on my own :( Ashamed: Lachezar.
Re: proxying orion with IIS or iPlanet Web Server
Hya... Got a reply for you :). I use Apache as a front-end server. I use Orion to store my EJBs, and I use Jakarta-Tomcat to deploy servlets and JSPs. Just put the Tomcat and Orion on one and the same machine, start tomcat with a classpath, that includes the jars of the Orion server. Put a jndi.properties file somewhere (probably the web-inf/classes directory) and specify the jndi properties as for a remote application: java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory java.naming.provider.url=ormi://127.0.0.1/your application java.naming.security.principal=admin user java.naming.security.credentials=admin pass Than you can safely read the Apache-Tomcat connectivity issues. I have used this with IAS instead of orion also. It worked. Apache and Tomcat are "cheaper" than other web servers :) May the shade of the tree strengthen you. Lachezar - Original Message - From: "Andrew Diederich" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Wednesday, May 30, 2001 12:46 AM Subject: RE: proxying orion with IIS or iPlanet Web Server I was afraid of that -- ISA is a minimum of $1,500. An expense for the free webserver. I'll look into, iWS, but since iPlanet sells a proxy server, too, I bet their webserver won't do it be default, either. Ah, well. Does this mean folks using Orion on NT/Win2k put Orion in their DMZ? -- Andrew -Original Message- From: Juan Lorandi (Chile) [mailto:[EMAIL PROTECTED]] Sent: Monday, May 28, 2001 13:40 To: Orion-Interest Subject: RE: proxying orion with IIS or iPlanet Web Server Dig into ISA server, It's the M$ reversed proxy solution. Or else, go into the ISAPI filter world (best of luck) JP
Re: proxying orion with IIS or iPlanet Web Server
Frankly? Apache is better connected to Tomcat... Faster, and there is no need for those... URL rewrites and so on... Also... I can have the users authenticated at the apache side. I get the username and security things from the apache directly. Quite handy you know... Orion is not so good at handling Apache requests. and if you plan to use prive IPs (like having Apache run on the firewall machine...) than you'll be very sorry... Like I was, because there is a SIGNIFICANT delay while Apache servers the requests, I'm not sure why. I guess it's something to do with the DNS resolving... However... Having Win2k as a firewall/router/Apache server is not the best solution... Believe me. If it was to me... I'll get a SlackWare to do the server job... But it's not up to me... :( Tomcat uses some different protocol to serve requests to Apache (APJ). Well... You can still use Tomcat as HTTP request server, but... Better not :) same goes to Orion. May the shade of the tree strengthen you. Sincerely yours: Lachezar - Original Message - From: Patrik Andersson To: Orion-Interest Sent: Wednesday, May 30, 2001 10:32 AM Subject: SV: proxying orion with IIS or iPlanet Web Server Just for the sake of asking, why do you have tomcat serving jsp/servlets and orion serving ejbs if they're both running on the same machine? For me, that sounds like asking for extra maintenance trouble. And another thing, from having one "single point of failure" you now have 3. If either one if these three applications decide to call it a day your whole application dies and that goes for having two machines running different software aswell. Why not use two or three machines all running orion and having them split the workload by clustering them? regards, Patrik -Ursprungligt meddelande-Från: Lachezar Dobrev [mailto:[EMAIL PROTECTED]]Skickat: den 30 maj 2001 08:50Till: Orion-InterestÄmne: Re: proxying orion with IIS or iPlanet Web Server Hya... Got a reply for you :). I use Apache as a front-end server. I use Orion to store my EJBs, and I use Jakarta-Tomcat to deploy servlets and JSPs. Just put the Tomcat and Orion on one and the same machine, start tomcat with a classpath, that includes the jars of the Orion server. Put a jndi.properties file somewhere (probably the web-inf/classes directory) and specify the jndi properties as for a remote application: java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory java.naming.provider.url=ormi://127.0.0.1/your application java.naming.security.principal=admin user java.naming.security.credentials=admin pass Than you can safely read the Apache-Tomcat connectivity issues. I have used this with IAS instead of orion also. It worked. Apache and Tomcat are "cheaper" than other web servers :) May the shade of the tree strengthen you. Lachezar - Original Message - From: "Andrew Diederich" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Wednesday, May 30, 2001 12:46 AM Subject: RE: proxying orion with IIS or iPlanet Web Server I was afraid of that -- ISA is a minimum of $1,500. An expense for the free webserver. I'll look into, iWS, but since iPlanet sells a proxy server, too, I bet their webserver won't do it be default, either. Ah, well. Does this mean folks using Orion on NT/Win2k put Orion in their DMZ? -- Andrew -Original Message- From: Juan Lorandi (Chile) [mailto:[EMAIL PROTECTED]] Sent: Monday, May 28, 2001 13:40 To: Orion-Interest Subject: RE: proxying orion with IIS or iPlanet Web Server Dig into ISA server, It's the M$ reversed proxy solution. Or else, go into the ISAPI filter world (best of luck) JP
How to contact Magnus? (was OR mapping)
I badly need to get the fix for the OR mapping... Is there a source to get the fix/patch, or do I have to contact a developer? If so, how can I contact Magnus to get the fix. Needed BADLY! Lachezar
Shitty ORMap implementation in 1.5.1
The com.evermind.server.java.ORMap does NOT implement in the correct way the java.util.Map interface. So... One is UNABLE to get the KeySet, or ValueCollection. What the heck is that?? Sincerly dissolved: Lachezar :(
Re: Cannot start orion using JDK1.4
You are trying to use the JRE, whilst Orion requires more stuff from the JDK itself. Try to start in the Orion directory: path to the JDK/bin/java -jar orion.jar Other thing: Check this NIO.DLL. Whatever. It may be missing. shrug ANOther thing: Put the c:\program\1.4\bin directory in the path. Try again :) Lachezar just asking if someone out there has already successful in running orion with jdk1.4 java.lang.UnsatisfiedLinkError: c:\program files\javasoft\jre\1.4\bin\nio.dll
Re: Orin cpu usage ???
Thanks peter, The javac is indeed linked to .java_wrapper, but to me it's not clear what I should change such that it works in classic mode. Neither do I find anything about that in the man pages. Doesn't anyone knows how to execute java -classic .. on a Linux box ?? Eddie Not quite sure, but the JBuilder docs say: For Windows only: you can use the classic JVM... blah blah. I really don't think there is a classic JVM for nonWindows OS :( Damn. Lachezar
TO THE DEVELOPERS: java.net.SocketException: socket closed
java.net.SocketException: socket closed at java.net.PlainDatagramSocketImpl.receive(Native Method) at java.net.DatagramSocket.receive(DatagramSocket.java:392) at com.evermind.net.jc.ar0(JAX) at com.evermind.server.jms.ca.run(JAX) at java.lang.Thread.run(Thread.java:484) More: Using Win2k, Orion 1.4.5 (1.4.8), RMI clustering turned on. Explanation: My research points, that Orion is using one and the same port to multicast and receive multicasting messages. However, if one tries to close the sending socket, the receiving one is also closed (not in all 100% of the cases. Approximately that happens every 25%, something to do with the synchroinization I think). Conducting the following experiment: Server: An application that listens to MultiCast packets and prints them. Client: An application, that opens a multicast socketon the same port as the server is receiving on, and after sendin, closes the socket. If the client, and the server live on one and the same machine roughly every one of four receivings the server gets the SocketException. Basic solution: Don't close the sending socket, anyway you don't need to. Better solution: You don't have to send from the same port number. When creating the MultiCast socket just leave the port selection to the underlying software and hardware. Solution three: Use one socket for receiving, and another for sending. Leave port selection for the sending socket to the framework. Thus you have only one port reserved for sending (in sollution two you get a different port for every sending socket you create). Can't help more. No source :) BTW. I'm still curious how to cluster RMIs on a couple of Orions... Be well. Lachezar Dobrev May the shade of the tree strengthen you.
Simplifying the complicated...
CAN I cluster a couple of Orion servers RMIs at all??? Thanks.
Somehow complicated question... URGENT help needed.
Hello. Preface: We are developing an application, consisting of number of services, a web interface, and a couple of servlets. Q1: We wish to use a number of Orion servers. However we need to cluster them, to empower the processor boost. As far as I know clustering is madefor the web apps only. That does not count. We may use non-clusterable Web App. However we need to cluster the EJBs. Some of them are deployable on multiple machines, others are server-type ejbs, that HAVE to run in one place only. I was unable to start RMI clustering either way. Exceptions, hang-ups... Tough problem. THE QUESTION: How do I cluster RMI interfaces of a number of Orion servers. Is that enough to receive different ejb home interface, when I look-up an EJB? If not, how do I do that? I mean: Lets say we have 10 Orion servers: 1. Web App server. For the servlets, jsps and so on. HTTP documents are put on an Apache web server. That's one. 2..9. EJB servers. They have some 10 EJBs, to perform different tasks. they do not have tobe on all machines. 10. sEJB server. These are some EJBs that perform server-type services. Access to different data-sources(not a java Data Source, but rather application specific non database data). They are deployed on one place only. I wish to be able to contact any ejb from any other on the cluster. How Do I Do That? Q2: TECHNICAL Is there a way to reset the InitialContextFactory? Problem: Some time ago I was lit a light about the RMIInitialContextFactory. It worked fine, until I came upon a situation, where I had to connect to services (EJBs) on a different machine, with a different provider URL, username, password. Well. In 3 words: It doesn't work! It still continues to use the prime connection. The same URL, user and password. And that's NOT good at all... I need to switch! the app continues on and on. Also: I have an EJB deployed on one Orion. I tried to connect to a different EJB on a different machine. OK. Then again not :(. I deployed the second EJB on the first Orion. Later when I try to connect to the other machine I connection to the local deployment. Why is that? Sorry, if these seem too dumb, or somehow unneeded, but I need to do this :( Please help. I like Orion much. I really wish to be able to run everything smoothly. Until now ISA worked fine, but it's slower, has some problems with the EJB-2-EJB connection and is EXPENSIVE! I really would like to run on Orion. Looking forward to hearing from you all. Lachezar Dobrev. May the shade of the tree strengthen you.
Look at www.orionsupport.com?!?!
This is DEFINITELY not good! javax.servlet.jsp.JspTagException: Could not perform XSL transformation: javax.xml.transform.TransformerException: File http://my.netscape.com/publish/formats/rss-0.91.dtd; not found.at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java: 640)at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java: 1085) at com.opensymphony.module.tags.transform.xml.transform(xml.java:297) at com.opensymphony.module.tags.transform.xml.doEndTag(xml.java:196)at /panels/links.jsp._jspService(/usr/local/applications/orionsupport/default-w eb-app/panels/links.jsp:2) at com.orionserver.http.OrionHttpJspPage.service(JAX) at com.evermind.server.http.HttpApplication.xu(JAX)at com.evermind.server.http.JSPServlet.service(JAX)at com.evermind.server.http.eb.doFilter(JAX) at com.sitemesh.filter.PageFilter.doFilter(PageFilter.java:41) at com.evermind.server.http.d4.s3(JAX) at com.evermind.server.http.d4.s1(JAX) at com.evermind.server.http.d4.forward(JAX) at com.sitemesh.taglib.page.PanelTag.parseExternal(PanelTag.java:169) at com.sitemesh.taglib.page.PanelTag.doEndTag(PanelTag.java:136) at /decorators/orionsupport-front.jsp._jspService(/usr/local/applications/orion support/default-web-app/decorators/orionsupport-front.jsp:78) (JSP page line 57) at com.orionserver.http.OrionHttpJspPage.service(JAX) at com.evermind.server.http.HttpApplication.xu(JAX)at com.evermind.server.http.JSPServlet.service(JAX)at com.evermind.server.http.eb.doFilter(JAX) at com.sitemesh.filter.PageFilter.doFilter(PageFilter.java:41) at com.evermind.server.http.d4.s3(JAX) at com.evermind.server.http.d4.s1(JAX) at com.evermind.server.http.d4.forward(JAX) at com.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:110) at com.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58) at com.evermind.server.http.d4.s3(JAX) at com.evermind.server.http.d4.s1(JAX) at com.evermind.server.http.eg.s9(JAX) at com.evermind.server.http.eg.dr(JAX) at com.evermind.util.f.run(JAX) at com.opensymphony.module.tags.transform.xml.doEndTag(xml.java:205) at /panels/links.jsp._jspService(/usr/local/applications/orionsupport/default-w eb-app/panels/links.jsp:2) at com.orionserver.http.OrionHttpJspPage.service(JAX) at com.evermind.server.http.HttpApplication.xu(JAX)at com.evermind.server.http.JSPServlet.service(JAX)at com.evermind.server.http.eb.doFilter(JAX) at com.sitemesh.filter.PageFilter.doFilter(PageFilter.java:41) at com.evermind.server.http.d4.s3(JAX) at com.evermind.server.http.d4.s1(JAX) at com.evermind.server.http.d4.forward(JAX) at com.sitemesh.taglib.page.PanelTag.parseExternal(PanelTag.java:169) at com.sitemesh.taglib.page.PanelTag.doEndTag(PanelTag.java:136) at /decorators/orionsupport-front.jsp._jspService(/usr/local/applications/orion support/default-web-app/decorators/orionsupport-front.jsp:78) (JSP page line 57) at com.orionserver.http.OrionHttpJspPage.service(JAX) at com.evermind.server.http.HttpApplication.xu(JAX)at com.evermind.server.http.JSPServlet.service(JAX)at com.evermind.server.http.eb.doFilter(JAX) at com.sitemesh.filter.PageFilter.doFilter(PageFilter.java:41) at com.evermind.server.http.d4.s3(JAX) at com.evermind.server.http.d4.s1(JAX) at com.evermind.server.http.d4.forward(JAX) at com.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:110) at com.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58) at com.evermind.server.http.d4.s3(JAX) at com.evermind.server.http.d4.s1(JAX) at com.evermind.server.http.eg.s9(JAX) at com.evermind.server.http.eg.dr(JAX) at com.evermind.util.f.run(JAX)
Re: 1.4.8
Ahm... Downloading you get 1.4.5 Autoupdating (RTFM) you get 1.4.8 currently... That's it. Lachezar It seems that everyone on this list is using at least 1.4.7, whereas I cannot find anything more recent than 1.4.5 on www.orionserver.com. Where are you guys getting these more updated versions?? -charlie -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Jeff Hubbach Sent: Wednesday, April 25, 2001 9:11 AM To: Orion-Interest Subject: 1.4.8 Did anyone else notice that 1.4.8 was on the website for a day, then taken back down? Jeff. -- Jeff Hubbach Internet Developer New Media Designs, Inc. www.nmd.com
How to cluster more than one Orion on a net.
I need to know how does Orion (and if it can at all) cluster. Excuse my bad English. I mean: I have a couple of EJBs. I need to deploy them on more than one machine to unleash more computing power. However I am not aware of the way. I mean. I was really able to open a connection to an EJB and even do some work with a couple of EJBs with one and the same interface, but that do different jobs... Now I have to implement some way to deploy these on more than one machine... Something like looking up an EJB without knowing every machine it is being deployed on... U... It may sound very complicated, but I'm having trouble explaining my idea in English :( If anyone has something that can help. Please answer. May the shade of the tree strengthen you. Lachezar
Re: How to connect to an Orion Ejb from outside?
Whoa... Thanks!!! That really helps. Haven't tried still, but that was my problem. Thanks again. May the shade of the tree strengthen you. Lachezar. I can't speak specifically for CORBA, but you can most certainly access EJBs in an Orion server from stand-alone Java clients (not servlets). The correct method of obtaining the JNDI context when operating outside the container is not well documented, but I worked it out as follows: Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory"); ht.put(Context.PROVIDER_URL, "ormi://MyServer/MyApplication"); ht.put(Context.SECURITY_PRINCIPAL, "admin"); ht.put(Context.SECURITY_CREDENTIALS, "abc123"); Context ctx = new InitialContext( ht ); - Original Message - From: "Lachezar Dobrev" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Thursday, April 19, 2001 10:32 AM Subject: How to connect to an Orion Ejb from outside? Until now I have developed EJBs for use with a CORBA broker. However, I did not see such a thing in ORION. Question: How (and can I) do I adress EJBs from my outside-of-orion applications? I was able to create a couple of basic EJBs. Well... Had to move them to ORION. My problem is, that my apps now cannot adress these EJBs. Is it possible at all, or not? If yes, than how, 'cause I saw nothing on this subject neither in the documentation, nor in the tutorials. Thanks in advance. Lachezar.
Newbie Question...
Until now I have developed EJBs for use with a CORBA broker. However, I did not see such a thing in ORION. Question: How (and can I) do I adress EJBs from my outside-of-orion applications? I was able to create a couple of basic EJBs. Well... Had to move them to ORION. My problem is, that my apps now cannot adress these EJBs. Is it possible at all, or not? If yes, than how, 'cause I saw nothing on this subject neither in the documentation, nor in the tutorials. Thanks in advance. Lachezar.
How to connect to an Orion Ejb from outside?
Until now I have developed EJBs for use with a CORBA broker. However, I did not see such a thing in ORION. Question: How (and can I) do I adress EJBs from my outside-of-orion applications? I was able to create a couple of basic EJBs. Well... Had to move them to ORION. My problem is, that my apps now cannot adress these EJBs. Is it possible at all, or not? If yes, than how, 'cause I saw nothing on this subject neither in the documentation, nor in the tutorials. Thanks in advance. Lachezar.