Recommended Windows  multipatform ports for RMI registry....

Hi,
Can anyone recommend suitable RMI registry ports that will work across different windows platforms (NT/2000/XP) as I have two RMI servers running on a host machine.
Presently I have one RMI server object bound to a registry on port 1099 and the other on port 2001. My RMI client correctly connects on Windows 2000 for both of these however Windows XP doesn't work for port 1099. Also port 2001 does not work over the internet and yes I have configured the firewall correctly!
Any recommendations for using correct ports please?
Regards,
Oneal

1. Why do you need two registries?
2. There is some amount of chaos in port numbers; 1099 is a "registered" port, where exclusive use is not guaranteed.
o You can google for "well known port" and you will easily find a list of registered ports; you could pick one from someone you think is out of business or where the use is patently clear to be obsolete.
o You could choose an arbitrary port number in the dynamically-assigned range,.
Here's an excerpt from a document I found:
The port numbers are divided into three ranges: the Well Known Ports,
the Registered Ports, and the Dynamic and/or Private Ports.
The Well Known Ports are those from 0 through 1023.
The Registered Ports are those from 1024 through 49151
The Dynamic and/or Private Ports are those from 49152 through 65535

Similar Messages

  • Port 1099 being used by other processes ,need an alt port for RMI-Registry

    I am using port 1099 for RMI and the o/s is windows 2003.
    We want that the RMI registry shud automatically be started with the windows startup processes.But we found that some other processes are usoing the same port.
    Is there any other port which can be used for the same?
    or any method to make other processes release the port forcefully.

    If you read the documentation or do a quick google search, you will discover the rmiregistry program can be assigned any port you wish. Simply invoke via:
    rmiregistry -h from windows or "man rmiregistry" from mac or unix and you will be greeted with:
    Usage: rmiregistry <options> <port>
    In a nut shell just specify the port:
    i.e.
    rmiregistry 5000
    etc...
    Hope this helps.
    -Lemont

  • Setting return port for RMI

    Is there a way to define the port RMI connects back to the client on? By default a random port number is used which is not acceptable to our security guys.

    If you read the documentation or do a quick google search, you will discover the rmiregistry program can be assigned any port you wish. Simply invoke via:
    rmiregistry -h from windows or "man rmiregistry" from mac or unix and you will be greeted with:
    Usage: rmiregistry <options> <port>
    In a nut shell just specify the port:
    i.e.
    rmiregistry 5000
    etc...
    Hope this helps.
    -Lemont

  • ACS Port numbers - RMI

    Hi All,
    I'm jus enquiring about the 'Ports to open in Firewalls' section in the user guide for ACS 5.2
    There are two sets of port numbers I don't fully understand and I'm looking for the community for help.
    Firstly What is RMI and what is it needed for? Where will the ACS be communication to or from on these ports?
    RMI
    TCP 2020 (for RMI registry service)
    TCP 2030 (for incoming calls)
    Secondly
    View Collector
    UDP 20514
    Is this only used for Network devices who sed syslog messages on this port or is there another use?
    Thanks in advance
    Ciaran

    This is for a distributed system, so if two ACS are located at different sites with firewalls that seperate the two. We will need these ports opened in between the two for the distributed system to work.
    Thanks,
    Tarik Admani

  • Windows Server 2008 R2 dynamic assigned ports for currently logged in users

    Hi,
    How can I find out currently allocated dynamic ports for a user in windows server 2008? 
    From registry, I can see the dynamic port range for an application (1025~49151) and system dynamic port range is 49152~65534.
    However, I am looking for the dynamic port range for users currently logged into the server.
    Please assist.
    Thanks,
    Suranjit 

    If you want to list all ports the server is currently listening on as well as the processes using them, netstat can help you with that.
    netstat -aon | find /i "listening"
    Where the -o will give you the Process ID, which can be matched up with the username.

  • How to use a fixed port for remote assistance in windows 8.1 behind a nat router freebox?

    Hello,
    Before to use remote assistance in windows 8.1, i need to configure my nat router freebox.
    But remote assistance ( msra.exe ) use a dynamique port and never the same.
    How to use a fixed port for remote assistance ini windows 8.1 ?
    And why i can't use easy connect ?
    i read that the router must implement the PNRP protocol. I think it's a propriatary microsoft's protocol unknow on my router.
    Thanks

    Hello,
    Very good. It's a big range ( 255 mini from 49152 )  for a single port but if it's the only one possibility...
    You are very helpfull ( i don't know if it's a good english but you make me very happy )
    Merci beaucoup

  • How to Disable Usb Selective Suspend Setting For Windows 8.1 Via Gpo/Registry

    Hello everyone,
    Could help me with a question ?
    How do I disable USB Seletive Suspended settings in Windows 8.1 is GPO / Registry ?

    Good morning.
    The procedure worked , sorry for the delay because the tests were running in the environment, will replicate via GPO solution.
    I appreciate the help .

  • MW Port for Windows Server

    We don't have any Unix or Linux server. Is there a port for Windows 2003?
    Paul Nguyen
    Clean Water Services
    Apps 11i DBA, OCP

    There is NO port for MW to run on a Windows server. The MW node must be UNIX or Linux.
    You may have Windows nodes in your Applications environment, but you will not be able to fully take advantage of the automation. Some past Windows Applications customers have used the tool simply for its automatic filtering, status tracking, reporting, and timing mechanisms (and to make sure they did all the right steps in the right order!).
    The choice is up to you! :-)

  • Windows Server 2008 opening ports for sql

    Hello we upgraded our server from 2003 to 2008 and we are trying to open up the ports for the sql server and reporting services so the users can access both database and report manager from their desk.  we only have one location so its not like we
    need people from different locations accessing it.  but for some reason the users still cant access the database even after opening ports 1433 and 80.  Can anyone help please

    Hi
    Can you explain why does he need turn off the firewall on prod. server? Running SQL
    Browser service make sense if we use named instance, the OP did not mention that. Moreover if we enable SQL Browser
    service we probably need to add UDP port 1434 to the firewall.
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Can anybody help me to understand this RMI registry service code?

    RMI is so difficult to me. please let me know following code what it means.
    If this class is instantiated with 50000 port number,
    Does RMI Registry Service get started with 50000 port number in place of rmiregistry commands?
    And I don't have to execute rmiregistry command?
    thanks in advance.
    import java.rmi.AccessException;
    import java.rmi.AlreadyBoundException;
    import java.rmi.NotBoundException;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.rmi.registry.Registry;
    import java.rmi.server.ObjID;
    import java.rmi.server.RemoteServer;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import sun.rmi.server.UnicastServerRef;
    import sun.rmi.transport.LiveRef;
    * Registry implementation.
    * @version 1.0
    public class RegistryImpl extends RemoteServer implements Registry {
         private static final long serialVersionUID = -7162736590129110751;
         private Hashtable bindings;
        private static ObjID id = new ObjID(0);
         * @param i port number
         * @throws RemoteException
        public RegistryImpl(int i) throws RemoteException {
            bindings = new Hashtable(101);
            LiveRef liveref = new LiveRef(id, i);
            setup(new UnicastServerRef(liveref));
        private void setup(UnicastServerRef unicastserverref) throws RemoteException {
            super.ref = unicastserverref;
            unicastserverref.exportObject(this, null, true);
         * Lookup a remote object.
         * @param name Name of the remote object.
         * @return Remote object of the specified name.
        public Remote lookup(String name) throws RemoteException, NotBoundException {
    //        Logger.debug("NamingService", "lookup: " + name);
            Remote obj;
            synchronized(bindings) {
                obj = (Remote)bindings.get(name);
                if(obj == null)
                    throw new NotBoundException(name);
            return obj;
         * Binds the specified name to a remote object.
         * @param name A URL-formatted name for the remote object.
         * @param obj A reference for the remote object (usually a stub).
        public void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException {
    //        Logger.debug("NamingService", "bind: " + name);
            checkAccess("Registry.bind");
            synchronized(bindings) {
                if(bindings.containsKey(name))
                    throw new AlreadyBoundException(name);
                bindings.put(name, obj);
         * Destroys the binding for the specified name that is associated with a remote object.
         * @param name A URL-formatted name for the remote object.
        public void unbind(String name) throws RemoteException, NotBoundException, AccessException {
    //        Logger.debug("NamingService", "unbind: " + name);
            checkAccess("Registry.unbind");
            synchronized(bindings) {
                if(!bindings.containsKey(name))
                    throw new NotBoundException(name);
                bindings.remove(name);
         * Rebinds the specified name to a new remote object. Any existing binding
         * for the name is replaced.
         * @param name A URL-formatted name for the remote object.
         * @param obj A reference for the remote object (usually a stub).
        public void rebind(String name, Remote obj) throws RemoteException, AccessException {
    //        Logger.debug("NamingService", "rebind: " + name);
            checkAccess("Registry.rebind");
            bindings.put(name, obj);
         * Returns an array of the names bound in the registry.
         * @return An array of the names bound in the registry.
        public String[] list() throws RemoteException {
            String[] names;
            synchronized(bindings) {
                int i = bindings.size();
                names = new String;
    Enumeration e = bindings.keys();
    while(--i >= 0)
    names[i] = (String)e.nextElement();
    return names;
    * TO-DO
    public static void checkAccess(String s) throws AccessException {
    // check if s is in the list of agents.
    if(true)
    else
    throw new AccessException("");
    public static ObjID getID() {
    return id;

    You don't have any need to understand this code. The complication is due to the registry needing a fixed objectID.
    You just need to know the methods of java.rmi.registry.LocateRegistry class. This allows you to start an RMI Registry inside your JVM and give it any TCP port number you like.

  • RMI Registry as a service.

    I have found evidence that supports the possibility of rmiregistry.exe running as a service on windows, but I have not found any "How-To" for it. I wrote a batch file to run the command:
    sc create "RMI Registry" binpath= "c:\Program Files\Java\jdk1.6.0_03\jre\bin\rmiregistry.exe" displayname= "RMI Registry" start= "auto"
    However, when I attempt to start the service, I get the message:
    ERROR 1053: The service did not respond to the start or control request in a timely fashion.
    Where did I go wrong or is it just not possible?

    Do some searching in this forum and you may find some more leads. Also: try hard to google for it.
    The registry exe simply does not have the interfacing required to act as a service.
    So what most people do is try to write or obtain a service wrapper that can talk to/be controlled by the service manager, and which can also run the registry exe as another process.

  • Error in re-creating RMI registry when reloading Tomcat server.

    Hi,
    I use LocateRegistry.createRegistry() in a servlet which is load-on-startup. I've unexport the registered remote object in the HttpServlet.destroy().
    But when I reload the tomcat server, such an exception ocurrs:
    java.rmi.server.ExportException: internal error: ObjID already in use
            at sun.rmi.transport.ObjectTable.putTarget(ObjectTable.java:168)
            at sun.rmi.transport.Transport.exportObject(Transport.java:69)
            at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:190)
            at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382)
            at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116)
            at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:145)
            at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:92)
            at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:78)
            at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:164)
            at RmiUtils.rebindLocal(RmiUtils.java:86)Here is the binding code in RmiUtils.rebindLocal:
            try {
                Naming.rebind(url, rmiImpl);
            } catch (RemoteException ce) {
                if (!ru.isLocalhost()) {
                    ce.printStackTrace();
                    // cannot cache
                    return;
                } else {
                    // try to create the registry in local machine if not created
                    try {
                        LocateRegistry.createRegistry(ru.getPort());
                        Naming.rebind(url, rmiImpl);
                    } catch (RemoteException e) {
                        System.err.println("Failure in create Registry on port "
                                + ru.getPort() + ", maybe it's been created already!");
                        e.printStackTrace();// handle exception
            }Can anybody help?
    Thanks.

    Hi
    I havent code for quite a while.
    I would think that this wont work.
    The registry is created on startup (possibly init method in ur servlet) but it is never destroyed.
    You are better off starting the registry externally to ur servlet engine, and then use do a bind/rebind on startup, unbind on destroy.
    Hope this helps.

  • RMI registry inside tomcat

    Hello,
    I'm wondering if any of you have previous experiences in the following situation.
    I have a linux server with tomcat 5.0.28 that is supposed to act as an RMI end point for clients connecting with the aforementioned RMI to do some persisting stuff. Now I figured that the easiest way is to create a servlet that creates the RMI registry and binds my server objects (so that's in the servlet's init(), with 1 load-on-startup, the servlet doesn't do anything else, at least yet).
    Now problems arise: my linux server is logging "context is read-only" when trying to bind the objects to RMI. Testing on my windows laptop doesn't show the same error for some reason (although it doesn't work properly either). This is apparently normal, as the contexts are supposed to be read-only.
    Thing is, I wouldn't want to run a separate rmiregistry on the server, if possible to do it with a simple servlet. But is this the easiest way?
    Thank you in advance,
    yours truly, in sickness and in health,
    Jussi

    'Context is read-only' is not a Registry error
    message. You are trying to bind to something else.
    Show us some code.Well, I'm not doing a lot of binding, so I'm assuming it's this part:
                   DDBServer stub = (DDBServer)UnicastRemoteObject.exportObject(this, 0);
                   Registry registry = LocateRegistry.getRegistry();
                   registry.rebind("DDBServer", stub);The error message is:
    2007-04-18 14:06:40 NamingContextListener[Catalina/localhost/DDBServer]: Creation of the naming context failed: javax.naming.NamingException: Context is read only

  • 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.

  • Shutting down a RMI registry programmatically

    If I start up a RMI registry in my code using the following:
    Registry reg = LocateRegistry.createRegistry(port);How do I shut it down programmatically? I did a scan on the Registry api and did not find a suitable method. I am looking for a method like close() in ServerSocket to stop listening on a port.

    UnicastRemoteObject.unexportObject(reg, true).
    This will only work if 'reg' is still the same object returned by LocateRegistry.createRegistry(). It won't work on a result of LocateRegistry.getRegistry() (because that is a stub, not the actual remote object).

Maybe you are looking for

  • MAPToolkit 9.1 Installation on Windows 2008 R2 Std SP1 64-bit fails

    Hi, I tried an installation of the MAPToolkit V9.1 on Windows 2008 R2 SP1 with an SQL Server 2012 MAPS instance installed, but it fails with: Applying execute package: MAPSetup_x64.msi, action: Install,  path: C:\ProgramData\Package Cache\{D1E2ED68-9

  • Getting the file at runtime in package interfaces

    Hello Friends, ORACLE ODI 11G. I have a package where in which I am having multiple interfaces. The purpose of this package is to load the Text file to Oracle DB ( 11g ) . All the interfaces will be processing the same text file - I have a project va

  • Export sales  pricing procure-

    Hello Gurus Goodafternoon every body, We have one requirement  for export sales: for this industry   no excise duty  is there  but  they will pay customs  duty  ,   how to configure in  export pricing procedure ( for this industry all other taxes are

  • How to set my own Ranges in Charts

    Hi- I've just started playing with making charts in Numbers. When I select some cells and then ask Numbers to produce a chart it does so and sets it's own values for the Y-Axis. How can I set MY OWN values for the upper and lower limits (ie. 0 at the

  • Problem for displaying image in jsp

    I like to retrieve and display image from database in jsp file. Now, image has been retrieved and store in session. But it cannot be displayed in jsp. Who can help me? Thanks a lot! Codes like below: <% byte[] b = (byte[])session.getAttribute("sessio