This week's book giveaway is in the Server-Side JavaScript and NodeJS forum.
We're giving away four copies of Micro Frontends in Action and have Michael Geers on-line!
See this thread for details.
Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!

Trevor Dunn

Ranch Hand
+ Follow
since Jun 13, 2001
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Trevor Dunn

You book your ticket and fly whenever you want.
Seriously though, Do not take this assignment as a real world implementation, it is not. It is a learning experience designed to see how well you can develop a small, imperfect, client-server application. Do not worry about details like that just be able to book a seat and fulfill the requirements of the project.
Keep it simple and and follow instructions to the tee and you will do well
Good Luck
Are you sure you got that exception right. It does not show up in the api. Could it of been IllegalMonitorStateException. Assuming it is, this occurs because you have a thread trying to either wait on an object the thread does not have the montitor for or call notify on threads waiting on the object without owning the objects monitor
Hi waht you are doing seems a little out of sorts. Runtime.exec may work but it does not mean it is right. Lets look at it this way.
When running in local mode you need only to instantiate an instance of Data and use this directly. There is no need for a new RMISecurityManager or policy files etc.
When in Networked mode you need to look up an instance of the object bound in your registry. Here again on the client, no RMISecurityManager, no policy file. Just a lookup.
Your RMI server on the other hand can use a policy file and a new RMI Manager, but not the client.
How you do this well I will leave that to you. I will say I used a proxy class which sent my request to either the server or local Data and it was transparent to the client.
Come to think of it All this RMISecurity manager and policy files on the client may be what is messing you up. Get rid of it and see what happens.
I really have no idea on what you are doing. Why are you using runtime.exec. And why is your security manager stopping you from starting your client. You will have to explain a lot more I think.
However, it should go like this
Start your server- bind your object
Start your client-lookup your object.
I am not sure if RMI handles pooling or if it just starts a new Thread every time it needs one. Nevertheless pooling threads is way beyond the scope the of this project.
I doubt if you lost your points in your column. Mine were not completely displayed either and I did not lose 9 points on GUI. I could of been something else or this in combination with somethig else
[ January 08, 2002: Message edited by: Trevor Dunn ]
Hi Ernest
The job market in Canada as far as I can tell is not all that great. I work in Newfoundland and the market here, especially for Java Developers just plain sucks and so does the money. However I am from here and I will put up with it.
From some research I have done it seems Calgary and Edmonton are still pretty good hot beds for jobs. Montreal is apparantly not bad either. Vancouver has sizzeled. And Ottawa is still hiring but this is the home base of Nortel and JDS Uniphase, who must of laid of thousands in the Ottawa area. So there may be some stiff competition there.
Good Luck in your hunt
18 years ago
Mike is right. I never implemented any sort of removal for stale locks and it did not affect me. You might want to mention it in your design document that it would be a good idea to implement it but the since the spec does not call for it you did not do it.
Also all these procedure for getting rid of stale locks are fine but I found the key to this assignment is keep it simple.
Hi Roman
Of course you are right. That is what the spec says. ANd it is true you have to make your objects thread safe. But when I say RMI handles your threading I mean you do not need to write your own thread pools, or assign theads to clients etc. All these things you have to do in a socket based solution. In RMI you just have to make your objects thread safe
If you use RMI for the server then the threading is taken care of for you (Yea RMI). However if you use a sockets based server then you will need to handle the threading.
I had read somewhere that static variables are frowned upon in an EJB but static final is ok. Could someone explain this to me.
I am using log4j and using static final Category category in my EJB and all seems fine.But I do not know why
I am not really sure what is appropiate. I can just tell you what I did. I commented for all methods and variables and produced javadoc just for the public and protected methods and variables.
The only time I did not provide comments was when the class inherited from an Interface that provided the comments. The javadoc utility automatically referes to the parent for the javadoc if a method or variable is overridden and a javadoc comment is not supplied

I did not mean that all should be fine between multiple platforms. I am aware of the GUI limitations etc. What I meant was that Sun can not expect everybody to have access to multiple platforms to test their project on. I guess this is why they ask you to to place in your design document what platform you developed the project on. This is more than likely because they will test it on that platform. I can not imagine them docking marks because the GUI looked foolish on a Solaris box when you developed it on an Windows machine.
In my own experience I developed the application on a Windows 2000 machine and submitted and never tested it on any other platform.
Hi all. I am writing my first EJB application and I need to be able to implement some logging. However the EJB spec says file IO is illegal. Therefore if I use Log4J I can only print to the console and not a text file.
How do most people get around this. Do you break the IO rule?
Any help would be greatly appreciated