Java 1.4 RMI vs. 1.5 RMI: number of processes spawned at startup - Unix

After executing 'rmiregistry 8890 &' using Java 1.4:
5833 1 0 Oct 4 ? 462:51 /opt/java1.4/bin/PA_RISC2.0/rmiregistry 8890
After executing 'rmiregitry 8890 &' using Java 1.5:
25394 1 0 Feb08 ? 0:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25396 25394 0 Feb08 ? 00:00:01 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25397 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25398 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25399 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25400 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25401 25396 0 Feb08 ? 00:00:03 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25402 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25403 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25404 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25405 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25406 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25407 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25408 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25409 25396 0 Feb08 ? 00:01:03 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25411 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
25412 25396 0 Feb08 ? 00:00:00 /opt/java/java1.5/jre1.5.0_12/bin/rmiregistry 8890
Is the difference in # of processes spawned due to 1.5's use of socket factories?
Thanks,
gbe

gbe wrote:
The first executable is on a HP-UX 11.11i PA-RISC box:
java -versionjava version "1.4.2.03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2.03-040401-16:07)
Java HotSpot(TM) Server VM (build 1.4.2 1.4.2.03-040401-18:59-PA_RISC2.0 PA2.0 (aCC_AP), mixed mode)
The second executable is on a Linux RHEL AS R3 i686 box:
java -versionjava version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) Server VM (build 1.5.0_12-b04, mixed mode)Well, you have your answer right there. you neglected to mention you were using different operating systems! on older versions of linux, threading was done using magic with cloned processes (or something like that). basically, every system thread on older linux boxes shows up like a "process" when you run something like "ps". on newer versions of linux, threads have been redone to work more like most other operating systems, (and apparently your HP-UX system), where only one process is listed regardless of how many threads it has.
It has nothing to do with the jdk versions you are using and everything to do with the operating systems you are running the tests on.

