X-post: Puzzled about RMI

Folks, yes I am cross posting this so try to keep the flames down :) I've also placed it on the RMI forum but no one there seems to want to help and I know everyone in the "Advanced" forum are very helpful (do you like the flattery???).
Anyway, I'm just playing with RMI now and have followed the tutorial but I am a little puzzled about some behaviour I'm observing. This may be that I am missing a piece of information about RMI or how it works so if anyone can fill in the blanks then I would be most appreciative!!!
So I've got the following Remote interface definition:import java.rmi.*;
public interface RMIInterface extends Remote
    public int getValue () throws RemoteException;
    public void setValue (int val) throws RemoteException;
}And I have some code that implements that interface. This code also contains a main method that performs some stuff with the RMI object. It is given below:import java.rmi.*;
import java.io.*;
public class RMIObject implements Remote, RMIInterface, Serializable
    private int value = 0;
    public int getValue ()
                         throws RemoteException
     return this.value;
    public void setValue (int    val)
                          throws RemoteException
     this.value = val;
    static public void main (String argv[])
     try
             // Create the object.
         RMIObject o = new RMIObject ();
             // Bind it in.
         Naming.rebind ("//localhost/RMIObject", o);
             // Now get a reference to the object from the name server.
         o = (RMIObject) Naming.lookup ("//localhost/RMIObject");
             // Set the value to 100.
             o.setValue (100);
             // Print out the value.
         System.out.println (o.getValue ());
             // Get ANOTHER reference to the object.
         o = (RMIObject) Naming.lookup ("//localhost/RMIObject");          
             // See what the value is.
         System.out.println (o.getValue ());
     } catch (Exception e) {
         e.printStackTrace ();
}As you can see, I bind the object, then get a new reference to the object, set a value then get the reference again and see what the value is.
The output I get from this code is:
100
0
Which indicates that setValue is working when the reference is local but it's not updating the remote object. Now the question is, is this the way that RMI is supposed to work? i.e. should you NOT use RMI objects for holding state? If so what's the point because effectively the object would be isolated...can anyone shed any light on this?
BTW, I am NOT a student and this is NOT related to any exam/coursework question!!!

Easy folks...my reference to my potential student status was supposed to be "tongue-in-cheek", tis been a LONG time since I could get up when I want and pretend that I was really overworked and complain that I had too many assignments...
Now of course I am overworked and have too many assignments...least I get paid now...
Thanks for the help on this, I like to understand the mechanisms behind things, RMI from the outside has an appearance of "magic" that annoys me, I wasn't able to find out any description of how it actually works behind the scenes. I had to infer that it acts as a "broker", I presume that the RemoteObject object stores some information about where the JVM that actually holds the object is and then the Client uses this information (again behind the scenes) to get a connection.
This tends to worry me a bit though, the implication is that each object that is exported also contains a ServerSocket on a particular port that listens for incoming requests. Now I would presume that when it gets the request it then creates a new thread to handle it to prevent IO blocking. Now in a highly utilized system this means a lot of threads and a lot of port access, which is o.k. but that's a big use of resources. Also, if I have 2 objects listening on the same port, how does the JVM distinguish between the 2 objects when the incoming connection is received. The OS will wake up the JVM and inform it of a new connection (at least that's how Unix does it), but does the JVM have some "magic" that allows it to send it to the correct ServerSocket? I suppose that you also need to take into account Thread concurrency issues as well since you are (by definition) creating objects that will be multi-threaded...
Can anyone enlighten me on some of the above? Are there any books around that describe how RMI actually works...

