FAQ

There are always questions about how to set something up, how it works, or why we did something a certain way. Hopefully these answers will help.

If the answer you were looking for is not here, email metaglue-support after you look thru the FAQ. We'll take suggestions and corrections for these pages, but if you find something more severe, you should probably file a bug report.

Setup
Java problems
Database issues
iPaq installation
Working with agents
Catalog connections
Adding new agents
Devices
X10
Java problems
I get an java.lang.UnsatisfiedLinkError link error when using java on Linux: Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/share/j2re1.4.1_01/lib/i386/libfontmanager.so: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory Why doesn't the java install have the files it needs?
You need to install libstdc++2.9-glibc2.1. Unlike libc, the libc++ libraries are not quite standardized so backward-compatibility can get broken during upgrades.
Why does java not allow packages from java.lang when I'm connecting from another machine? I get an unmarshaling error: java.rmi.UnmarshalException: Error unmarshaling return; nested exception is:
java.lang.SecurityException: Prohibited package name: java.lang java.lang.SecurityException: Prohibited package name: java.lang
<exception cut here>
When mixing different versions of java, the java security manager on the java VM where the catalog is running decides that one version is trying to override the restricted packages. It's not actually true, but that's why it happens. You can prevent this from happening by running the catalog on the lowest version of java that you are mixing together. This usually happens with the iPaq handheld platform (H21). So if you have a machines running jdk1.3.1, 1.4.0 and 1.4.1_beta, the catalog must be run on 1.3.1.
Database issues
Why do I see "Cannot connect to server on port 3306"?
MySQL is not setup currently for networking or not running. edit /etc/mysql/my.conf and comment out skip-networking (use the # symbol). If MySQL is not running use '/etc/init.d/mysql start' to start it.
In Windows, use "WinMySQLadmin.exe" and in the "Variables" section, change skip_networking to OFF. Also make sure the server is running: The traffic light should be green.
Why is access denied for users 'x@foo' or '@foo' on my database?
The user isn't allowed to work with that database. Typical problems will be an incorrect password was used, that the user doesn't exist in the database or that user doesn't have permission to access the database table you are trying to use.
iPaq installation
Where can I find more information on iPaqs and Metaglue
What kind of package is a .ipk?
The ipkg (*.ipk) install file is the format for Familiar Linux. The format is based loosely on the Debian package format. For more information on Familiar Linux see Handhelds.org.
The Metaglue ipkg file can be found at our download page.
Other important iPaq information can be found at the Oxygen H21. This page contains information on the oxygen ipaq feeds (package directories) as well as useful links.
Catalog connections
When running Metaglue on multiple hosts, why can't I connect to the catalog running on another machine?
Why do I get a strange "start a Metaglue host on xxx" message when I'm on that host already?
Look at the catalog startup messages, if you see "-cat=127.0.0.1" then here's what is happening. We use the hostname of the machine to determine the ip address. If the hostname is set to be equivalent to "localhost", then the address will come back as 127.0.0.1. To fix this, make sure that hostname != localhost . You'll need properly named machines to use multiple hosts with Metaglue.
On Linux, look at /etc/hosts and make sure that hostname is not on the same line as localhost. If your network is static, you will want a line containing the correct ip address and hostname. If you have a DNS server or DHCP with DDNS, you shouldn't need to have the hostname line. Check with a sysadmin before tromping on the network.
On Windows, if you ping your hostname or use ipconfig and your ip is 127.0.0.1, then you should be able to use the "Network Settings" applet to say you have a network ip address other than "127.0.0.1" or setup for DHCP. Check with a sysadmin for the correct ip address if you have a static ip network
I tried to start the catalog and got a java.net.MalformedURLException that looked like: rmi://localhost:1099/UberSociety:metaglue.Metaglue-10.129.6.109%10.129.6.109{eff053887e} saying the catalog URL was bad. Why doesn't RMI like Metaglue?
Somehow you've managed to get a much older version of Metaglue or it's agents and are trying to use it on java 1.4. This has to do with the structure of RMI changing from java 1.3 to java 1.4. You should get the newest version of metaglue from our download page.
Adding new agents
I've created a new agent, how do I register it?
Metaglue works by using java's class-loader. This means the package that contains your agents only needs to be included in the classpath for them to be found by Metaglue. It's still up to you to make them work correctly. :-)
My new agent will not load. Why does the PowerTester ask to expand my agent's name?
Why won't my agent load from the command line? I keep seeing: ClassNotFoundException: Unable to locate util.PromptBoxAgent in ChainingClassLoader
This comes when you are trying to run java classes which are not agents. If this is an agent, did you run rmic to when compiling along with javac? Check to see that with the file <AgentName>.class there is also <AgentName>_Skel.class and <AgentName>_Stub.class. If not, then rmic didn't run.
X10 devices
When I try to use lights (or other X10 devices), I get AbstractClass or Interface errors. Why does this happen?
If you're using the Namer resource manager (agentland.resource.namer.Namer) then you want to add agentland.output.X10 to the watched occupations list. This is accomplished easily by loading Namer in the PowerTester.