Similar Messages

  • Using plain Java Sockets(not RMI) how..?

    hi!
    1. Using plain Java Sockets(not RMI) how can the client detect when its server
    goes down?
    There is a long time interval between client requests and the client wants
    to retain a live connection rather than disconnect after every reqest.
    Please also cc your reply to [email protected]
    Thanks,
    \Raghu

    If you try to send data when the host is gone, it throws an exception. I don'thow to check if it is alive though. I'm having the same problem right now.

  • Java.lang.Exception: ORA-00020: maximum number of processes (150) exceeded?

    When i run my web-application with the embedded OC4J server, the following error message is prompted:
    java.lang.Exception: ORA-00020: maximum number of processes (150) exceeded
         void MyFolder.objects.MyObject.<init>(oracle.jbo.ApplicationModule, java.lang.String, java.lang.String, javax.servlet.http.HttpServletRequest)
         void MyFolder.servlet.MyServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
         void com.evermind.util.ThreadPoolThread.run()
    Question:
    - What is the cause of this error message? How to avoid?
    - I intended to deploy my application to 9IAS server. Will the same problem occurs too?
    Thanks for your reply!

    Hi Pig,
    When i run my web-application with the embedded OC4J server, the following error message is prompted:
    java.lang.Exception: ORA-00020: maximum number of processes (150) exceeded
         void MyFolder.objects.MyObject.<init>(oracle.jbo.ApplicationModule, java.lang.String, java.lang.String, javax.servlet.http.HttpServletRequest)
         void MyFolder.servlet.MyServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
         void com.evermind.util.ThreadPoolThread.run()
    Question:
    - What is the cause of this error message? How to avoid?.
    From the Oracle error message documentation:
    ORA-00020 maximum number of processes (string) exceeded
    Cause: All process state objects are in use.
    Action: Increase the value of the PROCESSES initialization parameter.
    Another alternative approach may be to configure your Connection pool and/or your ApplicationModule pool to optimize the use of
    database connections and/or restrict the number of database connections used by the application. For example, if your application
    has declared many root ApplicationModules (i.e. more than one ApplicationModule pool is in use) then it may help to enable the
    jbo.doconnectionpooling switch so that each ApplicationModule instance in the pools does not maintain a dedicated database
    connection while not in use. Another alternative if you are using the BC4J connection pool (not a JDBC datasource) may be to
    restrict the number of connections the pool can create to < 150 with the jbo.maxpoolsize switch. However, please note that this
    may have an impact on throughput.
    - I intended to deploy my application to 9IAS server. Will the same problem occurs too?.
    This is a database issue. So, yes.
    Hope this helps.
    JR

  • Java application -  processing files on different unix server

    Hi,
    I was wondering if it is possible to
    a) read a file that is on a different unix server to the one that my java application is on
    b) move a file from one directory on the remote unix server to another directory on the remote unix server
    Regards,
    sabretooth

    for (b):
    If I were you I would set up a FTP account for your app on the remote unix server. Then I would get my hands on a simple ftp framework
    and simply:
    Ftp ftp = new Ftp("UNIXHostIP", username, password);
    ftp.connect();
    ftp.moveRemoteFile("form here","to here");
    ftp.disconnect();
    some frameworks:
    JScape, iNet Factory: com.jscape.inet.ftp.Ftp
    /n software, IP*Works: ipworks.Ftp
    Enterprise Distributed Technologies, Java FTP Client Library: com.enterprisedt.net.ftp.FTPClient
    IBM alphaWorks, FTP Bean Suite: com.ibm.network.ftp.protocol.FTPProtocol
    SourceForge, JFtp: net.sf.jftp.net.FtpConnection
    The Jakarta Project, Jakarta Commons/Net: org.apache.commons.net.ftp.FTPClient
    JavaShop JNetBeans: jshop.jnet.FTPClient
    Sun, JDK: sun.net.ftp.FtpClient
    Florent Cueto, JavaFTP API: com.cqs.ftp.FTP
    Bea Petrovicova, jFTP: cz.dhl.ftp.Ftp
    The Globus Project, Java CoG Kit: org.globus.io.ftp.FTPClient
    I recomend JScape's INetFactory (Easy to use)
    OR the one from Jakarta (Free)
    IP*Works (TOP Quality at a price)
    Check out http://www.javaworld.com/javaworld/jw-04-2003/jw-0404-ftp.html
    for a complete review of all the ftp frameworks
    Firewalls?
    make a folder that is public on the unix server-ie falls outside the firewall if there is one (fire walls might cause problems for you)
    Unless you know the password to get through the Proxy then this should not be a problem.

  • Java.lang.AssertionError: WSDL not found in the class file "processes

    Hi,
    I am using WLI 10.3 workshop to build process application. I have designed one JPD which inturn call another process JPD. So i have used worklist process control to create the process and tried to access the process. When i am executing the code, i am getting below error message.
    13-Jun-2011 14:13:00 o'clock BST> <Error> <WLI> <BEA-000000> <Exception processing processes.ISPSSQMsgLisnt
    Java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.bea.wli.knex.runtime.core.dispatcher.DispUnit.loadDispFile(DispUnit.java:219)
    Truncated. see log file for complete stacktrace
    Java.lang.AssertionError: WSDL not found in the class file "processes.ISPSSQMsgLisnt", annotated class = processes.ISPSSQMsgLisnt
    --ClassAnnotations:
    --Method Annotations:
    --Field Annotations:
    can't continue
    at com.bea.wli.knex.runtime.jws.dispatcher.JwsDispClass.<init>(JwsDispClass.java:392)
    at com.bea.wli.bpm.runtime.JpdDispClass.<init>(JpdDispClass.java:65)
    at com.bea.wli.bpm.runtime.JpdDispClass.<init>(JpdDispClass.java:55)
    at com.bea.wli.bpm.runtime.JpdDispFile.createPrimaryDispClass(JpdDispFile.java:382)
    at com.bea.wli.knex.runtime.core.dispatcher.DispFile.<init>(DispFile.java:154)
    Truncated. see log file for complete stacktrace
    xception processing processes.ISPSSQMsgLisnt
    ava.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.bea.wli.knex.runtime.core.dispatcher.DispUnit.loadDispFile(DispUnit.java:219)
    at com.bea.wli.knex.runtime.core.dispatcher.DispUnit.<init>(DispUnit.java:153)
    at com.bea.wli.knex.runtime.core.dispatcher.DispCache.ensureDispUnit(DispCache.java:628)
    at com.bea.wli.knex.runtime.core.dispatcher.DispCache.ensureDispUnitForURI(DispCache.java:1029)
    at com.bea.wli.knex.runtime.core.dispatcher.DispCache.ensureDispUnitForURI(DispCache.java:950)
    at com.bea.wli.broker.JWSSubscriber.getDispClass(JWSSubscriber.java:231)
    at com.bea.wli.broker.JWSSubscriber.getRequest(JWSSubscriber.java:184)
    at com.bea.wli.broker.JWSSubscriber.doDispatch(JWSSubscriber.java:358)
    at com.bea.wli.broker.JWSSubscriber.doDispatch(JWSSubscriber.java:348)
    at com.bea.wli.broker.SubscriptionDispatcher.doDispatch(SubscriptionDispatcher.java:87)
    at com.bea.wli.broker.MessageBroker$PrivilegedSubscriptionDispatcher.run(MessageBroker.java:179)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.security.authentication.AuthenticationService.runAs(AuthenticationService.java:108)
    at com.bea.wli.broker.MsgBrokerSecurityHelper.doDispatch(MsgBrokerSecurityHelper.java:231)
    at com.bea.wli.broker.MessageBroker$PrivilegedSubscriptionDispatcher.doDispatch(MessageBroker.java:165)
    at com.bea.wli.broker.MessageBroker.publishMessage(MessageBroker.java:984)
    at com.bea.wli.mbconnector.jms.JmsConnMDB.publishMBMessage(JmsConnMDB.java:343)
    at com.bea.wli.mbconnector.jms.JmsConnMDB.onMessage(JmsConnMDB.java:475)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:466)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4547)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4233)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3709)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5058)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    aused by: java.lang.AssertionError: WSDL not found in the class file "processes.ISPSSQMsgLisnt", annotated class = processes.ISPSSQMsgLisnt
    --ClassAnnotations:
    --Method Annotations:
    --Field Annotations:
    can't continue
    at com.bea.wli.knex.runtime.jws.dispatcher.JwsDispClass.<init>(JwsDispClass.java:392)
    at com.bea.wli.bpm.runtime.JpdDispClass.<init>(JpdDispClass.java:65)
    at com.bea.wli.bpm.runtime.JpdDispClass.<init>(JpdDispClass.java:55)
    at com.bea.wli.bpm.runtime.JpdDispFile.createPrimaryDispClass(JpdDispFile.java:382)
    at com.bea.wli.knex.runtime.core.dispatcher.DispFile.<init>(DispFile.java:154)
    at com.bea.wli.knex.runtime.jws.dispatcher.JwsDispFile.<init>(JwsDispFile.java:24)
    at com.bea.wli.bpm.runtime.JpdDispFile.<init>(JpdDispFile.java:108)
    ... 34 more

    Hi
    Are you using wli process control?
    That uses wsdl and could cause the issue.
    I also saw couple of internal bugs CR264315 and CR288904 on the same issue on 9.2.
    Since this is a wli issue could you post in the wli newsgroup to get more answers http://forums.bea.com/forum.jspa?forumID=2047 ?
    Also you can open a BEA support case at http://support.bea.com and an wli support engineer would help you. Please refer to the Cr numbers above in your support case.
    Thanks
    Vimala

  • Java.sql.SQLException: The url cannot be null" faultCode="Server.Processing

    Hi Everyone i am getting the following exception while envoking a java method from the flex using blazeds. Any help would be highly appreciated.
    Fault faultString="com.Employee.Employeedetails.connection.DAOException : java.sql.SQLException: The url cannot be null" faultCode="Server.Processing" faultDetail="null"]

    Hi Everyone i am getting the following exception while envoking a java method from the flex using blazeds. Any help would be highly appreciated.
    Fault faultString="com.Employee.Employeedetails.connection.DAOException : java.sql.SQLException: The url cannot be null" faultCode="Server.Processing" faultDetail="null"]

  • Any java API to get the metadata for a deployed bpel process in soa/bpm11g?

    Hi,
    Just wonder if this is possible, that there is some existing java api to retrieve the metadata (containing activities, isSynchrous, version information etc) for a deployed bpel process? If not, is there any other way to achieve this goal ( or example query database table directly)?
    I can only find this link for soa11g java api. I am able to invoke the bpel process using this API(direct binding) from java client.
    http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/index.html?overview-tree.html
    Any help will be greatly appreciated.
    Thanks,
    Bin

    What I find so far:
    1. can get some process property values from ComponentInstance class, see its api.
    http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/oracle/soa/management/facade/ComponentInstance.html
    Please refer http://blogs.oracle.com/soabpm/2009/07/soa_suite_11g_api_tricks_part.html of how to get the component instance (contain the bpel process) from a composite object
    2. in dev_soainfra database schema, the CUBE_INSTANCE table contains most of soa bpel components information. The BPM_CUBE_PROCESS table seems to contain only the process defined in a bpm application. This sounds a little confused, if we want to develop a bpel application, should it be put in soa or bpm application and what is the difference?
    Please feel free to correct any mistakes here.

  • Trouble to invoke BPEL from Java Client following rmi example

    I still have troubles to invoke my BPEL process from Java Client by following tutorial sample of 102.InvokingProcesses/rmi .
    I created my Java class within NetBeans IDE. And the following line of code return null for url,
    java.net.URL url = ClassLoader.getSystemResource("context.properties");
    I think that I need to have SystemResource set up somewhere, how should I do that?

    if you using oc4j.. then please make a small change in oc4j_context.properties
    from
    java.naming.provider.url=[java.naming.provider.url]
    to
    java.naming.provider.url=ormi://hostname/orabpel
    And please make sure the context.properties file which gets copied to classes/context.properties has this above entry. For more details please refer to build.xml under rmi folder.
    Please do let me know if you face any issue.

  • Forte for Java J2EE Tutorial -- RMI RemoteException

    In testing the J2EE tutorial (Restaurant_TestApp) I keep encountering the following error when invoking the findAll method. I get the same error when invoking Data.Restaurant create.
    The error is:
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.RemoteException java.rmi.RemoteException
    Any help or pointers from someone who has successfully built and tested the tutorial would be hugely appreciated!
    Many thanks,
    Luke
    The full error from the J2EE log is:
    javax.ejb.EJBException
         at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:1560)
         at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:1472)
         at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:1289)
         at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:403)
         at Data.RestaurantEJB_PM_RemoteHomeImpl.findAll(RestaurantEJB_PM_RemoteHomeImpl.java:99)
         at Data._RestaurantHome_Stub.findAll(Unknown Source)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.sun.forte4j.j2ee.ejbtest.webtest.InvocableMethod$MethodIM.invoke(InvocableMethod.java:232)
         at com.sun.forte4j.j2ee.ejbtest.webtest.EjbInvoker.getInvocationResults(EjbInvoker.java:97)
         at com.sun.forte4j.j2ee.ejbtest.webtest.DispatchHelper.getForward(DispatchHelper.java:190)
         at org.apache.jsp.dispatch$jsp._jspService(dispatch$jsp.java:127)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:197)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:368)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
         at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
         at java.lang.Thread.run(Thread.java:484)
    java.rmi.RemoteException
         at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:389)
         at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:431)
         at Data.RestaurantEJB_PM_RemoteHomeImpl.findAll(RestaurantEJB_PM_RemoteHomeImpl.java:99)
         at Data._RestaurantHome_Stub.findAll(Unknown Source)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.sun.forte4j.j2ee.ejbtest.webtest.InvocableMethod$MethodIM.invoke(InvocableMethod.java:232)
         at com.sun.forte4j.j2ee.ejbtest.webtest.EjbInvoker.getInvocationResults(EjbInvoker.java:97)
         at com.sun.forte4j.j2ee.ejbtest.webtest.DispatchHelper.getForward(DispatchHelper.java:190)
         at org.apache.jsp.dispatch$jsp._jspService(dispatch$jsp.java:127)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:197)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:368)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
         at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
         at java.lang.Thread.run(Thread.java:484)

    RMI is not that hard.. its just hard to explain :)
    I have not done the tutorial.. so bare with me..
    the errors your seeing can mean many things.. but above all else it means that you've got a problem either connecting or communicating to the rmi_server you created or the rmiRegistry
    My suggestion is this...
    First try a simpler application.
    How about a simple server that returns a string
    and sets a string.
    then a client app that can read the server string and envoke a change to it...
    This will show the basics involved.
    let me know your toughts..
    j.

  • Java IDL or RMI-IIOP

    Hi,
    I am hoping someone can help me on this topic.
    I have a corba client and I am going to implement a server in java.
    I was told to use RMI-IIOP to implement the server such that clients
    (corba or java) can send create/update/delete operation requests to the
    server. On the other hand, the server needs to send notifications back
    to the corba client side as a result of other unrelated operations. There is already an idl for the notification. In this case, how should I handle
    the notification part? Am I supposed to use java idl in this scenario?
    Any suggestions are welcome.
    Thanks,
    Pin

    Yes you must use IDL for this as you can't construct a C++ ser ver for RMI/IIOP.

  • Difference between Java IDL and RMI-IIOP

    Hi,
    I am new to CORBA / RMI and I am trying to clear my concepts a little bit. Suppose, we want to create a remote object that should be accesible from CORBA clients. Does anyone know what the difference is between creating this object as an RMI object (with RMI-IIOP) and using the java IDL?
    In other words, if I am not wrong, it is possible to write the object in java (pretty much like writting an RMI remore object), generate the IDL with rmic and then any CORBA client can access it provided it has the IDL.
    Are there any advantages in doing it the other way (explicitely instantiating an ORB in the code, etc) ?
    By the way, if we use the first choice (RMI-IIOP), when is the ORB getting called? Is it called by the Tie class, which is generated by rmic -iiop?
    Thanks!

    Visit this link
    http://java.sun.com/j2se/1.3/docs/guide/idl/jidlFAQ.html#java%20idl%20vs%20rmi-iiop

  • Java Profiler for RMI Applications

    I am looking for a profiler to monitor the bottlenecks and the memory usage when running my RMI application.
    What would you recommend to use and a comprehensive tool

    Couple of thoughts on scaling:
    1. Change the mx setting to 1200m -- this is the most you can scale a single instance on 32-bit
    2. Use a 64-bit platform you can set memory settings really high (AIX/Solaris)
    3. Multiple servers with planning on it using a load balancer
    Regards,
    John A. Booth
    http://www.metavero.com

  • Exception...   java.io.NotSerializableException  (RMI)

    hi,
    I use a remote object <remoteObjOne> (already registered on the server) to create and register, there, (on the server) a second remote object <remoteObjTwo> .
    To do this I call a method of <remoteObjOne> (already registered on the server):
    public void buildRemoteDbConnectionOnTheServer(String objName){
         MyClass myClass = new MyClass();
         // MyClass is coded on the server
            try {
                Naming.rebind(objName, myClass); // put in the registry the object.
            } catch (Exception e) {
                System.out.println("buildRemoteDbConnectionOnTheServer erro registering remote obj " + e.getMessage());
    }When the statement :
    Naming.rebind(objName, myClass);is executed I get this error:
    error marshalling arguments; nested exception is:
            java.io.NotSerializableException: MyClass.I would understand what appen and to know how I can manage this error.
    Any help shall be appreciated
    thank you
    regards
    tonyMrsangelo

    There are several errors here.
    1. MyClass is not exported. Does it extend UnicastRemoteObject?
    2. You can't bind to a remote registry, only to a registry in the local host. Callbacks have to be registered at the server via a specific remote method that takes the callback interface as a parameter. The server has to store that somewhere and use that to callback the client. In any case the design of using the Registry assumes that there is only one client, which is a broken design in the first place.
    3. Callbacks don't work over the Internet without a lot of additional mucking around, usually involving 3rd-party products such as mine. Are you aware of that?

  • Java WEB AS - Is it possible to prevent a single process using all memory?

    Hi all,
    We have a SAP PI 7.0 installation and we have encountered issues with Java mappings utilizing all available memory on the Java stack and causing the server to slow and eventually crash. The original issue was caused by a poorly coded map, but as this is a large installation we want to protect ourselves against any other poor coding that may be on the system or introduced later.
    Are there any configuration options within the WEB AS whereby we can either limit the amount of memory available to the execution of any one mapping, or that will enable the server to stop processing once a set limit is reached?
    Any help will be much appreciated.
    Regards,
    - Ian

    The only thing that comes to my mind is to use several server processes for the Java instance and limit the max heap size. Once that size is reached, the thread will end with OutOfMemory error but since you have several server processes others threads can continue to work.
    Markus

  • Can Java execute batch file outside of current JVM in separate process tree

    Hi,
    Does anyone know how to run programs from Java as separate processes that will not die when the spawning java program exits (JVM exits).
    The problem I have with using Runtime.exec is it spawns only child processes under the current running JVM, thus when the origonal program that called Runtime.exec ends so does all child processes.
    Basically I want to start a DOS batch file from my Java application, my Java application will then immediately exit (calling System.exit(0) ). The batch program will continue to run, its does some file clean up, create's some new files and deletes the old jar (containing the main app), it then rebuilds the main app jar and and executes the main class and then exits itself.
    I've also tried the apache.tomcat.jni.Proc :-
    long pool = Pool.create( new Long(0).longValue() );
    long pa = Procattr.create( pool );
    Procattr.dirSet( pa, "c:\\temp\\updater\\");
    Procattr.cmdtypeSet( pa, Proc.APR_SHELLCM );
    Procattr.detachSet( pa, 1 );
    long proc = Proc.alloc( pool );
    Proc.create( proc, "test.bat", new String[]{"test.bat"}, null, pa, pool );
    System.exit(0);
    The detach option doesn't work, if I take it off then the bat file runs and stops the JVM exiting, if I leave it in the batch file never gets called.
    Is this possible in Java. Can java start master process on Windows XP JDK1.5+?
    Cheers
    Chris.

    Well I found the answer elsewhere (java.net) thought I'd post it here for future visitors who might be experience the same problem.
    Basically Runtime can do this however it must be done the following way :-
    The java:-
    public class Main {
        public static void main(String[] args) throws Exception {
            Process p=Runtime.getRuntime().exec("cmd /c c:\\test.bat");
            System.out.println("done");
            System.out.println("quitting");
            System.exit(0);
    }The batch:-
    @echo off
    PING 1.1.1.1 -n 1 -w 5000 >nul
    java -cp "c:\ " MainThe important line that makes the whole thing work is :-
    @echo offIf this line is missing then the whole things locks up (must be the io streams getting used)
    Also this code can not be run from an IDE (well at least not from Intellj) as it also locks up.
    It must be run from a command prompt or jar.
    Also note that any commands in the batch file must have there output redirected to "nul" otherwise Windows kills the cmd as soon as it trys to output to a dead stream (dead because the Java has exited). for example :-
    @echo off
    PING 1.1.1.1 -n 1 -w 10000 >nul
    cd %1
    del /F /Q *.* >nul
    move /Y new\*.* >nul
    RD /Q /S new >nul
    PING 1.1.1.1 -n 1 -w 1000 >nul
    java -cp "c:\ " Main
    exit

Maybe you are looking for