Performance: RMI vs JavaSpaces
Hi, I'm new in making distributed applications using Java language.
My question is, which technology should I use: core RMI or JavaSpaces? The project, which I'm making is a simple real-time-strategy game engine. I'm looking for technology, which generate the lowest network traffic. In first phases of my project I was programming using sockets and my own protocol. But it was hard to extend the existing system. So, I've decided to use some higher-level technology like RMI or JavaSpaces (I guess, that EJB is not quite good option :).
Logical connections at the application level aren't persistant for RMI. Request/response like http. With a regular tcp socket you can push data back to a client unprompted. Useful in online games where the game state is being updated in real-time. RMI clients initiate function calls at regular intervals to get updates. Significant for minimizing network usage as there can be no fresh data to retrieve. So the more often you update the more current (real-time) you are, but the more data you push across the network.
Similar Messages
-
How to encapsulate RMI in Http request ?
Hello,
I have an java applet that uses java RMI technology to communicate with the server. I would like to modify this architecture a little. Is it possible to wrappe RMI invocation in http web request. If yes how to do that ? Did you have samples of code ?
Thanks a lot.RMI uses a specialised protocol which is more complex than it appears at first. It might be possible to perform RMI calls use a HTTP transport, but you would lose most of the value of using HTTP.
There are libraries which allow you to turn method calls into HTTP Web Service request, like RMI does, but no RMI is used. -
RMI optimizations (stub sharing, local calls)
Hi,
Suppose I have the following scenario involving one client and one server:
1. the server exports a RMI object implementing "MyInterface" with a method "void op(MyInterface myObject)"
2. the client obtains two references to the same remote object instance, lets call them myObjectRef1 and myObjectRef2
3. the client calls the given method with one of the obtained references as a parameter, say myObjectRef1.op(myObjectRef2);
My two questions are:
In step 2: Will the RMI implementation automatically recognize that both remote reference point to the same object instance and use one shared stub? Or will there be two totally independent stubs?
In step 3: When the client invokes the method, the stub that is passed points to a RMI object that could be accessed via a local object reference on the server that is executing the method.
Theroretically either the serialized stub could be substituted by a local object reference when the method call is unmarshalled or at least upon invoking a method on the stub, the RMI system could optimize away marshalling and TCP/IP by directly calling the implementation method in the RemoteRef.invoke method. Is there some optimization like this in the Sun RMI implementation? Or is it totally unaware of such scenarios and just performs a remote call involving marshalling+TCP/IP communication?
Thanks for your replys.In step 2: Will the RMI implementation automatically recognize that both remote reference point to the same object instance and use one shared stub? Or will there be two totally independent stubs?As a matter of fact there is a shared stub at the remote object, but by the time they're acquired by the client they will be distinct, because of serialization over distinct ObjectOutputStreams (a new one per call). But why would it matter to you either way? How could you even tell? The stubs all point to the same remote object, and the equals() methods return true.
In step 3: When the client invokes the method, the stub that is passed points to a RMI object that could be accessed via a local object reference on the server that is executing the method.If it's a stub it will always perform RMI.
Theroretically either the serialized stub could be substituted by a local object reference when the method call is unmarshalled or at least upon invoking a method on the stub, the RMI system could optimize away marshalling and TCP/IP by directly calling the implementation method in the RemoteRef.invoke method.No, it can't. That would change the pass-by-copy semantics of RMI into pass-by-value as in local method invocation. It can't do that.
Is there some optimization like this in the Sun RMI implementation?No. Nor in IBM's either. -
Hello Stephen,
some time ago we talked about Forte for LINUX. Now I think it will need
not a long time that Forte is available on LINUX.
INFORMIX and ORACLE has officially announced that they offer their
Database on LINUX. Now it is only a question of time, that Forte
got a business-case from big Firms which want to see Forte on LINUX.
In GERMANY I know that Mercedes use LINUX for car-development and
Sixt-Budget use LINUX for their car-rental (worldwide).
I think, if Forte is availaible for LINUX than a big beng goes through
the IT-Market. Many firms just wait for a OO-orientated 4GL-Development
environment to distribute their business-processes to many little
servers which are cheap and powerfull. It is than a question of
less money to use a big machine or just 10 or 20 LINUX servers (which are
cheaper and faster).
Sorry for my enthusiasm on this mailing list, but i'am
so happy to hear from this and want's to cry it out all over the world :-)))))
Joseph MirwaldAt 09:03 AM 8/22/98 +0200, Joseph Mirwald wrote:
Hello Stephen,
some time ago we talked about Forte for LINUX. Now I think it will need
not a long time that Forte is available on LINUX.Well, I suspect if you ask them, the official policy statement is: Linux is
not a supported platform at this time, and we cannot discuss unannounced
products. (or some such thing). Privately, talking to some of the Forte
people at FORUM this year, I was distinctly left with the impression that
it will be a cold day in hell before such a port is done.
INFORMIX and ORACLE has officially announced that they offer their
Database on LINUX. Now it is only a question of time, that Forte
got a business-case from big Firms which want to see Forte on LINUX.Well, I haven't talked to our Oracle sales rep, but I did go to their web
site and I couldn't find anywhere where you could download it, or much more
than a "how great it is" statement. Based upon my prior dealings with
Oracle, and some well documented cases, I would be surprised if you could
get it today - delivered and working, that is.
Informix, on the other hand, I just downloaded (not installed yet, but at
least I have in my hot little paws something that says it will be Informix
on Linux).
One of the problems that Forte faces in the marketplace is the cost of the
product. Yes, it does a lot (personally, I'm quite a fan). But, some IT
shops - especially the ones that have capable people on staff - are
beginning to look at the distributed object characteristics of Java and
asking "Why can't I do what I want with Java RMI, etc.?" When I talked to a
Forte salesman at FORUM, his only response was "Well, those really aren't
Forte customers anyway!" As Java adds things like transactional objects,
transparent database access (yup! persistent objects in a relational
database - without all the coding - and with performance too!), JavaSpaces,
Jini, etc. I think it's a "head in the sand" approach for Forte to ignore
this. To me, Java presents some very compelling features. And, according to
some friends I have inside of Sun, basically all of the brightest people in
Sun have all migrated over to doing the Java stuff, so it's only likely to
get better. People like Rick Cattel (databases) and Jim Waldo (distributed
object systems) who have been giving this stuff lots of thought for
years!! That's why it's so well thought out when you see it for the first
time.
The only glaring omission from it seems to be a generic event queue
mechanism. Fortunately, given the other stuff Java has to offer (RMI, event
classes, etc.) you can build a very good one in about a man week. In fact,
Java has one, they just didn't take a "high" enough superclass - they
limited it to AWT events. If they had made it all events, you wouldn't even
have to build that.
Now, don't get me wrong... Forte is planning to incorporate lots of really
cool Java stuff in their next release (preannounced at FORUM). But to me,
that's not the issue on a larger scale. The real issue is this: are
environments which are cheaper incorporating a lot of what Forte does - and
the answer is Yes! Incidentally, there is a version of the Java environment
being developed for Linux under the GNU license, for the express purpose of
making it open and keeping it free (and open). Someone recently told me
that it is now available, but I haven't confirmed that yet.
In GERMANY I know that Mercedes use LINUX for car-development and
Sixt-Budget use LINUX for their car-rental (worldwide).My perception is that the Europeans are more progressive and cooperative
than us in the states. Most of the really good Linux help I've gotten on
the net has been form Europe (including a wonderful sendmail
site/expert). :-)
I think, if Forte is availaible for LINUX than a big beng goes through
the IT-Market. Many firms just wait for a OO-orientated 4GL-Development
environment to distribute their business-processes to many little
servers which are cheap and powerfull. It is than a question of
less money to use a big machine or just 10 or 20 LINUX servers (which are
cheaper and faster).Well, as I was indicating above, people who are cost conscious might be
searching for lower cost alternatives to Forte itself.
Sorry for my enthusiasm on this mailing list, but i'am
so happy to hear from this and want's to cry it out all over the world:-)))))
<soapbox>
So, who says that all reactions have to be between 4 & 6 (5 being
neutral)!! Don't apologize. If you're excited - be excited! That's what
life is all about.
</soapbox>
Stephen -
TIBCO , to pass variables in http request
Hi guys,
I am very new to tibco, I need to invoke a actionservlet via HTTP request, I am able to pass constant values but not the variables.
For example,
http://172.17.33.107:8988/ITProjectMonitoringTool//Login.do?xyz="6667"
The above one is working.
But if I am using the following one , I am not able to do it. It is literally printing the value ..
http://172.17.33.107:8988/ITProjectMonitoringTool//Login.do?xyz="helloVar"
where helloVar is a variable, where do i need to set this variable value. when I am trying to retrieve the "helloVar" variable value, "helloVar" is getting printed as it is.
Please help me out.
Regards,
GauthamRMI uses a specialised protocol which is more complex than it appears at first. It might be possible to perform RMI calls use a HTTP transport, but you would lose most of the value of using HTTP.
There are libraries which allow you to turn method calls into HTTP Web Service request, like RMI does, but no RMI is used. -
Forum Project: Most common misunderstandings people have
Hi all
I know this is a holiday weekend and all so there might be fewer people using the java boards. But I thought it might be fun to colaboratively put together a little list of common misconceptions that people have in the java world. I am starting this of with a common misconception about I/O
=======
Common misconception: Using a BufferedInputStream or a BufferedReader will make all reading faster
Answer: Using a buffer will only make your reads faster if you are doing inefficient reading, meaning for example that rather than load a whole file in one big chunk you are reading line by line.tjacobs01 wrote:
1. How do you know your buffer is going to be big enough?I use the same buffer size on the client. Which is an advantage of a closed system. (Actually its a bit more complicated, the client and server exchange the maximum message size on connection and take the highest of these two values)
2. Assuming that once you've done a read, you copy the data somewhere else and effectively flush the buffer / start at 0 again, you have to do a whole bunch of extra work if the buffer is completely filled by the incoming data and there is no more waiting.I have a large buffer like 256KB or 1 MB so a message always fits into the buffer.
What I do is have the size of the message at the start and a minimum message size of 256 bytes.
So I read 256 bytes which is often all I need, but if the length is longer I read the full length. This gives me one message with no need for copying. (And I use DirectByteBuffer)
It also gives me the message in a single read.
Maybe I just don't understand your solution entirely. It goes back to question 1. That wouldn't be surprising. I make a few assumptions. :)
The other thing is that the call to available() in socket reading effectively costs you nothing - the bottleneck is the rate at which data is coming in through the socket.I find the number of calls you make also creates overhead...
BTW: My solution is for server to server communications so I can assume there is a small number (<100) of controlled connections but there is a high volume of data which requires a low latency.
The solution (with custom serialization/RMI) can perform RMI calls as low at 20 us. (on loopback) and 110 us on a LAN. And send over 100,000 message per second over a single channel.
The custom serialization support serialization to/from DirectByteBuffer. -
RMI Performance Comp. with Forte
Hi All,
I know that this topic has been discussed on the list
already, but I would like to find out whether the
current state of Sun's RMI implementation is like
I imagine it, and I want to compare with our Forte
Service objects too. Basically, these seem to be
issues that negatively affect performance,
1. A thread is created on the server per request, and
there is no way to change this easily (i.e. reuse
threads from a pool)
2. Each call opens a new socket.
In particular, does it make sense to replace RMI with
CORBA for increased performance and scalability? Can a
PC-based server handle loads of about 1000 remote
calls per second (considering the overhead imposed by
RMI/other communication methods only)? or Shall we
compare Forte against RMI.
Thankx,
BabuOkay,
A method invocation (or function call or procedure call or whatever) is
always a synchronous call. This means, you ask the service to do something
and wait for the function to complete, optionally with return values. It is
possible, that within the method, a separate thread is started, that
continues after the method is completed, but that doesn't change the
mechanism that a method invocation is a synchronous call.
In Forte, it is possible to start a method as an asynchronous call, with the
"start task" command. In that case, the caller does not wait for the method
to complete and return values are not handled. If this method invocation
happens across a network (making it a Remote Method Invocation) then a
socket will be opened when the call is made and closed immediately after. It
does solve the one-socket-per-caller problem, but not the
one-thread-per-caller problem. Also, it does remove the possibility of
receiving return values.
If you want to keep using method invocations as synchronous calls with
return values, but you also want to share resources like sockets and
threads, then you have to use TP-monitoring concepts. You must have a two
way, asynchronous call with an additional parameter. This means, the client
does a single, brief call that re-uses an existing thread and immediately
frees the socket it used. The client passes all required parameters and one
additional parameter to identify itself. In Forte, this would be a reference
to an anchored object on the client-partition. Then the client waits
(possibly blocks). The server completes the request and locates the client
that sent the request. The server invokes a method on the client, informing
that the request was handled. The server now also passes all return values.
The client exits its wait-state and continues.
In Forte (even if you use other mechanisms to hook into Forte), every call
still is a separete thread. If you wish to re-use existing threads, this
must be done using events. So, a client invokes a method asynchronously
(using "start task") and waits. The server start a new thread and posts an
event. Each existing thread is either idle in an event loop or busy handling
a previous event. The new event is added to the queue of all event loops and
the original thread is terminated (the socket was already freed). One event
loop of the thread-pool will be the first one to respond to the event, mark
this somewhere (maybe using mutex) and start handling it. All the others
will eventually respond to the event as well, but will be able to see that
the event is already being handled and ignore it.
This does introduce overhead and it makes your application more complex, but
it also prevents you running out of resources.
Now, the real issue is not the amount of calls per second, but a combination
of calls per second and seconds to complete the call. Using these two
numbers, you can calculate the amount of tasks the server has to be handling
simultaneously at any given time (average). Using the above described
technique you can handle intermittent, large loads, because if there are
more requests than available resources (threads) at any given time, the
requests will simply be put in a queue and handled later. However, if the
over-load continues for a prolonged period of time, the queue will simply
grow and grow and grow until the partition crashes and all queued items will
be lost.
Then it is time for load-balancing. You install several additional servers
and run a serverprocess on each of these machines. And you use a router that
distributes calls across the different serverprocesses. Forte has built-in
mechanisms for that, that work reasonably well. However, if the amount of
calls per second is so high, that even the short time it takes the router to
relay the request still is too long, so that the router runs out of
resources, then you have to use more complex models, for which Forte doesn't
have any ready-to-use solutions. But neither does CORBA or Java I believe.
One more thing. If you combine the above described mechanism to free sockets
as quickly as possible and use Forte loadbalancing, you might solve all your
problems. Just install 6 overloaded server processes. This results in 6
processes times 256 threads per process equals 1536 simultaneous tasks. If
each task is an asynchronous method invocation that immediately frees its
socket, then you never block you're whole server by using all sockets and
you're still able to do handle 1536 requests simultaneously.
Remember, if you have such a large load of calls per second, that all pass
through the same machine (router) then you'll run into hardware limitations
and no software solution can fix that. You have to find a mechanism to
distribute calls across different nodes without using a single router. For
example, cluster clients and have a single server node per cluster.
Pascal.
-----Original Message-----
From: Babu Raj [SMTP:ibcsmartboyyahoo.com]
Sent: Friday, March 24, 2000 3:42 PM
To: Rottier, Pascal
Cc: kamranaminyahoo.com
Subject: RE: (forte-users) RMI Performance Comp. with Forte
Hi,
I believe in CORBA, ORB maintains the same
connection ( Same Socket) for multiple calls, on the
same Servant object, unless otherwise its ONEWAY call.
But RMI uses the same strategy as Forte, I'm not sure
either on this. Thats the reason, i asked the previous
question.
Thankx,
Babu
--- "Rottier, Pascal" <Rottier.Pascalpmintl.ch>
wrote:
How are CORBA and RMI different then Forte (one
socket and one thread per
call)?
-----Original Message-----
From: Babu Raj [SMTP:ibcsmartboyyahoo.com]
Sent: Friday, March 24, 2000 3:18 PM
To: kamranaminyahoo.com
Subject: (forte-users) RMI Performance Comp. withForte
Hi All,
I know that this topic has been discussed on thelist
already, but I would like to find out whether the
current state of Sun's RMI implementation is like
I imagine it, and I want to compare with our Forte
Service objects too. Basically, these seem to be
issues that negatively affect performance,
1. A thread is created on the server per request,and
there is no way to change this easily (i.e. reuse
threads from a pool)
2. Each call opens a new socket.
In particular, does it make sense to replace RMIwith
CORBA for increased performance and scalability?Can a
PC-based server handle loads of about 1000 remote
calls per second (considering the overhead imposedby
RMI/other communication methods only)? or Shall we
compare Forte against RMI.
Thankx,
Babu
For the archives, go to:
http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. Tounsubscribe, send in a new
email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
For the archives, go to:
http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To
unsubscribe, send in a new
email the word: 'Unsubscribe' to:
forte-users-requestlists.xpedior.com
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com -
WebLogic RMI UNIX Performance problem
Hi.
I'm experiencing problems with the performance of RMI calls from within session
beans to external RMI services. I have a system running 4 RMI services in separate
JVMs to weblogic 6.1 instance on Solaris 2.6 on SPARC boxes with 1+ Gb of RAM.
The system was developed on NT and deployed to UNIX. A typical request is serviced
in 70-90 ms on the NT development box (Desktop 512Mb RAM) but when deployed to
the UNIX box takes anywhere between 500-4000 ms. Performance metrics in the code
indicate that 'crunch' times are similar but remote RMI calls are orders of magnitude
greater.
Has anybody had similar problems? I have checked the tuning guides wrt TCP/IP
configurations but would not expect such a large difference using the default
Solaris configuration. Memory and CPU utilisation on the SPARC are low as are
I/O and other metrics available from vmstat.
Cheers
PeteHi.
The JVMs are running on the same machine thus should be looking in /etc/hosts
and not going via DNS.
I have read there is a performance gain by tying WL to a single CPU, any insight?
Pete
Andy Piper <[email protected]> wrote:
"Pete Harris" <[email protected]> writes:
I'm experiencing problems with the performance of RMI calls from withinsession
beans to external RMI services. I have a system running 4 RMI servicesin separate
JVMs to weblogic 6.1 instance on Solaris 2.6 on SPARC boxes with 1+Gb of RAM.
The system was developed on NT and deployed to UNIX. A typical requestis serviced
in 70-90 ms on the NT development box (Desktop 512Mb RAM) but whendeployed to
the UNIX box takes anywhere between 500-4000 ms. Performance metricsin the code
indicate that 'crunch' times are similar but remote RMI calls are ordersof magnitude
greater.
Has anybody had similar problems? I have checked the tuning guideswrt TCP/IP
configurations but would not expect such a large difference using thedefault
Solaris configuration. Memory and CPU utilisation on the SPARC arelow as are
I/O and other metrics available from vmstat.Its possible that you are getting a DNS lookup for each request or
worse a reverse lookup. You might want to try using IP addresses in
your config to see if that helps.
andy -
Can i using RMI to solve performance issue
I have two database which in USA and CHINA, and a web application which located on USA, if the application connect to USA DB it is ok, i think no performance issue, but if connet to china DB, i sure that has even throgh VPN. So can i using RIM technology to solving the issue? Or using another solution. Thanks
So can i using RIM technology to solving the issue?It sounds like your problem is with Network latency.
I assume your web application connects to the database directly through JDBC and you're proposing to add a middle layer of RMI. Doing this will not reduce network latency - however if you're clever about how you serialize your resultsets, you can reduce the amount of network traffic and improve performance.
Have a look at this thread about compressing RMI data:
http://forum.java.sun.com/thread.jspa?threadID=606187&tstart=0
Note that compressing the data will add processing overhead at both ends.
Also remember to override the readObject/writeObject methods in the objects you're serializing. -
RMI-IIOP vs WL RMI performance
Hi,
We did some performance test of WebLogic RMI and under high load (500-1000
users), it is rather slow. It is even slower with an EJB interface. If we
were to used IIOP as the underlying transport protocol, will it improve?
Would you have any other suggestions for improving performance?
Thanks
MCHi,
Thanks for your reply.
What I am interested in is the performance of RMI where multiple clients
e.g. JSPs, all make requests to the same object, as that is what will happen
in real life. Benchmarking with a single multi-threaded JVM client was not
recommended - but it seems that JSP may be executed on a single
multi-threaded JVM client anyway, depending on the Web Server of course.
Currently, I don't understand how the server-server benchmarking that you
proposed would work so if you could elaborate on it, that would be great.
Thanks again,
MC
"Don Ferguson" <[email protected]> wrote in message
news:[email protected]..
Yes, increasing the thread count will definately help. And note also thata
WebLogic server has different default configuration values than a WebLogic
client, so if you want to benchmark server-server performance, you reallyneed
to use a server.
mcn wrote:
Hi Andy,
Indeed, I was testing using a single multi-threaded JVM client. However,
isn't that the case if I were to use a web server and have 500-1000
JSP's
invoking methods on the same object? What is the work around?
Also, I had the executeThreadCount at the default value of 15. Willdoubling
it help?
Thanks
MC
"Andy Piper" <[email protected]> wrote in message
news:[email protected]..
"mcn" <[email protected]> writes:
We did some performance test of WebLogic RMI and under high load
(500-1000
users), it is rather slow. It is even slower with an EJB interface.
If
we
were to used IIOP as the underlying transport protocol, will it
improve?
Would you have any other suggestions for improving performance?It is likely that you have some config issue (heap size, number of
threads etc) since RMI is known to scale pretty well. Using IIOP will
not improve things. Also make sure you are not making the classic
mistake of invoking from a single multi-threaded JVM client since this
will multiplex all calls over the same connection.
andy -
I was wondering if there is documentation on the performance hit that I can expect when converting my RMI based app from non-SSL to SSL. I cannot find any information on this.
What have people experienced?
Thank you.You can expect a long delay, 10-20 seconds, when you implicitly or explictly create a javax.net.ssl.SSLContext, due to seeding the initial SecureRandom(). This should only happen once: you can take it out of line of the communications by creating and initializing the SSLContext during startup; you can do this in a separate thread. You should expect new connections to be several times as slow due to the SSL handshake, and you should expect transmission times to be several times what they are now due to encryption. Finally, because of all the extra computation you should then expect your servers to be much more busy, which will increase queue lengths and therefore latencies at clients.
By 'several' I mean in the range 2 to 10, but it all depends on your hardware. You should consider using an HSM at the server. -
Hi, i should make a question, for the performaces of RMI.
I have created a software completely in Java and SQL. It's a software client-server, and it works with socket tcp (java.net). Now i'm doing the tests, but i view that a client for find the server wait 15 sec. If i want to use a "select" in mySQL (on server), i must wait too time. I thought to change my tecnology from Socket TCP to RMI, to have better performance.
But, before to do 5000 job's hours, i would like to know if RMI can resolve my problems.
Anyone knows that?
thank's and sorry for my english :-)
nickponicogenerally, it wont make much difference...
im guessing that the bottleneck lies on the acessing / querying the database, in wich case changing to RMI (or CORBA or whatever) wont make any difference...
keep in mind that just changing the underlying technology wont have much effect, now that you have it working under plain socket (RMI may present some improvements, but it will be overwhelmed by huge amount of data transfered, etc)...
cheers -
Comparing performance of CORBA/RMI/RMI-IIOP
I would like to compare CORBA, RMI and RMI-IIOP.
Is there any s/w available, pref open source, in java to perforam benchmarking in some or all of the three.
Anything which also supports C++ would be a plus.
I know there is some data already available, but I would like to be able to perform my own tests on my platform. prob linux and linux cluster.CORBA is supported by Windows machines (Windows XP/2000 as I know of it) and other APIs may be bought or included in some enterprise applications.
RMI and CORBA are about as fast as each other. RMI-IIOP is slower then RMI and CORBA, however, it can sometimes go a little faster depending on deployment and environment. -
I am having problems looking up a RMI object. The Weblogic console reports
the following:
Wed Apr 12 23:32:11 EDT 2000:<W> <ListenThread> Connection rejected:
Login timed out after 5000 msec. The socket came from
host=10.0.3.13,port=1140,localport=7001] See property
weblogic.login.readTimeoutMillis.
Wed Apr 12 23:32:22 EDT 2000:<W> <ListenThread> Connection rejected:
Login timed out after 5000 msec. The socket came from
host=10.0.3.13,port=1141,localport=7001] See property
weblogic.login.readTimeoutMillis.
Wed Apr 12 23:32:24 EDT 2000:<W> <ListenThread> Connection rejected:
Login timed out after 5000 msec. The socket came from
host=10.0.3.13,port=1143,localport=7001] See property
weblogic.login.readTimeoutMillis.
I get about 3 time out errors and it takes almost a full minute before the
bind happens. The chunk of code that does the bind is included below:
String rmiHostAndPort = "t3://localhost:7001/foo"
System.out.println("Binding to " + rmiHostAndPort);
IFoo foo =
(IFoo) Naming.lookup(rmiHostAndPort);
System.out.println("Bound to " + rmiHostAndPort);
The time between "binding to" and "bound to" is slow. Sometimes, it does
not even return at all. This happens when the applet is restarted for some
obscure reason.
Any help would be appreciated.
Erik Currin
[email protected]I am having problems looking up a RMI object. The Weblogic console reports
the following:
Wed Apr 12 23:32:11 EDT 2000:<W> <ListenThread> Connection rejected:
Login timed out after 5000 msec. The socket came from
host=10.0.3.13,port=1140,localport=7001] See property
weblogic.login.readTimeoutMillis.
Wed Apr 12 23:32:22 EDT 2000:<W> <ListenThread> Connection rejected:
Login timed out after 5000 msec. The socket came from
host=10.0.3.13,port=1141,localport=7001] See property
weblogic.login.readTimeoutMillis.
Wed Apr 12 23:32:24 EDT 2000:<W> <ListenThread> Connection rejected:
Login timed out after 5000 msec. The socket came from
host=10.0.3.13,port=1143,localport=7001] See property
weblogic.login.readTimeoutMillis.
I get about 3 time out errors and it takes almost a full minute before the
bind happens. The chunk of code that does the bind is included below:
String rmiHostAndPort = "t3://localhost:7001/foo"
System.out.println("Binding to " + rmiHostAndPort);
IFoo foo =
(IFoo) Naming.lookup(rmiHostAndPort);
System.out.println("Bound to " + rmiHostAndPort);
The time between "binding to" and "bound to" is slow. Sometimes, it does
not even return at all. This happens when the applet is restarted for some
obscure reason.
Any help would be appreciated.
Erik Currin
[email protected] -
Is there a limit on the number of simultaneous remote calls that a RMI server can handle ???
Well, here's the scenario. I'm running a RMI server on linux Red hat 9.0 with kernel 2.4.21. The client calls it's method, responding to which, the server does some processing regarding the linux kernel. The processing is nothing but just reading some values through Runtime.exec(). These raw values are converted into objects, verified, and then some values are sent to the client.
The client executes the method every 3 seconds. That's one point that may be causing problems. What do u think ? Now what goes wrong is that after a few hours the system running the RMI server hangs. That's what I wanted to know. Why does the server hang ? There no such thing in the code that might play tricks with the system. I think it's the RMI that's causing problems. And if I run the X windows server, it hangs very quickly. Please let me know what could be the possible reasons regarding RMI. I shall be thakful
Maybe you are looking for
-
User console redirection webpage uses unnecessary browser sniffing
User console redirection webpage uses unnecessary browser sniffing https://ps.palmws.com/palmcsext/console/ That user console redirection webpage has this piece of JavaScript that uses unnecessary browser sniffing: <script type="text/javascript" lang
-
Itunes is not working in windows 7
I have followed the instructions contained in..... iTunes for Windows Vista, Windows 7, or Windows 8: Fix unexpected quits or launch issues" I started it in safe mode and found that it works. So I then followed the steps to remove third-party plug-i
-
Adobe Document Services landscape question
Hello, We have installed Adobe Document Services (ADS) as part of Netweaver 2004s on a 32 bit Windows server. We have our Development Portal configured to point to this server in the configuration of ADS. Can we use the same ADS server for our QA Por
-
Outlook contacts is not an option when trying to sync to my iphone. I added the addin in the outlook tools section. It has worked in the past but I have not used it lately to sync.
-
How do I get rid of unwanted ads on my homepage
When I open my home page, ads not supported by the site pop up at the top, moving the page down so i can't read the news. In a few seconds it moves to the bottom of the page where another unwanted ad is shown. How do I get rid of them? I have already