Similar Messages

  • Puzzled about RMI

    Folks,
    I'm just playing with RMI now and have followed the tutorial but I am a little puzzled about some behaviour I'm observing. This may be that I am missing a piece of information about RMI or how it works so if anyone can fill in the blanks then I would be most appreciative!!!
    So I've got the following Remote interface definition:
    import java.rmi.*;
    public interface RMIInterface extends Remote
        public int getValue () throws RemoteException;
        public void setValue (int val) throws RemoteException;
    }And I have some code that implements that interface. This code also contains a main method that performs some stuff with the RMI object. It is given below:
    import java.rmi.*;
    import java.io.*;
    public class RMIObject implements Remote, RMIInterface, Serializable
        private int value = 0;
        public int getValue ()
                             throws RemoteException
         return this.value;
        public void setValue (int    val)
                              throws RemoteException
         this.value = val;
        static public void main (String argv[])
         try
             RMIObject o = new RMIObject ();
             Naming.rebind ("//localhost/RMIObject", o);
             o = (RMIObject) Naming.lookup ("//localhost/RMIObject");
             o.setValue (100);
             System.out.println (o.getValue ());
             o = (RMIObject) Naming.lookup ("//localhost/RMIObject");
             System.out.println (o.getValue ());
         } catch (Exception e) {
             e.printStackTrace ();
    }As you can see, I bind the object, then get a new reference to the object, set a value then get the reference again and see what the value is.
    The output I get from this code is:
    100
    0
    Which indicates that setValue is working when the reference is local but it's not updating the remote object. Now the question is, is this the way that RMI is supposed to work? i.e. should you NOT use RMI objects for holding state? If so what's the point because effectively the object would be isolated...can anyone shed any light on this?
    BTW, I am NOT a student and this is NOT related to any exam/coursework question!!!

    Hi!
    Naming.lookup(..) actually returns a local reference to the server's stub object (which is locally present in the RMI client's machine). This stub takes care of the remote method invocations. Actually I don't understand how could you do the typecasting to the RMIObject but this is not really important right now!
    Let's see what happened in your example:
    First you registered your RMIObject in the registry.
    Then you retrieved a remote reference to it (a local stub, which implements the remote interface of the server object) and you set some variables of it.
    Then you retrieved again that stub (the java system probably instantiated an other stub object) and its variables were initialized also.
    This is not the way as the RMI should be used!
    The Naming.lookup(..) method always returns a Remote interface (if it can, or throws a RemoteException). This return value must be typecasted to the server object's Remote interface (in your example it's RMIInterface).
    Then you can use this object's (interface's) methods as you want to. (actually you use the stub object's methods which converts your calls to remote calls...)
    I hope it's clear now,
    Sany

  • My thread is gone! Is it undesired to post bugs about Oracle Products here?

    A few days ago i posted a thread here about a bog in ODP.NET Driver 10.2.0.2.10 Beta
    Now this thread seems deleted.
    Is it undesired to post bugs about Oracle Products here?

    Thank you Mark for the info.
    The practise to delete posts without any comments casts a damning light on Oracle and can gives the impression that oracle the way of repairing bus is to hide them.
    For a cutomers like me that invets time to analyze issues in oracle software and invets time again to post them here to help Oracle it is very disappointing to see that my posts are delete without comments.
    Oracle should think about that mistreating their customers is not a fine way. This is unsuitable for giving custumers the feeling that Oracle is intrested in their problems.
    The right way would be to delete the content of a post intead of the complete thread and give a small comment why it has ben removed.
    Sorry for this harsh post, but in the last monts i am more and more disappointed about the faultiness of Oracle products, the slowness of Oracle Support and the false promises regarding to meeting deatlines.
    I have the feeling to be on a sinking ship with Oracle.
    This Forum here is sometime a ray of hope but the rest of Oracle...

  • I hava a question about RMI,please help me!

    Ladys and Gentleman,I hava a question about RMI.I wirte four little programs in java that is about RMI on my PC.
    import java.rmi.*;
    public interface AddServerIntf extends Remote{
    double add(double d1,double d2) throws RemoteException;
    import java.rmi.*;
    import java.rmi.server.*;
    public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf{
    public AddServerImpl() throws RemoteException{
    public double add(double d1,double d2)throws RemoteException{
    return d1+d2;
    import java.net.*;
    import java.rmi.*;
    public class AddServer{
    public static void main(String args[]){
    try{
    AddServerImpl addServerImpl=new AddServerImpl();
    Naming.rebind("AddServer",addServerImpl);
    }catch(Exception e){
    e.printStackTrace();
    import java.rmi.*;
    public class AddClient
         public static void main(String args[]){
         try{
         String addServerURL="rmi://"+args[0]+"/AddServer";
         AddServerIntf addServerIntf=(AddServerIntf) Naming.lookup(addServerURL);
         System.out.println("The first number is: "+args[1]);
         double d1=Double.valueOf(args[1]).doubleValue();
         System.out.println("The second number is: "+args[2]);
         double d2=Double.valueOf(args[2]).doubleValue();
         System.out.print("The sum is: "+addServerIntf.add(d1,d2));
         }catch(Exception e){
         System.out.println("Exception: "+e);
    And I compiled these files,so I got 4 class files(AddServer.class,AddServerIntf.class,AddServerImpl.class,AddServerClient.class).Then I use "rmic AddServerImpl" got another two files(AddServerImpl_Skel.class and AddServerImpl_Stub.class).Then I input command:rmiregistry,in another window,I input command:java AddServer,I got some exceptions,I was confused by these exceptions.The exception is:
    D:\MyJava\rmi_3>java AddServer
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: AddServerImpl_Stub
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: AddServerImpl_Stub
    java.lang.ClassNotFoundException: AddServerImpl_Stub
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Unknown Source)
    at AddServer.main(AddServer.java:8)
    But some times this exception will not appeared.Who can give me answer or suggestion,thanks a lot.
    By the way,when I run shutdown.bat in tomcat_root\bin,I can get some exceptions:
    C:\Tomcat\bin>shutdown
    Using CATALINA_BASE: ..
    Using CATALINA_HOME: ..
    Using CATALINA_TMPDIR: ..\temp
    Using JAVA_HOME: C:\JDK
    Catalina.stop: java.net.ConnectException: Connection refused: connect
    java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:350)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:137)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:124)
    at java.net.Socket.<init>(Socket.java:268)
    at java.net.Socket.<init>(Socket.java:95)
    at org.apache.catalina.startup.Catalina.stop(Catalina.java:579)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:402)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
    at java.lang.reflect.Method.invoke(Native Method)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
    I use Windows server 2000+JDK 1.3.1_04+tomcat 4.1.7

    Maybe I am off base here but it seems to me the problem is the way in which you bind your server. The server must be bound to the same address and you are looking up from, i.e. "rmi://" host "/AddServer"
    so
    Naming.rebind("AddServer",addServerImpl);should be
    Naming.rebind("rmi://127.0.0.1/AddServer", addServerImpl);to match
    String addServerURL="rmi://"+args[0]+"/AddServer";
    AddServerIntf addServerIntf=(AddServerIntf)
    Naming.lookup(addServerURL);Hopefully this will solve your problem, if not it is a problem with your classpath. An easy way to make sure it can see your files is to set the java.rmi.server.codebase to point to where your classes are, e.g.
    java -Djava.rmi.server.codebase=file:"c:\\cygwin\\home\\tweak\\keck_folder\\cmsi401\\RMIGalaxySleuth\\classes\\" AddServer
    I had to set the codebas for my rmi stuff to work no matter how much I messed with the classpath.
    Hope this helps,
    Will

  • Puzzled about filters for phones.

    I am very puzzled about the filters for the phones.   I have three cordless phones so made sure I had three filters to use with my phones for the broadband.
    I put one filter on the incoming phone line with the cordless with the ansaphone ..... and then plugged the other two cordless into the electric supply and realised I couldn;t put a filter on them .... so was stumped.   But the broadband is staying connected when calls are being answered.    
    I thought I had to have a filter on each phone being used.    Sorry if its a bit garbled... but I'm trying to explain it the best way I can.
    Di
    Solved!
    Go to Solution.

    very simple really as they are cordless phones and as they operate wirelessly only the main phone unit is connected to the phone line the other two phones do not need filters
    If you want to say thanks for a helpful answer,please click on the Ratings star on the left-hand side If the reply answers your question then please mark as ’Mark as Accepted Solution’

  • Where do we post issues about bad apple customer support

    where do we post issues about bad apple customer support?

    Well, these are user-to-user forums. I'm not sure that posting complaints about Apple customer support here would be a) productive (what can we really do?) and b) acceptable under the terms of use, though I'm not sure. My inclination would be to write a letter directly to Apple. Even in this email age, "real" letters seem to command more attention.
    Best of luck.

  • I'm puzzled about ldd and "/usr/lib/../lib"

    I'm building my own custom linux distro, and I'm puzzled about why 'ldd /usr/bin/gobject-query' shows "libffi.so.6 => /usr/lib/../lib/libffi.so.6" instead of "libffi.so.6 => /usr/lib/libffi.so.6". Archlinux is the host system for building base packages to set up chroot and rebuild them again inside. When building glib2 outside chroot I get "libffi.so.6 => /usr/lib/libffi.so.6". Building it inside chroot ldd shows "libffi.so.6 => /usr/lib/../lib/libffi.so.6". I know that it's harmless and only a cosmetic issue, but I want to know why there is two dots and how to fix this somehow.. Anyone expert on this matter?
    Last edited by ahcaliskan (2015-05-14 04:27:43)

    What's in your /etc/ld.so.conf ?
    Here's mine (Gentoo):
    # ld.so.conf autogenerated by env-update; make all changes to
    # contents of /etc/env.d directory
    /lib64
    /usr/lib64
    /usr/local/lib64
    /lib
    /usr/lib
    /usr/local/lib
    include ld.so.conf.d/*.conf
    Arch:
    # /etc/ld.so.conf
    include /etc/ld.so.conf.d/*.conf
    # End of file
    As you can see, Gentoo's ld.so.conf is more interesting. Running "ldd /bin/bash" outputs:
    linux-vdso.so.1 (0x00007ffeac4ea000)
    libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f118f80b000)
    libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f118f5ac000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f118f1ff000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f118fa5d000)

  • Puzzled About New Options

    According to iTunes Help, the latest update allows one to sort by the artist's last name instead of first. Yet it's description of how it's done sounds like the original way of manually typing, or cutting and pasting the information in the "Get Info" box. This is very laborious when you have hundreds of names to deal with. If I've misread this, can someone put me straight?
    Also, what are the new options and sorting options about? For example: "Album by Artist" and the various "Sort by" options.
    Dell   Windows XP  
    Dell   Windows XP  

    Thank you for that answer.
    You're welcome.
    Did you have to work it out yourself? I couldn't find this in iTunes Help.
    This seems to be one of those instances where Apple doesn't always document new features that are introduced in iTunes upgrades.
    As for how I found out about it, I wish I could say I worked it out myself but for the most part it's something I learnt in this thread . That's one of the side benefits of spending a fair bit of time on these boards - I have a lot of opportunities to learn things.
    I imagine that this has to be done every time a CD is copied into iTunes.
    I'm not sure. After you select the Apply Sort Field option for a given entry, I don't know whether or not iTunes will apply it to future additions of the same artist to your Library. If you want to check it out, be sure to let us know. Like I said before, that's how we learn things here.
    Can you tell me what the "Album by Artist" column is for?
    Its main use is when the you're viewing your entire Library. If you have a record with tracks by a number of different artists, the Album by Artist sort will keep that album together unlike an Artist sort which will break it up ... unless of course you've set up the Apply Sort Field option.
    The Album by Artist column has been around longer than the Sort Field entry and, as far as I can tell, there does seem to be some overlap in what the two of them accomplish ... although the newer Sort Field certainly gives you much more flexibility in organizing your Library than Album by Artist does.
    Also can an artists catalogue be sorted chronologically, rather than alphabetically?
    Have you tried the Album by Year sort? Click on Album by Artist column heading and it will change to Album by Year. Is that what you're aiming for? If not post back and explain what you want to achieve.

  • Some basic questions about rmi registry  context  "bind" and "lookup"

    We have more processing to do than can be accomplished with a single computer. To solve the problem I've implemented a distributed computing solution using RMI. (The first time I saw RMI was about 2 weeks ago, so please bear with me!)
    The implementation is a proof of concept not a fully fleshed out system. I have one "Workunit Distributor" computer and any number of "Data Processor" computers all on the same lan segment. "Workunit Distributor" and "Data Processor" computers are both RMI client and server to each other. The "Data Processor" computers are given the ip address and name of the "Data Distributor" on the commandline when they start. They communicate their willingness to receive and process a workunit to the ""Workunit Distributor" via a RMI call. Work units are sent to available "DataProcessors" and results are eventually returned to the "WorkunitDistributor" (minutes or hours later). The model program works quite well, and appears to be capable of doing the processing we need to get done.
    But now that it seems viable, I've been asked to make it a little more scalable, flexible and self configuring. In particular, instead of one "Workunit Distributor", any number of "Workunit Distributors" should be allowed to show up or disappear from the lan at any time and the system should continue to function. I've worked out a good scheme for how this can be done, but I have a couple of questions about the RMI registry (registries?). I'm trying to keep from implementing some functionality that may already be available as a library or subsystem.
    With my current model design, each computer binds to its own registry with a unique name. For instance:
    CRDataProcessorImpl crdpi = new CRDataProcessorImpl(svr);
    Context crDataProcessingContext = new InitialContext();
    crDataProcessingContext.bind("rmi:"+hostName, crdpi);
    Currently the "Data Processors" get the info they need for a Context lookup() of the one and only "Workunit Distributor" from the commandline. And the info the "Workunit Distributor" needs to do a Context lookup() of a "DataProcessor" is passed to it from each "DataProcessor" via a RMI call.
    But in the newer (yet to be implemented) scheme where any and all "Workunit Distributors" show up and disappear whenever they feel like, the naming bootstrapping scheme described above won't work.
    I can imagine a few ways of solving this problem. For instance, having "Workunit Distributors" multicast their contact information on the lan and have a worker thread on each "Data Processor" keep track of the naming information that was multicast. Another alternative (more organized, but more complex) might be to have a dedicated host with a "well known" address and port that "Workunit Distributors" and "Data Processors" could all go to, to register or look up at an application level. Sort of a "domain name service" for RMI. But both these schemes look like a lot of work to implement , debug and maintain.
    The BEST thing would be if there was one plain vanilla RMI registry that was usable by all RMI enabled computers instead of having each computer have its own local name registry. In volume 2 of the Core Java2 book it says that every registry must be local. I'm only hoping there's been progress since the book was published and now a central rmi registry is available.
    If you have any ideas about this I'd like to hear what you know.
    Thanks in advance for any advice.
    Lenny Wintfeld
    ps - I don't believe web services, as full featured as it is, is a useful alternative. I'm moving 100's (in the future possibly 1000's) of megabytes back an forth for processing.

    The local bind/rebind/unbind restriction is still there and it will always be there.
    I would look at
    (a) RMI/IIOP, where you use COSNaming as a registry, which doesn't have that registriction, and which also has location-independent object identifiers
    (b) Jini.

  • Where to post question about backing up new G580 laptop

    I'm new to Lenovo products and this forum and would like to know where I am to post a question about backing up a new G580 laptop.
    I would appreciate any help.
    Solved!
    Go to Solution.

    Hi kec234, welcome to the forum,
    the best place would probably be in the Lenovo 3000 & Essential notebooks board; it's the correct board for your system and who knows after searching through it you may find an existing thread on the same subject??
    Regards
    Andy  ______________________________________
    Please remember to come back and mark the post that you feel solved your question as the solution, it earns the member + points
    Did you find a post helpfull? You can thank the member by clicking on the star to the left awarding them Kudos Please add your type, model number and OS to your signature, it helps to help you. Forum Search Option T430 2347-G7U W8 x64, Yoga 10 HD+, Tablet 1838-2BG, T61p 6460-67G W7 x64, T43p 2668-G2G XP, T23 2647-9LG XP, plus a few more. FYI Unsolicited Personal Messages will be ignored.
      Deutsche Community     Comunidad en Español    English Community Русскоязычное Сообщество
    PepperonI blog 

  • Re several posting here about draining the battery...

    I've had my MacBook for about 1 1/2 months now and have read several posting about battery life and running the battery down to zero and all the bad things that could happen IF I allowed this to occur.
    This morning I decided to run my down to zero as I only had about 15 minutes left on the battery gauge. I think when it was just under 10 minutes left, I got a warning that I should charge my battery as it would soon be depleted (it also said that it would save any work I had open.) So, I just let it run until suddenly went to sleep. As soon as I plugged it in and moved my mouse, it woke back up.

    And your question is? This is normal behavior.

  • Is there any other solution for Adobe Flash plugin crashing than the posted one about updating Flash and Mozilla? I cannot open any PDF files online and updated both Mozilla and Flash player to most recent with no change in the crashing.

    I was able to open PDFs online until version 8. Since upgrading to version 9 and now 10, I have crashes every time I try to open a PDF online and can see the form briefly for about two seconds before the plugin crashes. I followed instructions on the solution to update Adobe Flash and Mozilla, and they are both to the most recent version and it still crashes every time, no dent in the symptoms with the upgrades. I tried also downgrading to version 3, and it sill crashes. Although in some cases I can get around by saving the PDFs for reading them through Acrobat on my PC, it is a hassle as I do not want to save everything to my drive just to see what it is, plus sometimes forms are generated on a click and I cannot see these forms at all.
    I had to migrate to Chrome as I needed the PDFs and could not wait any longer - any suggestions to make Mozilla work again would be appreciated.

    Hi,
    Please check if this happens in [https://support.mozilla.com/en-US/kb/Safe%20Mode Safe Mode] after enabling only the PDF plugin in '''Tools''' ('''Alt''' + '''T''') > '''Add-ons''' > '''Plugins'''. You can also '''Disable''' the PDF plugin and try an alternative, for eg. [https://addons.mozilla.org/en-US/firefox/addon/pdfjs/?src=cb-dl-created pdf.js]. Please also go through the add-on reviews, ratings, help and FAQ.
    [http://kb.mozillazine.org/Problematic_extensions Problematic Extensions]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20extensions%20and%20themes Troubleshooting Extensions and Themes]
    [http://support.mozilla.com/en-US/kb/Uninstalling+add-ons Uninstalling Add-ons]
    [http://kb.mozillazine.org/Uninstalling_toolbars Uninstalling Toolbars]
    [http://support.mozilla.com/en-US/kb/Cannot%20uninstall%20an%20add-on Cannot Uninstall Add-on]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20plugins Troubleshooting Plugins]
    [http://kb.mozillazine.org/Testing_plugins Testing Plugins]

  • Please do not post questions about Adobe software in this forum

    Hello, welcome to the forums.
    What you may not realise is that each Adobe product has its own specialist forum, and it's very important to choose the right one. This forum isn't about products, it's about comments on the forums themselves.
    So, please go back to http://www.adobe.com/support/forums.html and choose the right forum. But first, make sure you know the name of your product.
    When you look at the list of messages in a forum, there is a box above that describing what the forum is for. Take care to read it carefully, or you may put your message in a forum where there are no experts who understand your question. Also, check to see whether there are any "FAQ" (Frequently Asked Questions) sections in the product forum, and search for previous discussions about the question you wish to ask before starting a new one.

    this is maybe because users are directly forwarded to this forum when looking for a contact in the otn-contact page. i suggest to change the contact-site and the direct the users to the "forums home" page.
    trevi

  • General Question about RMI

    Okay here is what I am trying to do:
    I work for a small consulting firm and part of what we do is we process a tremendous amount of data using a suite of tools written in C/C++. We have a Java application which is really just a script (Written in standard Java) that makes a whole bunch of system calls, namely the commands in the suite of tools written in C. What we want to do is, is over our network, farm some of these system calls (or maybe even just CPU cycles) to multiple machines with the same suite of tools on them. Is this possible/plausible using RMI? Is there something that would be better for it? We have plenty of bandwidth across our network and most of the data is stored on a 15+ TB SAN.
    Also any books on the subject that you could recommend would be very helpful as well :)
    Any help would be very much appreciated.

    ofcourse passing over socket is always an option. Sure in that case you will have to serialize the object yourself or make a mini-protocol of some kind.
    In our project we also use XML to pass object between C++ and Java world, instead of using CORBA.

  • Puzzled about this kernel panic

    I got this while using an external DJ controller (Traktor S2) last night.  I'm very good about keeping the software and drivers up to date (last update was this month):
    Interval Since Last Panic Report:  749485 sec
    Panics Since Last Report:          1
    Anonymous UUID:                    658E320C-7858-090A-3133-F00AE89970CE
    Sat Aug  3 21:35:50 2013
    panic(cpu 1 caller 0xffffff80076b8655): Kernel trap at 0xffffff800767747e, type 13=general protection, registers:
    CR0: 0x000000008001003b, CR2: 0x0000000102627ff8, CR3: 0x0000000058efb028, CR4: 0x00000000000206e0
    RAX: 0x65ffff800ee2ea68, RBX: 0x0000000000000000, RCX: 0x00000000091f0000, RDX: 0xffffff8007cbdac0
    RSP: 0xffffff80f841bbc0, RBP: 0xffffff80f841bc10, RSI: 0x0000000000000000, RDI: 0xffffff8007cbdac0
    R8:  0xfffffffffffff000, R9:  0xffffff801af73a58, R10: 0x000000001564c000, R11: 0x0000000000000200
    R12: 0x65ffff800ee2ea68, R13: 0x0000000000000080, R14: 0x0000000000000000, R15: 0x0000000000000000
    RFL: 0x0000000000010292, RIP: 0xffffff800767747e, CS:  0x0000000000000008, SS:  0x0000000000000010
    Fault CR2: 0x0000000102627ff8, Error code: 0x0000000000000000, Fault CPU: 0x1
    Backtrace (CPU 1), Frame : Return Address
    0xffffff80f841b860 : 0xffffff800761d626
    0xffffff80f841b8d0 : 0xffffff80076b8655
    0xffffff80f841baa0 : 0xffffff80076ce17d
    0xffffff80f841bac0 : 0xffffff800767747e
    0xffffff80f841bc10 : 0xffffff800767c637
    0xffffff80f841bc40 : 0xffffff8007676524
    0xffffff80f841bc70 : 0xffffff80076759b0
    0xffffff80f841bcb0 : 0xffffff800766737c
    0xffffff80f841bda0 : 0xffffff800766b0e0
    0xffffff80f841bdd0 : 0xffffff8007635d03
    0xffffff80f841be10 : 0xffffff80079566d7
    0xffffff80f841be80 : 0xffffff8007968907
    0xffffff80f841bf10 : 0xffffff8007968d97
    0xffffff80f841bf50 : 0xffffff800761b6e1
    0xffffff80f841bf90 : 0xffffff80076b8c63
    0xffffff80f841bfb0 : 0xffffff80076ce14c
    BSD process name corresponding to current thread: Traktor
    Mac OS version:
    12E55
    Kernel version:
    Darwin Kernel Version 12.4.0: Wed May  1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64
    Kernel UUID: 896CB1E3-AB79-3DF1-B595-549DFFDF3D36
    Kernel slide:     0x0000000007400000
    Kernel text base: 0xffffff8007600000
    System model name: MacBookPro6,2 (Mac-F22586C8)
    System uptime in nanoseconds: 42537471594008
    last loaded kext at 36569802976360: com.apple.iokit.IOUSBAttachedSCSI          1.0.3 (addr 0xffffff7f89a88000, size 49152)
    last unloaded kext at 36631974621319: com.apple.driver.AppleUSBCDC          4.1.23 (addr 0xffffff7f89a85000, size 12288)
    loaded kexts:
    com.serato.usb.kext          2.3.0
    com.rim.driver.BlackBerryUSBDriverInt          0.0.68
    com.apple.iokit.IOUSBAttachedSCSI          1.0.3
    com.apple.filesystems.ntfs          3.10
    com.apple.filesystems.smbfs          1.8.4
    com.apple.driver.AudioAUUC          1.60
    com.apple.driver.AppleHWSensor          1.9.5d0
    com.apple.filesystems.autofs          3.0
    com.apple.iokit.IOBluetoothSerialManager          4.1.4f2
    com.apple.driver.AGPM          100.12.87
    com.apple.driver.AppleMikeyHIDDriver          122
    com.apple.driver.AppleHDA          2.3.7fc4
    com.apple.iokit.IOUserEthernet          1.0.0d1
    com.apple.Dont_Steal_Mac_OS_X          7.0.0
    com.apple.driver.AppleMikeyDriver          2.3.7fc4
    com.apple.driver.AppleIntelHDGraphics          8.1.2
    com.apple.driver.AppleIntelHDGraphicsFB          8.1.2
    com.apple.GeForce          8.1.2
    com.apple.driver.AppleUpstreamUserClient          3.5.10
    com.apple.driver.AppleMCCSControl          1.1.11
    com.apple.iokit.BroadcomBluetoothHCIControllerUSBTransport          4.1.4f2
    com.apple.driver.AppleSMCPDRC          1.0.0
    com.apple.driver.AppleSMCLMU          2.0.3d0
    com.apple.driver.AppleLPC          1.6.0
    com.apple.driver.AppleMuxControl          3.4.5
    com.apple.driver.ApplePolicyControl          3.4.5
    com.apple.driver.ACPI_SMC_PlatformPlugin          1.0.0
    com.apple.driver.SMCMotionSensor          3.0.3d1
    com.apple.driver.AppleUSBTCButtons          237.1
    com.apple.driver.AppleUSBTCKeyboard          237.1
    com.apple.driver.AppleIRController          320.15
    com.apple.driver.AppleUSBCardReader          3.1.7
    com.apple.AppleFSCompression.AppleFSCompressionTypeDataless          1.0.0d1
    com.apple.AppleFSCompression.AppleFSCompressionTypeZlib          1.0.0d1
    com.apple.BootCache          34
    com.apple.iokit.SCSITaskUserClient          3.5.5
    com.apple.driver.XsanFilter          404
    com.apple.iokit.IOAHCIBlockStorage          2.3.1
    com.apple.driver.AppleUSBHub          5.5.5
    com.apple.driver.AirPort.Brcm4331          615.20.17
    com.apple.driver.AppleFWOHCI          4.9.6
    com.apple.driver.AppleAHCIPort          2.5.2
    com.apple.iokit.AppleBCM5701Ethernet          3.6.1b4
    com.apple.driver.AppleUSBEHCI          5.5.0
    com.apple.driver.AppleEFINVRAM          1.7
    com.apple.driver.AppleSmartBatteryManager          161.0.0
    com.apple.driver.AppleACPIButtons          1.7
    com.apple.driver.AppleRTC          1.5
    com.apple.driver.AppleHPET          1.8
    com.apple.driver.AppleSMBIOS          1.9
    com.apple.driver.AppleACPIEC          1.7
    com.apple.driver.AppleAPIC          1.6
    com.apple.driver.AppleIntelCPUPowerManagementClient          196.0.0
    com.apple.nke.applicationfirewall          4.0.39
    com.apple.security.quarantine          2.1
    com.apple.driver.AppleIntelCPUPowerManagement          196.0.0
    com.apple.driver.AppleUSBAudio          2.9.0f8
    com.apple.kext.triggers          1.0
    com.apple.iokit.IOSerialFamily          10.0.6
    com.apple.driver.DspFuncLib          2.3.7fc4
    com.apple.iokit.IOAudioFamily          1.8.9fc11
    com.apple.kext.OSvKernDSPLib          1.6
    com.apple.iokit.IOSurface          86.0.4
    com.apple.iokit.IOBluetoothFamily          4.1.4f2
    com.apple.nvidia.nv50hal          8.1.2
    com.apple.driver.AppleSMBusController          1.0.11d0
    com.apple.NVDAResman          8.1.2
    com.apple.iokit.AppleBluetoothHCIControllerUSBTransport          4.1.4f2
    com.apple.driver.AppleHDAController          2.3.7fc4
    com.apple.iokit.IOHDAFamily          2.3.7fc4
    com.apple.iokit.IOFireWireIP          2.2.5
    com.apple.driver.AppleSMBusPCI          1.0.11d0
    com.apple.driver.AppleBacklightExpert          1.0.4
    com.apple.driver.AppleGraphicsControl          3.4.5
    com.apple.driver.IOPlatformPluginLegacy          1.0.0
    com.apple.driver.IOPlatformPluginFamily          5.3.0d51
    com.apple.iokit.IONDRVSupport          2.3.7
    com.apple.iokit.IOGraphicsFamily          2.3.7
    com.apple.driver.AppleSMC          3.1.4d2
    com.apple.driver.AppleUSBMultitouch          237.3
    com.apple.iokit.IOUSBHIDDriver          5.2.5
    com.apple.driver.AppleUSBMergeNub          5.5.5
    com.apple.iokit.IOSCSIMultimediaCommandsDevice          3.5.5
    com.apple.iokit.IOBDStorageFamily          1.7
    com.apple.iokit.IODVDStorageFamily          1.7.1
    com.apple.iokit.IOCDStorageFamily          1.7.1
    com.apple.iokit.IOAHCISerialATAPI          2.5.1
    com.apple.iokit.IOUSBUserClient          5.5.5
    com.apple.iokit.IO80211Family          530.4
    com.apple.iokit.IOFireWireFamily          4.5.5
    com.apple.iokit.IOAHCIFamily          2.3.1
    com.apple.iokit.IOEthernetAVBController          1.0.2b1
    com.apple.iokit.IONetworkingFamily          3.0
    com.apple.driver.AppleEFIRuntime          1.7
    com.apple.iokit.IOHIDFamily          1.8.1
    com.apple.iokit.IOSMBusFamily          1.1
    com.apple.security.sandbox          220.3
    com.apple.kext.AppleMatch          1.0.0d1
    com.apple.security.TMSafetyNet          7
    com.apple.driver.DiskImages          345
    com.apple.driver.AppleKeyStore          28.21
    com.apple.iokit.IOUSBMassStorageClass          3.5.1
    com.apple.driver.AppleUSBComposite          5.2.5
    com.apple.iokit.IOSCSIBlockCommandsDevice          3.5.5
    com.apple.iokit.IOStorageFamily          1.8
    com.apple.iokit.IOSCSIArchitectureModelFamily          3.5.5
    com.apple.iokit.IOUSBFamily          5.6.0
    com.apple.driver.AppleACPIPlatform          1.7
    com.apple.iokit.IOPCIFamily          2.7.3
    com.apple.iokit.IOACPIFamily          1.4
    com.apple.kec.corecrypto          1.0
    System Profile:
    Model: MacBookPro6,2, BootROM MBP61.0057.B0F, 2 processors, Intel Core i5, 2.4 GHz, 8 GB, SMC 1.58f17
    Graphics: Intel HD Graphics, Intel HD Graphics, Built-In, 288 MB
    Graphics: NVIDIA GeForce GT 330M, NVIDIA GeForce GT 330M, PCIe, 256 MB
    Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1067 MHz, 0x857F, 0x483634353155363446373036364700000000
    Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1067 MHz, 0x857F, 0x483634353155363446373036364700000000
    AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x93), Broadcom BCM43xx 1.0 (5.106.98.100.17)
    Bluetooth: Version 4.1.4f2 12041, 2 service, 11 devices, 1 incoming serial ports
    Network Service: AirPort, AirPort, en1
    Serial ATA Device: SAMSUNG SSD 830 Series, 256.06 GB
    Serial ATA Device: MATSHITADVD-R   UJ-898
    USB Device: hub_device, 0x0424  (SMSC), 0x2514, 0xfa100000 / 2
    USB Device: Internal Memory Card Reader, apple_vendor_id, 0x8403, 0xfa130000 / 5
    USB Device: Apple Internal Keyboard / Trackpad, apple_vendor_id, 0x0236, 0xfa120000 / 4
    USB Device: BRCM2070 Hub, 0x0a5c  (Broadcom Corp.), 0x4500, 0xfa110000 / 3
    USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x8218, 0xfa113000 / 8
    USB Device: hub_device, 0x0424  (SMSC), 0x2514, 0xfd100000 / 2
    USB Device: Built-in iSight, apple_vendor_id, 0x8507, 0xfd110000 / 4
    USB Device: IR Receiver, apple_vendor_id, 0x8242, 0xfd120000 / 3

    Two third-party kernel modifications are installed, the Serato driver and "Blackberry Desktop Manager." There will be less chance of a panic if you uninstall the latter according to the developer's instructions, at least when you plan on using the machine to DJ.

Maybe you are looking for

  • Getting Error while trying to import VacationRequest Sample

    Hello All, Am getting the following error while tring to import Vacation Request Sample: "One or more metadata store location(s) configured in file:/D:/VacationRequestApp/.adf/MetaInf/adf-config.xml are invalid Soa Project will not compile. Please ed

  • Can not turn wi fi on

    I am not able to use wi fi on my Mac. Worked and then all,of a sudden it stopped. I have tried to change it under settings but it won't recognize the change. I can use the Internet via cable connection.

  • Closable Tab in JTabbedPane

    Hi I trying to develop a Closable Tab in JTabbedPane. The close button should appear after/before the tab title all the time (like in JBuilder IDE). I know the trick where close button appears when the mouse is in that area, but i want it to be displ

  • Zen Touch transfer er

    I finally was able to get my computer to recognize my zen player but now i cant transfer more than 27-00 songs depending which one i start at. i called customer service and they told me to download all the new updates and stuff and installed them and

  • The home sharing option disappears. ??

    I have two PCs and I am trying to turn on the home sharing and I go through the steps until it says "Home sharing is now on." etc. and the button says "done" and if I click it, the home sharing option on the left disappears. Why!?