Frequently Asked Questions


See THE ONLINE VERSION, too.


General

What platforms does HORB support?
Any OS Java runs on.
What platforms does HORB connect?
Any combination of platforms that run HORB.
Do I need to have Sun Java JDK to develop with HORB?
Yes, HORB uses the javac compiler internally.
No, HORB can be used with other tools such like CAFE. See below.

What version of Sun Java JDK do I need?
Java JDK 1.0 or later.
Does HORB require the source code of Java or the source code license?
No. But, you need the binary distribution of Java.
Is HORB a free software?
Yes, it's a kind of free software. HORB is distributed for research and evaluation purposes. You can use HORB in your company. But, please obtain commercial license, if you use HORB@in your products. See license agreement.

Will you continue free distribution?
Yes, we will.
Does HORB 1.3 have connectivity to HORB 1.2?
Yes.
Does HORB have connectivity to CORBA?
No. If you need to connect to a CORBA object, use Sun's CORBA client class library which will be supplied with Java 1.1. It can be used with HORB.

Does HORB have connectivity to Java RMI?
No. If you need to connect to a RMI object, use Sun's RMI client class library which will be supplied with Java 1.1. It can be used with HORB.

Why didn't you make HORB CORBA compliant?
I don't want write in IDL.


Technical

96/09/13 I got VerifyError in my applet.
Your applet uses native methods. Native methods are not allowed in applets. Some package such like JDBC-ODBC bridge uses native methods.
96/09/13 I got ClassNotFoundException.
Have you made all proxy classes for classes that are transfered? Have you copied the proxy classes on both client and server?
96/09/13 How do I use a Java compiler that is other than javac.
Let say you have Server.java and you want to make Server_Proxy.java and Server_Skeleton.java with a compiler myjavac.
% myjavac Server.java
% ls
Server.java Server.class
% horbc -nocompile Server
% ls
Server.java Server.class Server_Proxy.java Server_Skeleton.java
% myjavac Server_Proxy.java Server_Skeleton.java
You can write a small script to do the above procedure. Note that horbc can take fully qualified class names as well as java source files.
96/09/13 I want to call a class remotely, but I don't have the souce file of the class.
The horbc compiler can generate proxy classes from classes as well as java source files.
% horbc fully.qualified.class.name
96/09/13 Applet.getParameter() always returns null.
Netscape Navigator version 3.0 has such a bug, when you use Japanese encoding.
96/09/13 How do I start horb from inetd? How to write /etc/inetd.conf?
You can't start a horb command from inetd.
96/09/13 How do I write port number in /etc/services?
HORB does not refer to /etc/services.
96/09/13 When my client invites a server by _invite(), it returns soon.
_invite() is an asynchronous method and regardless of acceptance of the invitation. If you need to know acceptance, call a client method from the server to notify acceptance.
96/09/13 I got NetException(HostNotFoundException) for localhost on Win95.
You have to install TCP/IP protocol stack before running HORB.
96/09/13 I got HORBException:"Server not bound to port" when I tried to register an object as a daemon server.
When you write;
HORBServer.registerObject(object, "className", "objectName", port);
port must be 0 or a HORBServer must be running at the port.

96/09/04 When I use persistent objects, Java crashes due to an illegal access.
I guess you recompiled classes under horb/classsrc/orb. The reason is a bug of javac of Java JDK 1.0.x. Recompile horb/classsrc/orb/FileIOCI.java without the -O option.
  cd horb/classsrc/orb
  javac -d ../../.. FileIOCI.java
96/09/04 When I run example/invitation2, it fails.
I guess you recompiled classes under horb/classsrc/orb. The reason is a bug of javac of Java JDK 1.0.x. Recompile horb/classsrc/orb/ObjectTable.java without the -O option.
   cd horb/classsrc/orb
   javac -d ../../.. ObjectTable.java
96/09/13 Why can't I pass Vector, Hashtable, Date or Color to a remote server?
Because the current version cannot send private variables. Please use Jason Raymond's Vector/Hashtable package. You can find horbUtil.zip at the HORB repository.

How do I set up my server written in HORB on our WWW server?
See the Server Setting for Applets section of the HORB flyer's guide.
HORB is sometimes slow.
See this. I'm working on performance improvement.
How do I use ACL from my program. My program does not use the horb command.
AclStatus acl = new AclStatus();
acl.source = "client.acl";
AclStatus[] acls = new AclStatus[1];
acls[0] = acl;
HORBServer.startACL(acls, 0);
HORBServer hs = new HORBServer(8886, null, null);
What are protocols?
Special languages that are used in network. There so many protocols.
How do I debug programs written in HORB?
Use jdb or a debugger for Java.
I want a logging or auditting facility.
Future plans. Contributions are welcome.
Why should I restart a new HORB@server or a new WWW browser when I change a class file?
Because the current Java interpreter does not support unloading of classes.
Server replication is needed, because my server is heavily loaded and it has to serve many requests.
Future plans. Contributions are welcome.

Use a multiprocessor machine. HORB utilizes the multiprocessors.
Or, use many server machines and give them one DNS hostname.
Why doesn't a HORB server supply class files to a client? Why can't my client send server classes to a HORB server?
Such feature will be supported in future.

I can specify the implementation class of an interface when I use a configuration file. Why can't I specify the implementation class of an interface to create remotely?
For security reasons. If you can invoke an arbitrary class remotely, it's too dangerous.
How do I fly over our firewall?
SOCKS is supported from JDK 1.0.2. Your standalone HORB client can connect to outside over a firewall, if you have a SOCKS server on your firewall machine. Set socksProxyHost and socksProxyPort of system property (of Java, not HORB's). I don't know how to set the property.
When I was recompiling the HORB package, I got errors compiling ACL_Impl.java.
No problem.

Makefile in the classsrc/orb directory won't work for me.
That's right. It won't work for me.